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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package eks
     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/restjson"
    14  )
    15  
    16  const opAssociateEncryptionConfig = "AssociateEncryptionConfig"
    17  
    18  // AssociateEncryptionConfigRequest generates a "aws/request.Request" representing the
    19  // client's request for the AssociateEncryptionConfig 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 AssociateEncryptionConfig for more information on using the AssociateEncryptionConfig
    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 AssociateEncryptionConfigRequest method.
    34  //    req, resp := client.AssociateEncryptionConfigRequest(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/eks-2017-11-01/AssociateEncryptionConfig
    42  func (c *EKS) AssociateEncryptionConfigRequest(input *AssociateEncryptionConfigInput) (req *request.Request, output *AssociateEncryptionConfigOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAssociateEncryptionConfig,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/clusters/{name}/encryption-config/associate",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AssociateEncryptionConfigInput{}
    51  	}
    52  
    53  	output = &AssociateEncryptionConfigOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // AssociateEncryptionConfig API operation for Amazon Elastic Kubernetes Service.
    59  //
    60  // Associate encryption configuration to an existing cluster.
    61  //
    62  // You can use this API to enable encryption on existing clusters which do not
    63  // have encryption already enabled. This allows you to implement a defense-in-depth
    64  // security strategy without migrating applications to new Amazon EKS clusters.
    65  //
    66  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    67  // with awserr.Error's Code and Message methods to get detailed information about
    68  // the error.
    69  //
    70  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
    71  // API operation AssociateEncryptionConfig for usage and error information.
    72  //
    73  // Returned Error Types:
    74  //   * InvalidParameterException
    75  //   The specified parameter is invalid. Review the available parameters for the
    76  //   API request.
    77  //
    78  //   * ClientException
    79  //   These errors are usually caused by a client action. Actions can include using
    80  //   an action or resource on behalf of a user that doesn't have permissions to
    81  //   use the action or resource or specifying an identifier that is not valid.
    82  //
    83  //   * ServerException
    84  //   These errors are usually caused by a server-side issue.
    85  //
    86  //   * ResourceInUseException
    87  //   The specified resource is in use.
    88  //
    89  //   * ResourceNotFoundException
    90  //   The specified resource could not be found. You can view your available clusters
    91  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
    92  //   Amazon EKS clusters and node groups are Region-specific.
    93  //
    94  //   * InvalidRequestException
    95  //   The request is invalid given the state of the cluster. Check the state of
    96  //   the cluster and the associated operations.
    97  //
    98  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AssociateEncryptionConfig
    99  func (c *EKS) AssociateEncryptionConfig(input *AssociateEncryptionConfigInput) (*AssociateEncryptionConfigOutput, error) {
   100  	req, out := c.AssociateEncryptionConfigRequest(input)
   101  	return out, req.Send()
   102  }
   103  
   104  // AssociateEncryptionConfigWithContext is the same as AssociateEncryptionConfig with the addition of
   105  // the ability to pass a context and additional request options.
   106  //
   107  // See AssociateEncryptionConfig for details on how to use this API operation.
   108  //
   109  // The context must be non-nil and will be used for request cancellation. If
   110  // the context is nil a panic will occur. In the future the SDK may create
   111  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   112  // for more information on using Contexts.
   113  func (c *EKS) AssociateEncryptionConfigWithContext(ctx aws.Context, input *AssociateEncryptionConfigInput, opts ...request.Option) (*AssociateEncryptionConfigOutput, error) {
   114  	req, out := c.AssociateEncryptionConfigRequest(input)
   115  	req.SetContext(ctx)
   116  	req.ApplyOptions(opts...)
   117  	return out, req.Send()
   118  }
   119  
   120  const opAssociateIdentityProviderConfig = "AssociateIdentityProviderConfig"
   121  
   122  // AssociateIdentityProviderConfigRequest generates a "aws/request.Request" representing the
   123  // client's request for the AssociateIdentityProviderConfig operation. The "output" return
   124  // value will be populated with the request's response once the request completes
   125  // successfully.
   126  //
   127  // Use "Send" method on the returned Request to send the API call to the service.
   128  // the "output" return value is not valid until after Send returns without error.
   129  //
   130  // See AssociateIdentityProviderConfig for more information on using the AssociateIdentityProviderConfig
   131  // API call, and error handling.
   132  //
   133  // This method is useful when you want to inject custom logic or configuration
   134  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   135  //
   136  //
   137  //    // Example sending a request using the AssociateIdentityProviderConfigRequest method.
   138  //    req, resp := client.AssociateIdentityProviderConfigRequest(params)
   139  //
   140  //    err := req.Send()
   141  //    if err == nil { // resp is now filled
   142  //        fmt.Println(resp)
   143  //    }
   144  //
   145  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AssociateIdentityProviderConfig
   146  func (c *EKS) AssociateIdentityProviderConfigRequest(input *AssociateIdentityProviderConfigInput) (req *request.Request, output *AssociateIdentityProviderConfigOutput) {
   147  	op := &request.Operation{
   148  		Name:       opAssociateIdentityProviderConfig,
   149  		HTTPMethod: "POST",
   150  		HTTPPath:   "/clusters/{name}/identity-provider-configs/associate",
   151  	}
   152  
   153  	if input == nil {
   154  		input = &AssociateIdentityProviderConfigInput{}
   155  	}
   156  
   157  	output = &AssociateIdentityProviderConfigOutput{}
   158  	req = c.newRequest(op, input, output)
   159  	return
   160  }
   161  
   162  // AssociateIdentityProviderConfig API operation for Amazon Elastic Kubernetes Service.
   163  //
   164  // Associate an identity provider configuration to a cluster.
   165  //
   166  // If you want to authenticate identities using an identity provider, you can
   167  // create an identity provider configuration and associate it to your cluster.
   168  // After configuring authentication to your cluster you can create Kubernetes
   169  // roles and clusterroles to assign permissions to the roles, and then bind
   170  // the roles to the identities using Kubernetes rolebindings and clusterrolebindings.
   171  // For more information see Using RBAC Authorization (https://kubernetes.io/docs/reference/access-authn-authz/rbac/)
   172  // in the Kubernetes documentation.
   173  //
   174  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   175  // with awserr.Error's Code and Message methods to get detailed information about
   176  // the error.
   177  //
   178  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   179  // API operation AssociateIdentityProviderConfig for usage and error information.
   180  //
   181  // Returned Error Types:
   182  //   * InvalidParameterException
   183  //   The specified parameter is invalid. Review the available parameters for the
   184  //   API request.
   185  //
   186  //   * ClientException
   187  //   These errors are usually caused by a client action. Actions can include using
   188  //   an action or resource on behalf of a user that doesn't have permissions to
   189  //   use the action or resource or specifying an identifier that is not valid.
   190  //
   191  //   * ServerException
   192  //   These errors are usually caused by a server-side issue.
   193  //
   194  //   * ResourceInUseException
   195  //   The specified resource is in use.
   196  //
   197  //   * ResourceNotFoundException
   198  //   The specified resource could not be found. You can view your available clusters
   199  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
   200  //   Amazon EKS clusters and node groups are Region-specific.
   201  //
   202  //   * InvalidRequestException
   203  //   The request is invalid given the state of the cluster. Check the state of
   204  //   the cluster and the associated operations.
   205  //
   206  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AssociateIdentityProviderConfig
   207  func (c *EKS) AssociateIdentityProviderConfig(input *AssociateIdentityProviderConfigInput) (*AssociateIdentityProviderConfigOutput, error) {
   208  	req, out := c.AssociateIdentityProviderConfigRequest(input)
   209  	return out, req.Send()
   210  }
   211  
   212  // AssociateIdentityProviderConfigWithContext is the same as AssociateIdentityProviderConfig with the addition of
   213  // the ability to pass a context and additional request options.
   214  //
   215  // See AssociateIdentityProviderConfig for details on how to use this API operation.
   216  //
   217  // The context must be non-nil and will be used for request cancellation. If
   218  // the context is nil a panic will occur. In the future the SDK may create
   219  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   220  // for more information on using Contexts.
   221  func (c *EKS) AssociateIdentityProviderConfigWithContext(ctx aws.Context, input *AssociateIdentityProviderConfigInput, opts ...request.Option) (*AssociateIdentityProviderConfigOutput, error) {
   222  	req, out := c.AssociateIdentityProviderConfigRequest(input)
   223  	req.SetContext(ctx)
   224  	req.ApplyOptions(opts...)
   225  	return out, req.Send()
   226  }
   227  
   228  const opCreateAddon = "CreateAddon"
   229  
   230  // CreateAddonRequest generates a "aws/request.Request" representing the
   231  // client's request for the CreateAddon operation. The "output" return
   232  // value will be populated with the request's response once the request completes
   233  // successfully.
   234  //
   235  // Use "Send" method on the returned Request to send the API call to the service.
   236  // the "output" return value is not valid until after Send returns without error.
   237  //
   238  // See CreateAddon for more information on using the CreateAddon
   239  // API call, and error handling.
   240  //
   241  // This method is useful when you want to inject custom logic or configuration
   242  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   243  //
   244  //
   245  //    // Example sending a request using the CreateAddonRequest method.
   246  //    req, resp := client.CreateAddonRequest(params)
   247  //
   248  //    err := req.Send()
   249  //    if err == nil { // resp is now filled
   250  //        fmt.Println(resp)
   251  //    }
   252  //
   253  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateAddon
   254  func (c *EKS) CreateAddonRequest(input *CreateAddonInput) (req *request.Request, output *CreateAddonOutput) {
   255  	op := &request.Operation{
   256  		Name:       opCreateAddon,
   257  		HTTPMethod: "POST",
   258  		HTTPPath:   "/clusters/{name}/addons",
   259  	}
   260  
   261  	if input == nil {
   262  		input = &CreateAddonInput{}
   263  	}
   264  
   265  	output = &CreateAddonOutput{}
   266  	req = c.newRequest(op, input, output)
   267  	return
   268  }
   269  
   270  // CreateAddon API operation for Amazon Elastic Kubernetes Service.
   271  //
   272  // Creates an Amazon EKS add-on.
   273  //
   274  // Amazon EKS add-ons help to automate the provisioning and lifecycle management
   275  // of common operational software for Amazon EKS clusters. Amazon EKS add-ons
   276  // can only be used with Amazon EKS clusters running version 1.18 with platform
   277  // version eks.3 or later because add-ons rely on the Server-side Apply Kubernetes
   278  // feature, which is only available in Kubernetes 1.18 and later.
   279  //
   280  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   281  // with awserr.Error's Code and Message methods to get detailed information about
   282  // the error.
   283  //
   284  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   285  // API operation CreateAddon for usage and error information.
   286  //
   287  // Returned Error Types:
   288  //   * InvalidParameterException
   289  //   The specified parameter is invalid. Review the available parameters for the
   290  //   API request.
   291  //
   292  //   * InvalidRequestException
   293  //   The request is invalid given the state of the cluster. Check the state of
   294  //   the cluster and the associated operations.
   295  //
   296  //   * ResourceNotFoundException
   297  //   The specified resource could not be found. You can view your available clusters
   298  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
   299  //   Amazon EKS clusters and node groups are Region-specific.
   300  //
   301  //   * ResourceInUseException
   302  //   The specified resource is in use.
   303  //
   304  //   * ClientException
   305  //   These errors are usually caused by a client action. Actions can include using
   306  //   an action or resource on behalf of a user that doesn't have permissions to
   307  //   use the action or resource or specifying an identifier that is not valid.
   308  //
   309  //   * ServerException
   310  //   These errors are usually caused by a server-side issue.
   311  //
   312  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateAddon
   313  func (c *EKS) CreateAddon(input *CreateAddonInput) (*CreateAddonOutput, error) {
   314  	req, out := c.CreateAddonRequest(input)
   315  	return out, req.Send()
   316  }
   317  
   318  // CreateAddonWithContext is the same as CreateAddon with the addition of
   319  // the ability to pass a context and additional request options.
   320  //
   321  // See CreateAddon for details on how to use this API operation.
   322  //
   323  // The context must be non-nil and will be used for request cancellation. If
   324  // the context is nil a panic will occur. In the future the SDK may create
   325  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   326  // for more information on using Contexts.
   327  func (c *EKS) CreateAddonWithContext(ctx aws.Context, input *CreateAddonInput, opts ...request.Option) (*CreateAddonOutput, error) {
   328  	req, out := c.CreateAddonRequest(input)
   329  	req.SetContext(ctx)
   330  	req.ApplyOptions(opts...)
   331  	return out, req.Send()
   332  }
   333  
   334  const opCreateCluster = "CreateCluster"
   335  
   336  // CreateClusterRequest generates a "aws/request.Request" representing the
   337  // client's request for the CreateCluster operation. The "output" return
   338  // value will be populated with the request's response once the request completes
   339  // successfully.
   340  //
   341  // Use "Send" method on the returned Request to send the API call to the service.
   342  // the "output" return value is not valid until after Send returns without error.
   343  //
   344  // See CreateCluster for more information on using the CreateCluster
   345  // API call, and error handling.
   346  //
   347  // This method is useful when you want to inject custom logic or configuration
   348  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   349  //
   350  //
   351  //    // Example sending a request using the CreateClusterRequest method.
   352  //    req, resp := client.CreateClusterRequest(params)
   353  //
   354  //    err := req.Send()
   355  //    if err == nil { // resp is now filled
   356  //        fmt.Println(resp)
   357  //    }
   358  //
   359  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster
   360  func (c *EKS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
   361  	op := &request.Operation{
   362  		Name:       opCreateCluster,
   363  		HTTPMethod: "POST",
   364  		HTTPPath:   "/clusters",
   365  	}
   366  
   367  	if input == nil {
   368  		input = &CreateClusterInput{}
   369  	}
   370  
   371  	output = &CreateClusterOutput{}
   372  	req = c.newRequest(op, input, output)
   373  	return
   374  }
   375  
   376  // CreateCluster API operation for Amazon Elastic Kubernetes Service.
   377  //
   378  // Creates an Amazon EKS control plane.
   379  //
   380  // The Amazon EKS control plane consists of control plane instances that run
   381  // the Kubernetes software, such as etcd and the API server. The control plane
   382  // runs in an account managed by Amazon Web Services, and the Kubernetes API
   383  // is exposed via the Amazon EKS API server endpoint. Each Amazon EKS cluster
   384  // control plane is single-tenant and unique and runs on its own set of Amazon
   385  // EC2 instances.
   386  //
   387  // The cluster control plane is provisioned across multiple Availability Zones
   388  // and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS
   389  // also provisions elastic network interfaces in your VPC subnets to provide
   390  // connectivity from the control plane instances to the nodes (for example,
   391  // to support kubectl exec, logs, and proxy data flows).
   392  //
   393  // Amazon EKS nodes run in your Amazon Web Services account and connect to your
   394  // cluster's control plane via the Kubernetes API server endpoint and a certificate
   395  // file that is created for your cluster.
   396  //
   397  // Cluster creation typically takes several minutes. After you create an Amazon
   398  // EKS cluster, you must configure your Kubernetes tooling to communicate with
   399  // the API server and launch nodes into your cluster. For more information,
   400  // see Managing Cluster Authentication (https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html)
   401  // and Launching Amazon EKS nodes (https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html)
   402  // in the Amazon EKS User Guide.
   403  //
   404  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   405  // with awserr.Error's Code and Message methods to get detailed information about
   406  // the error.
   407  //
   408  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   409  // API operation CreateCluster for usage and error information.
   410  //
   411  // Returned Error Types:
   412  //   * ResourceInUseException
   413  //   The specified resource is in use.
   414  //
   415  //   * ResourceLimitExceededException
   416  //   You have encountered a service limit on the specified resource.
   417  //
   418  //   * InvalidParameterException
   419  //   The specified parameter is invalid. Review the available parameters for the
   420  //   API request.
   421  //
   422  //   * ClientException
   423  //   These errors are usually caused by a client action. Actions can include using
   424  //   an action or resource on behalf of a user that doesn't have permissions to
   425  //   use the action or resource or specifying an identifier that is not valid.
   426  //
   427  //   * ServerException
   428  //   These errors are usually caused by a server-side issue.
   429  //
   430  //   * ServiceUnavailableException
   431  //   The service is unavailable. Back off and retry the operation.
   432  //
   433  //   * UnsupportedAvailabilityZoneException
   434  //   At least one of your specified cluster subnets is in an Availability Zone
   435  //   that does not support Amazon EKS. The exception output specifies the supported
   436  //   Availability Zones for your account, from which you can choose subnets for
   437  //   your cluster.
   438  //
   439  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster
   440  func (c *EKS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
   441  	req, out := c.CreateClusterRequest(input)
   442  	return out, req.Send()
   443  }
   444  
   445  // CreateClusterWithContext is the same as CreateCluster with the addition of
   446  // the ability to pass a context and additional request options.
   447  //
   448  // See CreateCluster for details on how to use this API operation.
   449  //
   450  // The context must be non-nil and will be used for request cancellation. If
   451  // the context is nil a panic will occur. In the future the SDK may create
   452  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   453  // for more information on using Contexts.
   454  func (c *EKS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
   455  	req, out := c.CreateClusterRequest(input)
   456  	req.SetContext(ctx)
   457  	req.ApplyOptions(opts...)
   458  	return out, req.Send()
   459  }
   460  
   461  const opCreateFargateProfile = "CreateFargateProfile"
   462  
   463  // CreateFargateProfileRequest generates a "aws/request.Request" representing the
   464  // client's request for the CreateFargateProfile operation. The "output" return
   465  // value will be populated with the request's response once the request completes
   466  // successfully.
   467  //
   468  // Use "Send" method on the returned Request to send the API call to the service.
   469  // the "output" return value is not valid until after Send returns without error.
   470  //
   471  // See CreateFargateProfile for more information on using the CreateFargateProfile
   472  // API call, and error handling.
   473  //
   474  // This method is useful when you want to inject custom logic or configuration
   475  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   476  //
   477  //
   478  //    // Example sending a request using the CreateFargateProfileRequest method.
   479  //    req, resp := client.CreateFargateProfileRequest(params)
   480  //
   481  //    err := req.Send()
   482  //    if err == nil { // resp is now filled
   483  //        fmt.Println(resp)
   484  //    }
   485  //
   486  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateFargateProfile
   487  func (c *EKS) CreateFargateProfileRequest(input *CreateFargateProfileInput) (req *request.Request, output *CreateFargateProfileOutput) {
   488  	op := &request.Operation{
   489  		Name:       opCreateFargateProfile,
   490  		HTTPMethod: "POST",
   491  		HTTPPath:   "/clusters/{name}/fargate-profiles",
   492  	}
   493  
   494  	if input == nil {
   495  		input = &CreateFargateProfileInput{}
   496  	}
   497  
   498  	output = &CreateFargateProfileOutput{}
   499  	req = c.newRequest(op, input, output)
   500  	return
   501  }
   502  
   503  // CreateFargateProfile API operation for Amazon Elastic Kubernetes Service.
   504  //
   505  // Creates an Fargate profile for your Amazon EKS cluster. You must have at
   506  // least one Fargate profile in a cluster to be able to run pods on Fargate.
   507  //
   508  // The Fargate profile allows an administrator to declare which pods run on
   509  // Fargate and specify which pods run on which Fargate profile. This declaration
   510  // is done through the profile’s selectors. Each profile can have up to five
   511  // selectors that contain a namespace and labels. A namespace is required for
   512  // every selector. The label field consists of multiple optional key-value pairs.
   513  // Pods that match the selectors are scheduled on Fargate. If a to-be-scheduled
   514  // pod matches any of the selectors in the Fargate profile, then that pod is
   515  // run on Fargate.
   516  //
   517  // When you create a Fargate profile, you must specify a pod execution role
   518  // to use with the pods that are scheduled with the profile. This role is added
   519  // to the cluster's Kubernetes Role Based Access Control (https://kubernetes.io/docs/admin/authorization/rbac/)
   520  // (RBAC) for authorization so that the kubelet that is running on the Fargate
   521  // infrastructure can register with your Amazon EKS cluster so that it can appear
   522  // in your cluster as a node. The pod execution role also provides IAM permissions
   523  // to the Fargate infrastructure to allow read access to Amazon ECR image repositories.
   524  // For more information, see Pod Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html)
   525  // in the Amazon EKS User Guide.
   526  //
   527  // Fargate profiles are immutable. However, you can create a new updated profile
   528  // to replace an existing profile and then delete the original after the updated
   529  // profile has finished creating.
   530  //
   531  // If any Fargate profiles in a cluster are in the DELETING status, you must
   532  // wait for that Fargate profile to finish deleting before you can create any
   533  // other profiles in that cluster.
   534  //
   535  // For more information, see Fargate Profile (https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html)
   536  // in the Amazon EKS User Guide.
   537  //
   538  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   539  // with awserr.Error's Code and Message methods to get detailed information about
   540  // the error.
   541  //
   542  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   543  // API operation CreateFargateProfile for usage and error information.
   544  //
   545  // Returned Error Types:
   546  //   * InvalidParameterException
   547  //   The specified parameter is invalid. Review the available parameters for the
   548  //   API request.
   549  //
   550  //   * InvalidRequestException
   551  //   The request is invalid given the state of the cluster. Check the state of
   552  //   the cluster and the associated operations.
   553  //
   554  //   * ClientException
   555  //   These errors are usually caused by a client action. Actions can include using
   556  //   an action or resource on behalf of a user that doesn't have permissions to
   557  //   use the action or resource or specifying an identifier that is not valid.
   558  //
   559  //   * ServerException
   560  //   These errors are usually caused by a server-side issue.
   561  //
   562  //   * ResourceLimitExceededException
   563  //   You have encountered a service limit on the specified resource.
   564  //
   565  //   * UnsupportedAvailabilityZoneException
   566  //   At least one of your specified cluster subnets is in an Availability Zone
   567  //   that does not support Amazon EKS. The exception output specifies the supported
   568  //   Availability Zones for your account, from which you can choose subnets for
   569  //   your cluster.
   570  //
   571  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateFargateProfile
   572  func (c *EKS) CreateFargateProfile(input *CreateFargateProfileInput) (*CreateFargateProfileOutput, error) {
   573  	req, out := c.CreateFargateProfileRequest(input)
   574  	return out, req.Send()
   575  }
   576  
   577  // CreateFargateProfileWithContext is the same as CreateFargateProfile with the addition of
   578  // the ability to pass a context and additional request options.
   579  //
   580  // See CreateFargateProfile for details on how to use this API operation.
   581  //
   582  // The context must be non-nil and will be used for request cancellation. If
   583  // the context is nil a panic will occur. In the future the SDK may create
   584  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   585  // for more information on using Contexts.
   586  func (c *EKS) CreateFargateProfileWithContext(ctx aws.Context, input *CreateFargateProfileInput, opts ...request.Option) (*CreateFargateProfileOutput, error) {
   587  	req, out := c.CreateFargateProfileRequest(input)
   588  	req.SetContext(ctx)
   589  	req.ApplyOptions(opts...)
   590  	return out, req.Send()
   591  }
   592  
   593  const opCreateNodegroup = "CreateNodegroup"
   594  
   595  // CreateNodegroupRequest generates a "aws/request.Request" representing the
   596  // client's request for the CreateNodegroup operation. The "output" return
   597  // value will be populated with the request's response once the request completes
   598  // successfully.
   599  //
   600  // Use "Send" method on the returned Request to send the API call to the service.
   601  // the "output" return value is not valid until after Send returns without error.
   602  //
   603  // See CreateNodegroup for more information on using the CreateNodegroup
   604  // API call, and error handling.
   605  //
   606  // This method is useful when you want to inject custom logic or configuration
   607  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   608  //
   609  //
   610  //    // Example sending a request using the CreateNodegroupRequest method.
   611  //    req, resp := client.CreateNodegroupRequest(params)
   612  //
   613  //    err := req.Send()
   614  //    if err == nil { // resp is now filled
   615  //        fmt.Println(resp)
   616  //    }
   617  //
   618  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroup
   619  func (c *EKS) CreateNodegroupRequest(input *CreateNodegroupInput) (req *request.Request, output *CreateNodegroupOutput) {
   620  	op := &request.Operation{
   621  		Name:       opCreateNodegroup,
   622  		HTTPMethod: "POST",
   623  		HTTPPath:   "/clusters/{name}/node-groups",
   624  	}
   625  
   626  	if input == nil {
   627  		input = &CreateNodegroupInput{}
   628  	}
   629  
   630  	output = &CreateNodegroupOutput{}
   631  	req = c.newRequest(op, input, output)
   632  	return
   633  }
   634  
   635  // CreateNodegroup API operation for Amazon Elastic Kubernetes Service.
   636  //
   637  // Creates a managed node group for an Amazon EKS cluster. You can only create
   638  // a node group for your cluster that is equal to the current Kubernetes version
   639  // for the cluster. All node groups are created with the latest AMI release
   640  // version for the respective minor Kubernetes version of the cluster, unless
   641  // you deploy a custom AMI using a launch template. For more information about
   642  // using launch templates, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html).
   643  //
   644  // An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and
   645  // associated Amazon EC2 instances that are managed by Amazon Web Services for
   646  // an Amazon EKS cluster. Each node group uses a version of the Amazon EKS optimized
   647  // Amazon Linux 2 AMI. For more information, see Managed Node Groups (https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html)
   648  // in the Amazon EKS User Guide.
   649  //
   650  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   651  // with awserr.Error's Code and Message methods to get detailed information about
   652  // the error.
   653  //
   654  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   655  // API operation CreateNodegroup for usage and error information.
   656  //
   657  // Returned Error Types:
   658  //   * ResourceInUseException
   659  //   The specified resource is in use.
   660  //
   661  //   * ResourceLimitExceededException
   662  //   You have encountered a service limit on the specified resource.
   663  //
   664  //   * InvalidRequestException
   665  //   The request is invalid given the state of the cluster. Check the state of
   666  //   the cluster and the associated operations.
   667  //
   668  //   * InvalidParameterException
   669  //   The specified parameter is invalid. Review the available parameters for the
   670  //   API request.
   671  //
   672  //   * ClientException
   673  //   These errors are usually caused by a client action. Actions can include using
   674  //   an action or resource on behalf of a user that doesn't have permissions to
   675  //   use the action or resource or specifying an identifier that is not valid.
   676  //
   677  //   * ServerException
   678  //   These errors are usually caused by a server-side issue.
   679  //
   680  //   * ServiceUnavailableException
   681  //   The service is unavailable. Back off and retry the operation.
   682  //
   683  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroup
   684  func (c *EKS) CreateNodegroup(input *CreateNodegroupInput) (*CreateNodegroupOutput, error) {
   685  	req, out := c.CreateNodegroupRequest(input)
   686  	return out, req.Send()
   687  }
   688  
   689  // CreateNodegroupWithContext is the same as CreateNodegroup with the addition of
   690  // the ability to pass a context and additional request options.
   691  //
   692  // See CreateNodegroup for details on how to use this API operation.
   693  //
   694  // The context must be non-nil and will be used for request cancellation. If
   695  // the context is nil a panic will occur. In the future the SDK may create
   696  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   697  // for more information on using Contexts.
   698  func (c *EKS) CreateNodegroupWithContext(ctx aws.Context, input *CreateNodegroupInput, opts ...request.Option) (*CreateNodegroupOutput, error) {
   699  	req, out := c.CreateNodegroupRequest(input)
   700  	req.SetContext(ctx)
   701  	req.ApplyOptions(opts...)
   702  	return out, req.Send()
   703  }
   704  
   705  const opDeleteAddon = "DeleteAddon"
   706  
   707  // DeleteAddonRequest generates a "aws/request.Request" representing the
   708  // client's request for the DeleteAddon operation. The "output" return
   709  // value will be populated with the request's response once the request completes
   710  // successfully.
   711  //
   712  // Use "Send" method on the returned Request to send the API call to the service.
   713  // the "output" return value is not valid until after Send returns without error.
   714  //
   715  // See DeleteAddon for more information on using the DeleteAddon
   716  // API call, and error handling.
   717  //
   718  // This method is useful when you want to inject custom logic or configuration
   719  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   720  //
   721  //
   722  //    // Example sending a request using the DeleteAddonRequest method.
   723  //    req, resp := client.DeleteAddonRequest(params)
   724  //
   725  //    err := req.Send()
   726  //    if err == nil { // resp is now filled
   727  //        fmt.Println(resp)
   728  //    }
   729  //
   730  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteAddon
   731  func (c *EKS) DeleteAddonRequest(input *DeleteAddonInput) (req *request.Request, output *DeleteAddonOutput) {
   732  	op := &request.Operation{
   733  		Name:       opDeleteAddon,
   734  		HTTPMethod: "DELETE",
   735  		HTTPPath:   "/clusters/{name}/addons/{addonName}",
   736  	}
   737  
   738  	if input == nil {
   739  		input = &DeleteAddonInput{}
   740  	}
   741  
   742  	output = &DeleteAddonOutput{}
   743  	req = c.newRequest(op, input, output)
   744  	return
   745  }
   746  
   747  // DeleteAddon API operation for Amazon Elastic Kubernetes Service.
   748  //
   749  // Delete an Amazon EKS add-on.
   750  //
   751  // When you remove the add-on, it will also be deleted from the cluster. You
   752  // can always manually start an add-on on the cluster using the Kubernetes API.
   753  //
   754  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   755  // with awserr.Error's Code and Message methods to get detailed information about
   756  // the error.
   757  //
   758  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   759  // API operation DeleteAddon for usage and error information.
   760  //
   761  // Returned Error Types:
   762  //   * InvalidParameterException
   763  //   The specified parameter is invalid. Review the available parameters for the
   764  //   API request.
   765  //
   766  //   * InvalidRequestException
   767  //   The request is invalid given the state of the cluster. Check the state of
   768  //   the cluster and the associated operations.
   769  //
   770  //   * ResourceNotFoundException
   771  //   The specified resource could not be found. You can view your available clusters
   772  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
   773  //   Amazon EKS clusters and node groups are Region-specific.
   774  //
   775  //   * ClientException
   776  //   These errors are usually caused by a client action. Actions can include using
   777  //   an action or resource on behalf of a user that doesn't have permissions to
   778  //   use the action or resource or specifying an identifier that is not valid.
   779  //
   780  //   * ServerException
   781  //   These errors are usually caused by a server-side issue.
   782  //
   783  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteAddon
   784  func (c *EKS) DeleteAddon(input *DeleteAddonInput) (*DeleteAddonOutput, error) {
   785  	req, out := c.DeleteAddonRequest(input)
   786  	return out, req.Send()
   787  }
   788  
   789  // DeleteAddonWithContext is the same as DeleteAddon with the addition of
   790  // the ability to pass a context and additional request options.
   791  //
   792  // See DeleteAddon for details on how to use this API operation.
   793  //
   794  // The context must be non-nil and will be used for request cancellation. If
   795  // the context is nil a panic will occur. In the future the SDK may create
   796  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   797  // for more information on using Contexts.
   798  func (c *EKS) DeleteAddonWithContext(ctx aws.Context, input *DeleteAddonInput, opts ...request.Option) (*DeleteAddonOutput, error) {
   799  	req, out := c.DeleteAddonRequest(input)
   800  	req.SetContext(ctx)
   801  	req.ApplyOptions(opts...)
   802  	return out, req.Send()
   803  }
   804  
   805  const opDeleteCluster = "DeleteCluster"
   806  
   807  // DeleteClusterRequest generates a "aws/request.Request" representing the
   808  // client's request for the DeleteCluster operation. The "output" return
   809  // value will be populated with the request's response once the request completes
   810  // successfully.
   811  //
   812  // Use "Send" method on the returned Request to send the API call to the service.
   813  // the "output" return value is not valid until after Send returns without error.
   814  //
   815  // See DeleteCluster for more information on using the DeleteCluster
   816  // API call, and error handling.
   817  //
   818  // This method is useful when you want to inject custom logic or configuration
   819  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   820  //
   821  //
   822  //    // Example sending a request using the DeleteClusterRequest method.
   823  //    req, resp := client.DeleteClusterRequest(params)
   824  //
   825  //    err := req.Send()
   826  //    if err == nil { // resp is now filled
   827  //        fmt.Println(resp)
   828  //    }
   829  //
   830  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster
   831  func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
   832  	op := &request.Operation{
   833  		Name:       opDeleteCluster,
   834  		HTTPMethod: "DELETE",
   835  		HTTPPath:   "/clusters/{name}",
   836  	}
   837  
   838  	if input == nil {
   839  		input = &DeleteClusterInput{}
   840  	}
   841  
   842  	output = &DeleteClusterOutput{}
   843  	req = c.newRequest(op, input, output)
   844  	return
   845  }
   846  
   847  // DeleteCluster API operation for Amazon Elastic Kubernetes Service.
   848  //
   849  // Deletes the Amazon EKS cluster control plane.
   850  //
   851  // If you have active services in your cluster that are associated with a load
   852  // balancer, you must delete those services before deleting the cluster so that
   853  // the load balancers are deleted properly. Otherwise, you can have orphaned
   854  // resources in your VPC that prevent you from being able to delete the VPC.
   855  // For more information, see Deleting a Cluster (https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html)
   856  // in the Amazon EKS User Guide.
   857  //
   858  // If you have managed node groups or Fargate profiles attached to the cluster,
   859  // you must delete them first. For more information, see DeleteNodegroup and
   860  // DeleteFargateProfile.
   861  //
   862  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   863  // with awserr.Error's Code and Message methods to get detailed information about
   864  // the error.
   865  //
   866  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   867  // API operation DeleteCluster for usage and error information.
   868  //
   869  // Returned Error Types:
   870  //   * ResourceInUseException
   871  //   The specified resource is in use.
   872  //
   873  //   * ResourceNotFoundException
   874  //   The specified resource could not be found. You can view your available clusters
   875  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
   876  //   Amazon EKS clusters and node groups are Region-specific.
   877  //
   878  //   * ClientException
   879  //   These errors are usually caused by a client action. Actions can include using
   880  //   an action or resource on behalf of a user that doesn't have permissions to
   881  //   use the action or resource or specifying an identifier that is not valid.
   882  //
   883  //   * ServerException
   884  //   These errors are usually caused by a server-side issue.
   885  //
   886  //   * ServiceUnavailableException
   887  //   The service is unavailable. Back off and retry the operation.
   888  //
   889  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster
   890  func (c *EKS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
   891  	req, out := c.DeleteClusterRequest(input)
   892  	return out, req.Send()
   893  }
   894  
   895  // DeleteClusterWithContext is the same as DeleteCluster with the addition of
   896  // the ability to pass a context and additional request options.
   897  //
   898  // See DeleteCluster for details on how to use this API operation.
   899  //
   900  // The context must be non-nil and will be used for request cancellation. If
   901  // the context is nil a panic will occur. In the future the SDK may create
   902  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   903  // for more information on using Contexts.
   904  func (c *EKS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
   905  	req, out := c.DeleteClusterRequest(input)
   906  	req.SetContext(ctx)
   907  	req.ApplyOptions(opts...)
   908  	return out, req.Send()
   909  }
   910  
   911  const opDeleteFargateProfile = "DeleteFargateProfile"
   912  
   913  // DeleteFargateProfileRequest generates a "aws/request.Request" representing the
   914  // client's request for the DeleteFargateProfile operation. The "output" return
   915  // value will be populated with the request's response once the request completes
   916  // successfully.
   917  //
   918  // Use "Send" method on the returned Request to send the API call to the service.
   919  // the "output" return value is not valid until after Send returns without error.
   920  //
   921  // See DeleteFargateProfile for more information on using the DeleteFargateProfile
   922  // API call, and error handling.
   923  //
   924  // This method is useful when you want to inject custom logic or configuration
   925  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   926  //
   927  //
   928  //    // Example sending a request using the DeleteFargateProfileRequest method.
   929  //    req, resp := client.DeleteFargateProfileRequest(params)
   930  //
   931  //    err := req.Send()
   932  //    if err == nil { // resp is now filled
   933  //        fmt.Println(resp)
   934  //    }
   935  //
   936  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteFargateProfile
   937  func (c *EKS) DeleteFargateProfileRequest(input *DeleteFargateProfileInput) (req *request.Request, output *DeleteFargateProfileOutput) {
   938  	op := &request.Operation{
   939  		Name:       opDeleteFargateProfile,
   940  		HTTPMethod: "DELETE",
   941  		HTTPPath:   "/clusters/{name}/fargate-profiles/{fargateProfileName}",
   942  	}
   943  
   944  	if input == nil {
   945  		input = &DeleteFargateProfileInput{}
   946  	}
   947  
   948  	output = &DeleteFargateProfileOutput{}
   949  	req = c.newRequest(op, input, output)
   950  	return
   951  }
   952  
   953  // DeleteFargateProfile API operation for Amazon Elastic Kubernetes Service.
   954  //
   955  // Deletes an Fargate profile.
   956  //
   957  // When you delete a Fargate profile, any pods running on Fargate that were
   958  // created with the profile are deleted. If those pods match another Fargate
   959  // profile, then they are scheduled on Fargate with that profile. If they no
   960  // longer match any Fargate profiles, then they are not scheduled on Fargate
   961  // and they may remain in a pending state.
   962  //
   963  // Only one Fargate profile in a cluster can be in the DELETING status at a
   964  // time. You must wait for a Fargate profile to finish deleting before you can
   965  // delete any other profiles in that cluster.
   966  //
   967  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   968  // with awserr.Error's Code and Message methods to get detailed information about
   969  // the error.
   970  //
   971  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
   972  // API operation DeleteFargateProfile for usage and error information.
   973  //
   974  // Returned Error Types:
   975  //   * InvalidParameterException
   976  //   The specified parameter is invalid. Review the available parameters for the
   977  //   API request.
   978  //
   979  //   * ClientException
   980  //   These errors are usually caused by a client action. Actions can include using
   981  //   an action or resource on behalf of a user that doesn't have permissions to
   982  //   use the action or resource or specifying an identifier that is not valid.
   983  //
   984  //   * ServerException
   985  //   These errors are usually caused by a server-side issue.
   986  //
   987  //   * ResourceNotFoundException
   988  //   The specified resource could not be found. You can view your available clusters
   989  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
   990  //   Amazon EKS clusters and node groups are Region-specific.
   991  //
   992  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteFargateProfile
   993  func (c *EKS) DeleteFargateProfile(input *DeleteFargateProfileInput) (*DeleteFargateProfileOutput, error) {
   994  	req, out := c.DeleteFargateProfileRequest(input)
   995  	return out, req.Send()
   996  }
   997  
   998  // DeleteFargateProfileWithContext is the same as DeleteFargateProfile with the addition of
   999  // the ability to pass a context and additional request options.
  1000  //
  1001  // See DeleteFargateProfile for details on how to use this API operation.
  1002  //
  1003  // The context must be non-nil and will be used for request cancellation. If
  1004  // the context is nil a panic will occur. In the future the SDK may create
  1005  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1006  // for more information on using Contexts.
  1007  func (c *EKS) DeleteFargateProfileWithContext(ctx aws.Context, input *DeleteFargateProfileInput, opts ...request.Option) (*DeleteFargateProfileOutput, error) {
  1008  	req, out := c.DeleteFargateProfileRequest(input)
  1009  	req.SetContext(ctx)
  1010  	req.ApplyOptions(opts...)
  1011  	return out, req.Send()
  1012  }
  1013  
  1014  const opDeleteNodegroup = "DeleteNodegroup"
  1015  
  1016  // DeleteNodegroupRequest generates a "aws/request.Request" representing the
  1017  // client's request for the DeleteNodegroup operation. The "output" return
  1018  // value will be populated with the request's response once the request completes
  1019  // successfully.
  1020  //
  1021  // Use "Send" method on the returned Request to send the API call to the service.
  1022  // the "output" return value is not valid until after Send returns without error.
  1023  //
  1024  // See DeleteNodegroup for more information on using the DeleteNodegroup
  1025  // API call, and error handling.
  1026  //
  1027  // This method is useful when you want to inject custom logic or configuration
  1028  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1029  //
  1030  //
  1031  //    // Example sending a request using the DeleteNodegroupRequest method.
  1032  //    req, resp := client.DeleteNodegroupRequest(params)
  1033  //
  1034  //    err := req.Send()
  1035  //    if err == nil { // resp is now filled
  1036  //        fmt.Println(resp)
  1037  //    }
  1038  //
  1039  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroup
  1040  func (c *EKS) DeleteNodegroupRequest(input *DeleteNodegroupInput) (req *request.Request, output *DeleteNodegroupOutput) {
  1041  	op := &request.Operation{
  1042  		Name:       opDeleteNodegroup,
  1043  		HTTPMethod: "DELETE",
  1044  		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}",
  1045  	}
  1046  
  1047  	if input == nil {
  1048  		input = &DeleteNodegroupInput{}
  1049  	}
  1050  
  1051  	output = &DeleteNodegroupOutput{}
  1052  	req = c.newRequest(op, input, output)
  1053  	return
  1054  }
  1055  
  1056  // DeleteNodegroup API operation for Amazon Elastic Kubernetes Service.
  1057  //
  1058  // Deletes an Amazon EKS node group for a cluster.
  1059  //
  1060  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1061  // with awserr.Error's Code and Message methods to get detailed information about
  1062  // the error.
  1063  //
  1064  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1065  // API operation DeleteNodegroup for usage and error information.
  1066  //
  1067  // Returned Error Types:
  1068  //   * ResourceInUseException
  1069  //   The specified resource is in use.
  1070  //
  1071  //   * ResourceNotFoundException
  1072  //   The specified resource could not be found. You can view your available clusters
  1073  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1074  //   Amazon EKS clusters and node groups are Region-specific.
  1075  //
  1076  //   * InvalidParameterException
  1077  //   The specified parameter is invalid. Review the available parameters for the
  1078  //   API request.
  1079  //
  1080  //   * ClientException
  1081  //   These errors are usually caused by a client action. Actions can include using
  1082  //   an action or resource on behalf of a user that doesn't have permissions to
  1083  //   use the action or resource or specifying an identifier that is not valid.
  1084  //
  1085  //   * ServerException
  1086  //   These errors are usually caused by a server-side issue.
  1087  //
  1088  //   * ServiceUnavailableException
  1089  //   The service is unavailable. Back off and retry the operation.
  1090  //
  1091  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroup
  1092  func (c *EKS) DeleteNodegroup(input *DeleteNodegroupInput) (*DeleteNodegroupOutput, error) {
  1093  	req, out := c.DeleteNodegroupRequest(input)
  1094  	return out, req.Send()
  1095  }
  1096  
  1097  // DeleteNodegroupWithContext is the same as DeleteNodegroup with the addition of
  1098  // the ability to pass a context and additional request options.
  1099  //
  1100  // See DeleteNodegroup for details on how to use this API operation.
  1101  //
  1102  // The context must be non-nil and will be used for request cancellation. If
  1103  // the context is nil a panic will occur. In the future the SDK may create
  1104  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1105  // for more information on using Contexts.
  1106  func (c *EKS) DeleteNodegroupWithContext(ctx aws.Context, input *DeleteNodegroupInput, opts ...request.Option) (*DeleteNodegroupOutput, error) {
  1107  	req, out := c.DeleteNodegroupRequest(input)
  1108  	req.SetContext(ctx)
  1109  	req.ApplyOptions(opts...)
  1110  	return out, req.Send()
  1111  }
  1112  
  1113  const opDeregisterCluster = "DeregisterCluster"
  1114  
  1115  // DeregisterClusterRequest generates a "aws/request.Request" representing the
  1116  // client's request for the DeregisterCluster operation. The "output" return
  1117  // value will be populated with the request's response once the request completes
  1118  // successfully.
  1119  //
  1120  // Use "Send" method on the returned Request to send the API call to the service.
  1121  // the "output" return value is not valid until after Send returns without error.
  1122  //
  1123  // See DeregisterCluster for more information on using the DeregisterCluster
  1124  // API call, and error handling.
  1125  //
  1126  // This method is useful when you want to inject custom logic or configuration
  1127  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1128  //
  1129  //
  1130  //    // Example sending a request using the DeregisterClusterRequest method.
  1131  //    req, resp := client.DeregisterClusterRequest(params)
  1132  //
  1133  //    err := req.Send()
  1134  //    if err == nil { // resp is now filled
  1135  //        fmt.Println(resp)
  1136  //    }
  1137  //
  1138  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeregisterCluster
  1139  func (c *EKS) DeregisterClusterRequest(input *DeregisterClusterInput) (req *request.Request, output *DeregisterClusterOutput) {
  1140  	op := &request.Operation{
  1141  		Name:       opDeregisterCluster,
  1142  		HTTPMethod: "DELETE",
  1143  		HTTPPath:   "/cluster-registrations/{name}",
  1144  	}
  1145  
  1146  	if input == nil {
  1147  		input = &DeregisterClusterInput{}
  1148  	}
  1149  
  1150  	output = &DeregisterClusterOutput{}
  1151  	req = c.newRequest(op, input, output)
  1152  	return
  1153  }
  1154  
  1155  // DeregisterCluster API operation for Amazon Elastic Kubernetes Service.
  1156  //
  1157  // Deregisters a connected cluster to remove it from the Amazon EKS control
  1158  // plane.
  1159  //
  1160  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1161  // with awserr.Error's Code and Message methods to get detailed information about
  1162  // the error.
  1163  //
  1164  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1165  // API operation DeregisterCluster for usage and error information.
  1166  //
  1167  // Returned Error Types:
  1168  //   * ResourceInUseException
  1169  //   The specified resource is in use.
  1170  //
  1171  //   * ResourceNotFoundException
  1172  //   The specified resource could not be found. You can view your available clusters
  1173  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1174  //   Amazon EKS clusters and node groups are Region-specific.
  1175  //
  1176  //   * ClientException
  1177  //   These errors are usually caused by a client action. Actions can include using
  1178  //   an action or resource on behalf of a user that doesn't have permissions to
  1179  //   use the action or resource or specifying an identifier that is not valid.
  1180  //
  1181  //   * ServerException
  1182  //   These errors are usually caused by a server-side issue.
  1183  //
  1184  //   * ServiceUnavailableException
  1185  //   The service is unavailable. Back off and retry the operation.
  1186  //
  1187  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeregisterCluster
  1188  func (c *EKS) DeregisterCluster(input *DeregisterClusterInput) (*DeregisterClusterOutput, error) {
  1189  	req, out := c.DeregisterClusterRequest(input)
  1190  	return out, req.Send()
  1191  }
  1192  
  1193  // DeregisterClusterWithContext is the same as DeregisterCluster with the addition of
  1194  // the ability to pass a context and additional request options.
  1195  //
  1196  // See DeregisterCluster for details on how to use this API operation.
  1197  //
  1198  // The context must be non-nil and will be used for request cancellation. If
  1199  // the context is nil a panic will occur. In the future the SDK may create
  1200  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1201  // for more information on using Contexts.
  1202  func (c *EKS) DeregisterClusterWithContext(ctx aws.Context, input *DeregisterClusterInput, opts ...request.Option) (*DeregisterClusterOutput, error) {
  1203  	req, out := c.DeregisterClusterRequest(input)
  1204  	req.SetContext(ctx)
  1205  	req.ApplyOptions(opts...)
  1206  	return out, req.Send()
  1207  }
  1208  
  1209  const opDescribeAddon = "DescribeAddon"
  1210  
  1211  // DescribeAddonRequest generates a "aws/request.Request" representing the
  1212  // client's request for the DescribeAddon operation. The "output" return
  1213  // value will be populated with the request's response once the request completes
  1214  // successfully.
  1215  //
  1216  // Use "Send" method on the returned Request to send the API call to the service.
  1217  // the "output" return value is not valid until after Send returns without error.
  1218  //
  1219  // See DescribeAddon for more information on using the DescribeAddon
  1220  // API call, and error handling.
  1221  //
  1222  // This method is useful when you want to inject custom logic or configuration
  1223  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1224  //
  1225  //
  1226  //    // Example sending a request using the DescribeAddonRequest method.
  1227  //    req, resp := client.DescribeAddonRequest(params)
  1228  //
  1229  //    err := req.Send()
  1230  //    if err == nil { // resp is now filled
  1231  //        fmt.Println(resp)
  1232  //    }
  1233  //
  1234  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddon
  1235  func (c *EKS) DescribeAddonRequest(input *DescribeAddonInput) (req *request.Request, output *DescribeAddonOutput) {
  1236  	op := &request.Operation{
  1237  		Name:       opDescribeAddon,
  1238  		HTTPMethod: "GET",
  1239  		HTTPPath:   "/clusters/{name}/addons/{addonName}",
  1240  	}
  1241  
  1242  	if input == nil {
  1243  		input = &DescribeAddonInput{}
  1244  	}
  1245  
  1246  	output = &DescribeAddonOutput{}
  1247  	req = c.newRequest(op, input, output)
  1248  	return
  1249  }
  1250  
  1251  // DescribeAddon API operation for Amazon Elastic Kubernetes Service.
  1252  //
  1253  // Describes an Amazon EKS add-on.
  1254  //
  1255  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1256  // with awserr.Error's Code and Message methods to get detailed information about
  1257  // the error.
  1258  //
  1259  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1260  // API operation DescribeAddon for usage and error information.
  1261  //
  1262  // Returned Error Types:
  1263  //   * InvalidParameterException
  1264  //   The specified parameter is invalid. Review the available parameters for the
  1265  //   API request.
  1266  //
  1267  //   * InvalidRequestException
  1268  //   The request is invalid given the state of the cluster. Check the state of
  1269  //   the cluster and the associated operations.
  1270  //
  1271  //   * ResourceNotFoundException
  1272  //   The specified resource could not be found. You can view your available clusters
  1273  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1274  //   Amazon EKS clusters and node groups are Region-specific.
  1275  //
  1276  //   * ClientException
  1277  //   These errors are usually caused by a client action. Actions can include using
  1278  //   an action or resource on behalf of a user that doesn't have permissions to
  1279  //   use the action or resource or specifying an identifier that is not valid.
  1280  //
  1281  //   * ServerException
  1282  //   These errors are usually caused by a server-side issue.
  1283  //
  1284  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddon
  1285  func (c *EKS) DescribeAddon(input *DescribeAddonInput) (*DescribeAddonOutput, error) {
  1286  	req, out := c.DescribeAddonRequest(input)
  1287  	return out, req.Send()
  1288  }
  1289  
  1290  // DescribeAddonWithContext is the same as DescribeAddon with the addition of
  1291  // the ability to pass a context and additional request options.
  1292  //
  1293  // See DescribeAddon for details on how to use this API operation.
  1294  //
  1295  // The context must be non-nil and will be used for request cancellation. If
  1296  // the context is nil a panic will occur. In the future the SDK may create
  1297  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1298  // for more information on using Contexts.
  1299  func (c *EKS) DescribeAddonWithContext(ctx aws.Context, input *DescribeAddonInput, opts ...request.Option) (*DescribeAddonOutput, error) {
  1300  	req, out := c.DescribeAddonRequest(input)
  1301  	req.SetContext(ctx)
  1302  	req.ApplyOptions(opts...)
  1303  	return out, req.Send()
  1304  }
  1305  
  1306  const opDescribeAddonVersions = "DescribeAddonVersions"
  1307  
  1308  // DescribeAddonVersionsRequest generates a "aws/request.Request" representing the
  1309  // client's request for the DescribeAddonVersions operation. The "output" return
  1310  // value will be populated with the request's response once the request completes
  1311  // successfully.
  1312  //
  1313  // Use "Send" method on the returned Request to send the API call to the service.
  1314  // the "output" return value is not valid until after Send returns without error.
  1315  //
  1316  // See DescribeAddonVersions for more information on using the DescribeAddonVersions
  1317  // API call, and error handling.
  1318  //
  1319  // This method is useful when you want to inject custom logic or configuration
  1320  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1321  //
  1322  //
  1323  //    // Example sending a request using the DescribeAddonVersionsRequest method.
  1324  //    req, resp := client.DescribeAddonVersionsRequest(params)
  1325  //
  1326  //    err := req.Send()
  1327  //    if err == nil { // resp is now filled
  1328  //        fmt.Println(resp)
  1329  //    }
  1330  //
  1331  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonVersions
  1332  func (c *EKS) DescribeAddonVersionsRequest(input *DescribeAddonVersionsInput) (req *request.Request, output *DescribeAddonVersionsOutput) {
  1333  	op := &request.Operation{
  1334  		Name:       opDescribeAddonVersions,
  1335  		HTTPMethod: "GET",
  1336  		HTTPPath:   "/addons/supported-versions",
  1337  		Paginator: &request.Paginator{
  1338  			InputTokens:     []string{"nextToken"},
  1339  			OutputTokens:    []string{"nextToken"},
  1340  			LimitToken:      "maxResults",
  1341  			TruncationToken: "",
  1342  		},
  1343  	}
  1344  
  1345  	if input == nil {
  1346  		input = &DescribeAddonVersionsInput{}
  1347  	}
  1348  
  1349  	output = &DescribeAddonVersionsOutput{}
  1350  	req = c.newRequest(op, input, output)
  1351  	return
  1352  }
  1353  
  1354  // DescribeAddonVersions API operation for Amazon Elastic Kubernetes Service.
  1355  //
  1356  // Describes the Kubernetes versions that the add-on can be used with.
  1357  //
  1358  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1359  // with awserr.Error's Code and Message methods to get detailed information about
  1360  // the error.
  1361  //
  1362  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1363  // API operation DescribeAddonVersions for usage and error information.
  1364  //
  1365  // Returned Error Types:
  1366  //   * ServerException
  1367  //   These errors are usually caused by a server-side issue.
  1368  //
  1369  //   * ResourceNotFoundException
  1370  //   The specified resource could not be found. You can view your available clusters
  1371  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1372  //   Amazon EKS clusters and node groups are Region-specific.
  1373  //
  1374  //   * InvalidParameterException
  1375  //   The specified parameter is invalid. Review the available parameters for the
  1376  //   API request.
  1377  //
  1378  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonVersions
  1379  func (c *EKS) DescribeAddonVersions(input *DescribeAddonVersionsInput) (*DescribeAddonVersionsOutput, error) {
  1380  	req, out := c.DescribeAddonVersionsRequest(input)
  1381  	return out, req.Send()
  1382  }
  1383  
  1384  // DescribeAddonVersionsWithContext is the same as DescribeAddonVersions with the addition of
  1385  // the ability to pass a context and additional request options.
  1386  //
  1387  // See DescribeAddonVersions for details on how to use this API operation.
  1388  //
  1389  // The context must be non-nil and will be used for request cancellation. If
  1390  // the context is nil a panic will occur. In the future the SDK may create
  1391  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1392  // for more information on using Contexts.
  1393  func (c *EKS) DescribeAddonVersionsWithContext(ctx aws.Context, input *DescribeAddonVersionsInput, opts ...request.Option) (*DescribeAddonVersionsOutput, error) {
  1394  	req, out := c.DescribeAddonVersionsRequest(input)
  1395  	req.SetContext(ctx)
  1396  	req.ApplyOptions(opts...)
  1397  	return out, req.Send()
  1398  }
  1399  
  1400  // DescribeAddonVersionsPages iterates over the pages of a DescribeAddonVersions operation,
  1401  // calling the "fn" function with the response data for each page. To stop
  1402  // iterating, return false from the fn function.
  1403  //
  1404  // See DescribeAddonVersions method for more information on how to use this operation.
  1405  //
  1406  // Note: This operation can generate multiple requests to a service.
  1407  //
  1408  //    // Example iterating over at most 3 pages of a DescribeAddonVersions operation.
  1409  //    pageNum := 0
  1410  //    err := client.DescribeAddonVersionsPages(params,
  1411  //        func(page *eks.DescribeAddonVersionsOutput, lastPage bool) bool {
  1412  //            pageNum++
  1413  //            fmt.Println(page)
  1414  //            return pageNum <= 3
  1415  //        })
  1416  //
  1417  func (c *EKS) DescribeAddonVersionsPages(input *DescribeAddonVersionsInput, fn func(*DescribeAddonVersionsOutput, bool) bool) error {
  1418  	return c.DescribeAddonVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
  1419  }
  1420  
  1421  // DescribeAddonVersionsPagesWithContext same as DescribeAddonVersionsPages except
  1422  // it takes a Context and allows setting request options on the pages.
  1423  //
  1424  // The context must be non-nil and will be used for request cancellation. If
  1425  // the context is nil a panic will occur. In the future the SDK may create
  1426  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1427  // for more information on using Contexts.
  1428  func (c *EKS) DescribeAddonVersionsPagesWithContext(ctx aws.Context, input *DescribeAddonVersionsInput, fn func(*DescribeAddonVersionsOutput, bool) bool, opts ...request.Option) error {
  1429  	p := request.Pagination{
  1430  		NewRequest: func() (*request.Request, error) {
  1431  			var inCpy *DescribeAddonVersionsInput
  1432  			if input != nil {
  1433  				tmp := *input
  1434  				inCpy = &tmp
  1435  			}
  1436  			req, _ := c.DescribeAddonVersionsRequest(inCpy)
  1437  			req.SetContext(ctx)
  1438  			req.ApplyOptions(opts...)
  1439  			return req, nil
  1440  		},
  1441  	}
  1442  
  1443  	for p.Next() {
  1444  		if !fn(p.Page().(*DescribeAddonVersionsOutput), !p.HasNextPage()) {
  1445  			break
  1446  		}
  1447  	}
  1448  
  1449  	return p.Err()
  1450  }
  1451  
  1452  const opDescribeCluster = "DescribeCluster"
  1453  
  1454  // DescribeClusterRequest generates a "aws/request.Request" representing the
  1455  // client's request for the DescribeCluster operation. The "output" return
  1456  // value will be populated with the request's response once the request completes
  1457  // successfully.
  1458  //
  1459  // Use "Send" method on the returned Request to send the API call to the service.
  1460  // the "output" return value is not valid until after Send returns without error.
  1461  //
  1462  // See DescribeCluster for more information on using the DescribeCluster
  1463  // API call, and error handling.
  1464  //
  1465  // This method is useful when you want to inject custom logic or configuration
  1466  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1467  //
  1468  //
  1469  //    // Example sending a request using the DescribeClusterRequest method.
  1470  //    req, resp := client.DescribeClusterRequest(params)
  1471  //
  1472  //    err := req.Send()
  1473  //    if err == nil { // resp is now filled
  1474  //        fmt.Println(resp)
  1475  //    }
  1476  //
  1477  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster
  1478  func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
  1479  	op := &request.Operation{
  1480  		Name:       opDescribeCluster,
  1481  		HTTPMethod: "GET",
  1482  		HTTPPath:   "/clusters/{name}",
  1483  	}
  1484  
  1485  	if input == nil {
  1486  		input = &DescribeClusterInput{}
  1487  	}
  1488  
  1489  	output = &DescribeClusterOutput{}
  1490  	req = c.newRequest(op, input, output)
  1491  	return
  1492  }
  1493  
  1494  // DescribeCluster API operation for Amazon Elastic Kubernetes Service.
  1495  //
  1496  // Returns descriptive information about an Amazon EKS cluster.
  1497  //
  1498  // The API server endpoint and certificate authority data returned by this operation
  1499  // are required for kubelet and kubectl to communicate with your Kubernetes
  1500  // API server. For more information, see Create a kubeconfig for Amazon EKS
  1501  // (https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html).
  1502  //
  1503  // The API server endpoint and certificate authority data aren't available until
  1504  // the cluster reaches the ACTIVE state.
  1505  //
  1506  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1507  // with awserr.Error's Code and Message methods to get detailed information about
  1508  // the error.
  1509  //
  1510  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1511  // API operation DescribeCluster for usage and error information.
  1512  //
  1513  // Returned Error Types:
  1514  //   * ResourceNotFoundException
  1515  //   The specified resource could not be found. You can view your available clusters
  1516  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1517  //   Amazon EKS clusters and node groups are Region-specific.
  1518  //
  1519  //   * ClientException
  1520  //   These errors are usually caused by a client action. Actions can include using
  1521  //   an action or resource on behalf of a user that doesn't have permissions to
  1522  //   use the action or resource or specifying an identifier that is not valid.
  1523  //
  1524  //   * ServerException
  1525  //   These errors are usually caused by a server-side issue.
  1526  //
  1527  //   * ServiceUnavailableException
  1528  //   The service is unavailable. Back off and retry the operation.
  1529  //
  1530  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster
  1531  func (c *EKS) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
  1532  	req, out := c.DescribeClusterRequest(input)
  1533  	return out, req.Send()
  1534  }
  1535  
  1536  // DescribeClusterWithContext is the same as DescribeCluster with the addition of
  1537  // the ability to pass a context and additional request options.
  1538  //
  1539  // See DescribeCluster for details on how to use this API operation.
  1540  //
  1541  // The context must be non-nil and will be used for request cancellation. If
  1542  // the context is nil a panic will occur. In the future the SDK may create
  1543  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1544  // for more information on using Contexts.
  1545  func (c *EKS) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
  1546  	req, out := c.DescribeClusterRequest(input)
  1547  	req.SetContext(ctx)
  1548  	req.ApplyOptions(opts...)
  1549  	return out, req.Send()
  1550  }
  1551  
  1552  const opDescribeFargateProfile = "DescribeFargateProfile"
  1553  
  1554  // DescribeFargateProfileRequest generates a "aws/request.Request" representing the
  1555  // client's request for the DescribeFargateProfile operation. The "output" return
  1556  // value will be populated with the request's response once the request completes
  1557  // successfully.
  1558  //
  1559  // Use "Send" method on the returned Request to send the API call to the service.
  1560  // the "output" return value is not valid until after Send returns without error.
  1561  //
  1562  // See DescribeFargateProfile for more information on using the DescribeFargateProfile
  1563  // API call, and error handling.
  1564  //
  1565  // This method is useful when you want to inject custom logic or configuration
  1566  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1567  //
  1568  //
  1569  //    // Example sending a request using the DescribeFargateProfileRequest method.
  1570  //    req, resp := client.DescribeFargateProfileRequest(params)
  1571  //
  1572  //    err := req.Send()
  1573  //    if err == nil { // resp is now filled
  1574  //        fmt.Println(resp)
  1575  //    }
  1576  //
  1577  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile
  1578  func (c *EKS) DescribeFargateProfileRequest(input *DescribeFargateProfileInput) (req *request.Request, output *DescribeFargateProfileOutput) {
  1579  	op := &request.Operation{
  1580  		Name:       opDescribeFargateProfile,
  1581  		HTTPMethod: "GET",
  1582  		HTTPPath:   "/clusters/{name}/fargate-profiles/{fargateProfileName}",
  1583  	}
  1584  
  1585  	if input == nil {
  1586  		input = &DescribeFargateProfileInput{}
  1587  	}
  1588  
  1589  	output = &DescribeFargateProfileOutput{}
  1590  	req = c.newRequest(op, input, output)
  1591  	return
  1592  }
  1593  
  1594  // DescribeFargateProfile API operation for Amazon Elastic Kubernetes Service.
  1595  //
  1596  // Returns descriptive information about an Fargate profile.
  1597  //
  1598  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1599  // with awserr.Error's Code and Message methods to get detailed information about
  1600  // the error.
  1601  //
  1602  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1603  // API operation DescribeFargateProfile for usage and error information.
  1604  //
  1605  // Returned Error Types:
  1606  //   * InvalidParameterException
  1607  //   The specified parameter is invalid. Review the available parameters for the
  1608  //   API request.
  1609  //
  1610  //   * ClientException
  1611  //   These errors are usually caused by a client action. Actions can include using
  1612  //   an action or resource on behalf of a user that doesn't have permissions to
  1613  //   use the action or resource or specifying an identifier that is not valid.
  1614  //
  1615  //   * ServerException
  1616  //   These errors are usually caused by a server-side issue.
  1617  //
  1618  //   * ResourceNotFoundException
  1619  //   The specified resource could not be found. You can view your available clusters
  1620  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1621  //   Amazon EKS clusters and node groups are Region-specific.
  1622  //
  1623  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile
  1624  func (c *EKS) DescribeFargateProfile(input *DescribeFargateProfileInput) (*DescribeFargateProfileOutput, error) {
  1625  	req, out := c.DescribeFargateProfileRequest(input)
  1626  	return out, req.Send()
  1627  }
  1628  
  1629  // DescribeFargateProfileWithContext is the same as DescribeFargateProfile with the addition of
  1630  // the ability to pass a context and additional request options.
  1631  //
  1632  // See DescribeFargateProfile for details on how to use this API operation.
  1633  //
  1634  // The context must be non-nil and will be used for request cancellation. If
  1635  // the context is nil a panic will occur. In the future the SDK may create
  1636  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1637  // for more information on using Contexts.
  1638  func (c *EKS) DescribeFargateProfileWithContext(ctx aws.Context, input *DescribeFargateProfileInput, opts ...request.Option) (*DescribeFargateProfileOutput, error) {
  1639  	req, out := c.DescribeFargateProfileRequest(input)
  1640  	req.SetContext(ctx)
  1641  	req.ApplyOptions(opts...)
  1642  	return out, req.Send()
  1643  }
  1644  
  1645  const opDescribeIdentityProviderConfig = "DescribeIdentityProviderConfig"
  1646  
  1647  // DescribeIdentityProviderConfigRequest generates a "aws/request.Request" representing the
  1648  // client's request for the DescribeIdentityProviderConfig operation. The "output" return
  1649  // value will be populated with the request's response once the request completes
  1650  // successfully.
  1651  //
  1652  // Use "Send" method on the returned Request to send the API call to the service.
  1653  // the "output" return value is not valid until after Send returns without error.
  1654  //
  1655  // See DescribeIdentityProviderConfig for more information on using the DescribeIdentityProviderConfig
  1656  // API call, and error handling.
  1657  //
  1658  // This method is useful when you want to inject custom logic or configuration
  1659  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1660  //
  1661  //
  1662  //    // Example sending a request using the DescribeIdentityProviderConfigRequest method.
  1663  //    req, resp := client.DescribeIdentityProviderConfigRequest(params)
  1664  //
  1665  //    err := req.Send()
  1666  //    if err == nil { // resp is now filled
  1667  //        fmt.Println(resp)
  1668  //    }
  1669  //
  1670  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeIdentityProviderConfig
  1671  func (c *EKS) DescribeIdentityProviderConfigRequest(input *DescribeIdentityProviderConfigInput) (req *request.Request, output *DescribeIdentityProviderConfigOutput) {
  1672  	op := &request.Operation{
  1673  		Name:       opDescribeIdentityProviderConfig,
  1674  		HTTPMethod: "POST",
  1675  		HTTPPath:   "/clusters/{name}/identity-provider-configs/describe",
  1676  	}
  1677  
  1678  	if input == nil {
  1679  		input = &DescribeIdentityProviderConfigInput{}
  1680  	}
  1681  
  1682  	output = &DescribeIdentityProviderConfigOutput{}
  1683  	req = c.newRequest(op, input, output)
  1684  	return
  1685  }
  1686  
  1687  // DescribeIdentityProviderConfig API operation for Amazon Elastic Kubernetes Service.
  1688  //
  1689  // Returns descriptive information about an identity provider configuration.
  1690  //
  1691  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1692  // with awserr.Error's Code and Message methods to get detailed information about
  1693  // the error.
  1694  //
  1695  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1696  // API operation DescribeIdentityProviderConfig for usage and error information.
  1697  //
  1698  // Returned Error Types:
  1699  //   * InvalidParameterException
  1700  //   The specified parameter is invalid. Review the available parameters for the
  1701  //   API request.
  1702  //
  1703  //   * ResourceNotFoundException
  1704  //   The specified resource could not be found. You can view your available clusters
  1705  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1706  //   Amazon EKS clusters and node groups are Region-specific.
  1707  //
  1708  //   * ClientException
  1709  //   These errors are usually caused by a client action. Actions can include using
  1710  //   an action or resource on behalf of a user that doesn't have permissions to
  1711  //   use the action or resource or specifying an identifier that is not valid.
  1712  //
  1713  //   * ServerException
  1714  //   These errors are usually caused by a server-side issue.
  1715  //
  1716  //   * ServiceUnavailableException
  1717  //   The service is unavailable. Back off and retry the operation.
  1718  //
  1719  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeIdentityProviderConfig
  1720  func (c *EKS) DescribeIdentityProviderConfig(input *DescribeIdentityProviderConfigInput) (*DescribeIdentityProviderConfigOutput, error) {
  1721  	req, out := c.DescribeIdentityProviderConfigRequest(input)
  1722  	return out, req.Send()
  1723  }
  1724  
  1725  // DescribeIdentityProviderConfigWithContext is the same as DescribeIdentityProviderConfig with the addition of
  1726  // the ability to pass a context and additional request options.
  1727  //
  1728  // See DescribeIdentityProviderConfig for details on how to use this API operation.
  1729  //
  1730  // The context must be non-nil and will be used for request cancellation. If
  1731  // the context is nil a panic will occur. In the future the SDK may create
  1732  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1733  // for more information on using Contexts.
  1734  func (c *EKS) DescribeIdentityProviderConfigWithContext(ctx aws.Context, input *DescribeIdentityProviderConfigInput, opts ...request.Option) (*DescribeIdentityProviderConfigOutput, error) {
  1735  	req, out := c.DescribeIdentityProviderConfigRequest(input)
  1736  	req.SetContext(ctx)
  1737  	req.ApplyOptions(opts...)
  1738  	return out, req.Send()
  1739  }
  1740  
  1741  const opDescribeNodegroup = "DescribeNodegroup"
  1742  
  1743  // DescribeNodegroupRequest generates a "aws/request.Request" representing the
  1744  // client's request for the DescribeNodegroup operation. The "output" return
  1745  // value will be populated with the request's response once the request completes
  1746  // successfully.
  1747  //
  1748  // Use "Send" method on the returned Request to send the API call to the service.
  1749  // the "output" return value is not valid until after Send returns without error.
  1750  //
  1751  // See DescribeNodegroup for more information on using the DescribeNodegroup
  1752  // API call, and error handling.
  1753  //
  1754  // This method is useful when you want to inject custom logic or configuration
  1755  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1756  //
  1757  //
  1758  //    // Example sending a request using the DescribeNodegroupRequest method.
  1759  //    req, resp := client.DescribeNodegroupRequest(params)
  1760  //
  1761  //    err := req.Send()
  1762  //    if err == nil { // resp is now filled
  1763  //        fmt.Println(resp)
  1764  //    }
  1765  //
  1766  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroup
  1767  func (c *EKS) DescribeNodegroupRequest(input *DescribeNodegroupInput) (req *request.Request, output *DescribeNodegroupOutput) {
  1768  	op := &request.Operation{
  1769  		Name:       opDescribeNodegroup,
  1770  		HTTPMethod: "GET",
  1771  		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}",
  1772  	}
  1773  
  1774  	if input == nil {
  1775  		input = &DescribeNodegroupInput{}
  1776  	}
  1777  
  1778  	output = &DescribeNodegroupOutput{}
  1779  	req = c.newRequest(op, input, output)
  1780  	return
  1781  }
  1782  
  1783  // DescribeNodegroup API operation for Amazon Elastic Kubernetes Service.
  1784  //
  1785  // Returns descriptive information about an Amazon EKS node group.
  1786  //
  1787  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1788  // with awserr.Error's Code and Message methods to get detailed information about
  1789  // the error.
  1790  //
  1791  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1792  // API operation DescribeNodegroup for usage and error information.
  1793  //
  1794  // Returned Error Types:
  1795  //   * InvalidParameterException
  1796  //   The specified parameter is invalid. Review the available parameters for the
  1797  //   API request.
  1798  //
  1799  //   * ResourceNotFoundException
  1800  //   The specified resource could not be found. You can view your available clusters
  1801  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1802  //   Amazon EKS clusters and node groups are Region-specific.
  1803  //
  1804  //   * ClientException
  1805  //   These errors are usually caused by a client action. Actions can include using
  1806  //   an action or resource on behalf of a user that doesn't have permissions to
  1807  //   use the action or resource or specifying an identifier that is not valid.
  1808  //
  1809  //   * ServerException
  1810  //   These errors are usually caused by a server-side issue.
  1811  //
  1812  //   * ServiceUnavailableException
  1813  //   The service is unavailable. Back off and retry the operation.
  1814  //
  1815  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroup
  1816  func (c *EKS) DescribeNodegroup(input *DescribeNodegroupInput) (*DescribeNodegroupOutput, error) {
  1817  	req, out := c.DescribeNodegroupRequest(input)
  1818  	return out, req.Send()
  1819  }
  1820  
  1821  // DescribeNodegroupWithContext is the same as DescribeNodegroup with the addition of
  1822  // the ability to pass a context and additional request options.
  1823  //
  1824  // See DescribeNodegroup for details on how to use this API operation.
  1825  //
  1826  // The context must be non-nil and will be used for request cancellation. If
  1827  // the context is nil a panic will occur. In the future the SDK may create
  1828  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1829  // for more information on using Contexts.
  1830  func (c *EKS) DescribeNodegroupWithContext(ctx aws.Context, input *DescribeNodegroupInput, opts ...request.Option) (*DescribeNodegroupOutput, error) {
  1831  	req, out := c.DescribeNodegroupRequest(input)
  1832  	req.SetContext(ctx)
  1833  	req.ApplyOptions(opts...)
  1834  	return out, req.Send()
  1835  }
  1836  
  1837  const opDescribeUpdate = "DescribeUpdate"
  1838  
  1839  // DescribeUpdateRequest generates a "aws/request.Request" representing the
  1840  // client's request for the DescribeUpdate operation. The "output" return
  1841  // value will be populated with the request's response once the request completes
  1842  // successfully.
  1843  //
  1844  // Use "Send" method on the returned Request to send the API call to the service.
  1845  // the "output" return value is not valid until after Send returns without error.
  1846  //
  1847  // See DescribeUpdate for more information on using the DescribeUpdate
  1848  // API call, and error handling.
  1849  //
  1850  // This method is useful when you want to inject custom logic or configuration
  1851  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1852  //
  1853  //
  1854  //    // Example sending a request using the DescribeUpdateRequest method.
  1855  //    req, resp := client.DescribeUpdateRequest(params)
  1856  //
  1857  //    err := req.Send()
  1858  //    if err == nil { // resp is now filled
  1859  //        fmt.Println(resp)
  1860  //    }
  1861  //
  1862  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate
  1863  func (c *EKS) DescribeUpdateRequest(input *DescribeUpdateInput) (req *request.Request, output *DescribeUpdateOutput) {
  1864  	op := &request.Operation{
  1865  		Name:       opDescribeUpdate,
  1866  		HTTPMethod: "GET",
  1867  		HTTPPath:   "/clusters/{name}/updates/{updateId}",
  1868  	}
  1869  
  1870  	if input == nil {
  1871  		input = &DescribeUpdateInput{}
  1872  	}
  1873  
  1874  	output = &DescribeUpdateOutput{}
  1875  	req = c.newRequest(op, input, output)
  1876  	return
  1877  }
  1878  
  1879  // DescribeUpdate API operation for Amazon Elastic Kubernetes Service.
  1880  //
  1881  // Returns descriptive information about an update against your Amazon EKS cluster
  1882  // or associated managed node group.
  1883  //
  1884  // When the status of the update is Succeeded, the update is complete. If an
  1885  // update fails, the status is Failed, and an error detail explains the reason
  1886  // for the failure.
  1887  //
  1888  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1889  // with awserr.Error's Code and Message methods to get detailed information about
  1890  // the error.
  1891  //
  1892  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1893  // API operation DescribeUpdate for usage and error information.
  1894  //
  1895  // Returned Error Types:
  1896  //   * InvalidParameterException
  1897  //   The specified parameter is invalid. Review the available parameters for the
  1898  //   API request.
  1899  //
  1900  //   * ClientException
  1901  //   These errors are usually caused by a client action. Actions can include using
  1902  //   an action or resource on behalf of a user that doesn't have permissions to
  1903  //   use the action or resource or specifying an identifier that is not valid.
  1904  //
  1905  //   * ServerException
  1906  //   These errors are usually caused by a server-side issue.
  1907  //
  1908  //   * ResourceNotFoundException
  1909  //   The specified resource could not be found. You can view your available clusters
  1910  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  1911  //   Amazon EKS clusters and node groups are Region-specific.
  1912  //
  1913  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate
  1914  func (c *EKS) DescribeUpdate(input *DescribeUpdateInput) (*DescribeUpdateOutput, error) {
  1915  	req, out := c.DescribeUpdateRequest(input)
  1916  	return out, req.Send()
  1917  }
  1918  
  1919  // DescribeUpdateWithContext is the same as DescribeUpdate with the addition of
  1920  // the ability to pass a context and additional request options.
  1921  //
  1922  // See DescribeUpdate for details on how to use this API operation.
  1923  //
  1924  // The context must be non-nil and will be used for request cancellation. If
  1925  // the context is nil a panic will occur. In the future the SDK may create
  1926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1927  // for more information on using Contexts.
  1928  func (c *EKS) DescribeUpdateWithContext(ctx aws.Context, input *DescribeUpdateInput, opts ...request.Option) (*DescribeUpdateOutput, error) {
  1929  	req, out := c.DescribeUpdateRequest(input)
  1930  	req.SetContext(ctx)
  1931  	req.ApplyOptions(opts...)
  1932  	return out, req.Send()
  1933  }
  1934  
  1935  const opDisassociateIdentityProviderConfig = "DisassociateIdentityProviderConfig"
  1936  
  1937  // DisassociateIdentityProviderConfigRequest generates a "aws/request.Request" representing the
  1938  // client's request for the DisassociateIdentityProviderConfig operation. The "output" return
  1939  // value will be populated with the request's response once the request completes
  1940  // successfully.
  1941  //
  1942  // Use "Send" method on the returned Request to send the API call to the service.
  1943  // the "output" return value is not valid until after Send returns without error.
  1944  //
  1945  // See DisassociateIdentityProviderConfig for more information on using the DisassociateIdentityProviderConfig
  1946  // API call, and error handling.
  1947  //
  1948  // This method is useful when you want to inject custom logic or configuration
  1949  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1950  //
  1951  //
  1952  //    // Example sending a request using the DisassociateIdentityProviderConfigRequest method.
  1953  //    req, resp := client.DisassociateIdentityProviderConfigRequest(params)
  1954  //
  1955  //    err := req.Send()
  1956  //    if err == nil { // resp is now filled
  1957  //        fmt.Println(resp)
  1958  //    }
  1959  //
  1960  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DisassociateIdentityProviderConfig
  1961  func (c *EKS) DisassociateIdentityProviderConfigRequest(input *DisassociateIdentityProviderConfigInput) (req *request.Request, output *DisassociateIdentityProviderConfigOutput) {
  1962  	op := &request.Operation{
  1963  		Name:       opDisassociateIdentityProviderConfig,
  1964  		HTTPMethod: "POST",
  1965  		HTTPPath:   "/clusters/{name}/identity-provider-configs/disassociate",
  1966  	}
  1967  
  1968  	if input == nil {
  1969  		input = &DisassociateIdentityProviderConfigInput{}
  1970  	}
  1971  
  1972  	output = &DisassociateIdentityProviderConfigOutput{}
  1973  	req = c.newRequest(op, input, output)
  1974  	return
  1975  }
  1976  
  1977  // DisassociateIdentityProviderConfig API operation for Amazon Elastic Kubernetes Service.
  1978  //
  1979  // Disassociates an identity provider configuration from a cluster. If you disassociate
  1980  // an identity provider from your cluster, users included in the provider can
  1981  // no longer access the cluster. However, you can still access the cluster with
  1982  // Amazon Web Services IAM users.
  1983  //
  1984  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1985  // with awserr.Error's Code and Message methods to get detailed information about
  1986  // the error.
  1987  //
  1988  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  1989  // API operation DisassociateIdentityProviderConfig for usage and error information.
  1990  //
  1991  // Returned Error Types:
  1992  //   * InvalidParameterException
  1993  //   The specified parameter is invalid. Review the available parameters for the
  1994  //   API request.
  1995  //
  1996  //   * ClientException
  1997  //   These errors are usually caused by a client action. Actions can include using
  1998  //   an action or resource on behalf of a user that doesn't have permissions to
  1999  //   use the action or resource or specifying an identifier that is not valid.
  2000  //
  2001  //   * ServerException
  2002  //   These errors are usually caused by a server-side issue.
  2003  //
  2004  //   * ResourceInUseException
  2005  //   The specified resource is in use.
  2006  //
  2007  //   * ResourceNotFoundException
  2008  //   The specified resource could not be found. You can view your available clusters
  2009  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  2010  //   Amazon EKS clusters and node groups are Region-specific.
  2011  //
  2012  //   * InvalidRequestException
  2013  //   The request is invalid given the state of the cluster. Check the state of
  2014  //   the cluster and the associated operations.
  2015  //
  2016  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DisassociateIdentityProviderConfig
  2017  func (c *EKS) DisassociateIdentityProviderConfig(input *DisassociateIdentityProviderConfigInput) (*DisassociateIdentityProviderConfigOutput, error) {
  2018  	req, out := c.DisassociateIdentityProviderConfigRequest(input)
  2019  	return out, req.Send()
  2020  }
  2021  
  2022  // DisassociateIdentityProviderConfigWithContext is the same as DisassociateIdentityProviderConfig with the addition of
  2023  // the ability to pass a context and additional request options.
  2024  //
  2025  // See DisassociateIdentityProviderConfig for details on how to use this API operation.
  2026  //
  2027  // The context must be non-nil and will be used for request cancellation. If
  2028  // the context is nil a panic will occur. In the future the SDK may create
  2029  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2030  // for more information on using Contexts.
  2031  func (c *EKS) DisassociateIdentityProviderConfigWithContext(ctx aws.Context, input *DisassociateIdentityProviderConfigInput, opts ...request.Option) (*DisassociateIdentityProviderConfigOutput, error) {
  2032  	req, out := c.DisassociateIdentityProviderConfigRequest(input)
  2033  	req.SetContext(ctx)
  2034  	req.ApplyOptions(opts...)
  2035  	return out, req.Send()
  2036  }
  2037  
  2038  const opListAddons = "ListAddons"
  2039  
  2040  // ListAddonsRequest generates a "aws/request.Request" representing the
  2041  // client's request for the ListAddons operation. The "output" return
  2042  // value will be populated with the request's response once the request completes
  2043  // successfully.
  2044  //
  2045  // Use "Send" method on the returned Request to send the API call to the service.
  2046  // the "output" return value is not valid until after Send returns without error.
  2047  //
  2048  // See ListAddons for more information on using the ListAddons
  2049  // API call, and error handling.
  2050  //
  2051  // This method is useful when you want to inject custom logic or configuration
  2052  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2053  //
  2054  //
  2055  //    // Example sending a request using the ListAddonsRequest method.
  2056  //    req, resp := client.ListAddonsRequest(params)
  2057  //
  2058  //    err := req.Send()
  2059  //    if err == nil { // resp is now filled
  2060  //        fmt.Println(resp)
  2061  //    }
  2062  //
  2063  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListAddons
  2064  func (c *EKS) ListAddonsRequest(input *ListAddonsInput) (req *request.Request, output *ListAddonsOutput) {
  2065  	op := &request.Operation{
  2066  		Name:       opListAddons,
  2067  		HTTPMethod: "GET",
  2068  		HTTPPath:   "/clusters/{name}/addons",
  2069  		Paginator: &request.Paginator{
  2070  			InputTokens:     []string{"nextToken"},
  2071  			OutputTokens:    []string{"nextToken"},
  2072  			LimitToken:      "maxResults",
  2073  			TruncationToken: "",
  2074  		},
  2075  	}
  2076  
  2077  	if input == nil {
  2078  		input = &ListAddonsInput{}
  2079  	}
  2080  
  2081  	output = &ListAddonsOutput{}
  2082  	req = c.newRequest(op, input, output)
  2083  	return
  2084  }
  2085  
  2086  // ListAddons API operation for Amazon Elastic Kubernetes Service.
  2087  //
  2088  // Lists the available add-ons.
  2089  //
  2090  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2091  // with awserr.Error's Code and Message methods to get detailed information about
  2092  // the error.
  2093  //
  2094  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2095  // API operation ListAddons for usage and error information.
  2096  //
  2097  // Returned Error Types:
  2098  //   * InvalidParameterException
  2099  //   The specified parameter is invalid. Review the available parameters for the
  2100  //   API request.
  2101  //
  2102  //   * InvalidRequestException
  2103  //   The request is invalid given the state of the cluster. Check the state of
  2104  //   the cluster and the associated operations.
  2105  //
  2106  //   * ClientException
  2107  //   These errors are usually caused by a client action. Actions can include using
  2108  //   an action or resource on behalf of a user that doesn't have permissions to
  2109  //   use the action or resource or specifying an identifier that is not valid.
  2110  //
  2111  //   * ResourceNotFoundException
  2112  //   The specified resource could not be found. You can view your available clusters
  2113  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  2114  //   Amazon EKS clusters and node groups are Region-specific.
  2115  //
  2116  //   * ServerException
  2117  //   These errors are usually caused by a server-side issue.
  2118  //
  2119  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListAddons
  2120  func (c *EKS) ListAddons(input *ListAddonsInput) (*ListAddonsOutput, error) {
  2121  	req, out := c.ListAddonsRequest(input)
  2122  	return out, req.Send()
  2123  }
  2124  
  2125  // ListAddonsWithContext is the same as ListAddons with the addition of
  2126  // the ability to pass a context and additional request options.
  2127  //
  2128  // See ListAddons for details on how to use this API operation.
  2129  //
  2130  // The context must be non-nil and will be used for request cancellation. If
  2131  // the context is nil a panic will occur. In the future the SDK may create
  2132  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2133  // for more information on using Contexts.
  2134  func (c *EKS) ListAddonsWithContext(ctx aws.Context, input *ListAddonsInput, opts ...request.Option) (*ListAddonsOutput, error) {
  2135  	req, out := c.ListAddonsRequest(input)
  2136  	req.SetContext(ctx)
  2137  	req.ApplyOptions(opts...)
  2138  	return out, req.Send()
  2139  }
  2140  
  2141  // ListAddonsPages iterates over the pages of a ListAddons operation,
  2142  // calling the "fn" function with the response data for each page. To stop
  2143  // iterating, return false from the fn function.
  2144  //
  2145  // See ListAddons method for more information on how to use this operation.
  2146  //
  2147  // Note: This operation can generate multiple requests to a service.
  2148  //
  2149  //    // Example iterating over at most 3 pages of a ListAddons operation.
  2150  //    pageNum := 0
  2151  //    err := client.ListAddonsPages(params,
  2152  //        func(page *eks.ListAddonsOutput, lastPage bool) bool {
  2153  //            pageNum++
  2154  //            fmt.Println(page)
  2155  //            return pageNum <= 3
  2156  //        })
  2157  //
  2158  func (c *EKS) ListAddonsPages(input *ListAddonsInput, fn func(*ListAddonsOutput, bool) bool) error {
  2159  	return c.ListAddonsPagesWithContext(aws.BackgroundContext(), input, fn)
  2160  }
  2161  
  2162  // ListAddonsPagesWithContext same as ListAddonsPages except
  2163  // it takes a Context and allows setting request options on the pages.
  2164  //
  2165  // The context must be non-nil and will be used for request cancellation. If
  2166  // the context is nil a panic will occur. In the future the SDK may create
  2167  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2168  // for more information on using Contexts.
  2169  func (c *EKS) ListAddonsPagesWithContext(ctx aws.Context, input *ListAddonsInput, fn func(*ListAddonsOutput, bool) bool, opts ...request.Option) error {
  2170  	p := request.Pagination{
  2171  		NewRequest: func() (*request.Request, error) {
  2172  			var inCpy *ListAddonsInput
  2173  			if input != nil {
  2174  				tmp := *input
  2175  				inCpy = &tmp
  2176  			}
  2177  			req, _ := c.ListAddonsRequest(inCpy)
  2178  			req.SetContext(ctx)
  2179  			req.ApplyOptions(opts...)
  2180  			return req, nil
  2181  		},
  2182  	}
  2183  
  2184  	for p.Next() {
  2185  		if !fn(p.Page().(*ListAddonsOutput), !p.HasNextPage()) {
  2186  			break
  2187  		}
  2188  	}
  2189  
  2190  	return p.Err()
  2191  }
  2192  
  2193  const opListClusters = "ListClusters"
  2194  
  2195  // ListClustersRequest generates a "aws/request.Request" representing the
  2196  // client's request for the ListClusters operation. The "output" return
  2197  // value will be populated with the request's response once the request completes
  2198  // successfully.
  2199  //
  2200  // Use "Send" method on the returned Request to send the API call to the service.
  2201  // the "output" return value is not valid until after Send returns without error.
  2202  //
  2203  // See ListClusters for more information on using the ListClusters
  2204  // API call, and error handling.
  2205  //
  2206  // This method is useful when you want to inject custom logic or configuration
  2207  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2208  //
  2209  //
  2210  //    // Example sending a request using the ListClustersRequest method.
  2211  //    req, resp := client.ListClustersRequest(params)
  2212  //
  2213  //    err := req.Send()
  2214  //    if err == nil { // resp is now filled
  2215  //        fmt.Println(resp)
  2216  //    }
  2217  //
  2218  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters
  2219  func (c *EKS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
  2220  	op := &request.Operation{
  2221  		Name:       opListClusters,
  2222  		HTTPMethod: "GET",
  2223  		HTTPPath:   "/clusters",
  2224  		Paginator: &request.Paginator{
  2225  			InputTokens:     []string{"nextToken"},
  2226  			OutputTokens:    []string{"nextToken"},
  2227  			LimitToken:      "maxResults",
  2228  			TruncationToken: "",
  2229  		},
  2230  	}
  2231  
  2232  	if input == nil {
  2233  		input = &ListClustersInput{}
  2234  	}
  2235  
  2236  	output = &ListClustersOutput{}
  2237  	req = c.newRequest(op, input, output)
  2238  	return
  2239  }
  2240  
  2241  // ListClusters API operation for Amazon Elastic Kubernetes Service.
  2242  //
  2243  // Lists the Amazon EKS clusters in your Amazon Web Services account in the
  2244  // specified Region.
  2245  //
  2246  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2247  // with awserr.Error's Code and Message methods to get detailed information about
  2248  // the error.
  2249  //
  2250  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2251  // API operation ListClusters for usage and error information.
  2252  //
  2253  // Returned Error Types:
  2254  //   * InvalidParameterException
  2255  //   The specified parameter is invalid. Review the available parameters for the
  2256  //   API request.
  2257  //
  2258  //   * ClientException
  2259  //   These errors are usually caused by a client action. Actions can include using
  2260  //   an action or resource on behalf of a user that doesn't have permissions to
  2261  //   use the action or resource or specifying an identifier that is not valid.
  2262  //
  2263  //   * ServerException
  2264  //   These errors are usually caused by a server-side issue.
  2265  //
  2266  //   * ServiceUnavailableException
  2267  //   The service is unavailable. Back off and retry the operation.
  2268  //
  2269  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters
  2270  func (c *EKS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
  2271  	req, out := c.ListClustersRequest(input)
  2272  	return out, req.Send()
  2273  }
  2274  
  2275  // ListClustersWithContext is the same as ListClusters with the addition of
  2276  // the ability to pass a context and additional request options.
  2277  //
  2278  // See ListClusters for details on how to use this API operation.
  2279  //
  2280  // The context must be non-nil and will be used for request cancellation. If
  2281  // the context is nil a panic will occur. In the future the SDK may create
  2282  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2283  // for more information on using Contexts.
  2284  func (c *EKS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
  2285  	req, out := c.ListClustersRequest(input)
  2286  	req.SetContext(ctx)
  2287  	req.ApplyOptions(opts...)
  2288  	return out, req.Send()
  2289  }
  2290  
  2291  // ListClustersPages iterates over the pages of a ListClusters operation,
  2292  // calling the "fn" function with the response data for each page. To stop
  2293  // iterating, return false from the fn function.
  2294  //
  2295  // See ListClusters method for more information on how to use this operation.
  2296  //
  2297  // Note: This operation can generate multiple requests to a service.
  2298  //
  2299  //    // Example iterating over at most 3 pages of a ListClusters operation.
  2300  //    pageNum := 0
  2301  //    err := client.ListClustersPages(params,
  2302  //        func(page *eks.ListClustersOutput, lastPage bool) bool {
  2303  //            pageNum++
  2304  //            fmt.Println(page)
  2305  //            return pageNum <= 3
  2306  //        })
  2307  //
  2308  func (c *EKS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
  2309  	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
  2310  }
  2311  
  2312  // ListClustersPagesWithContext same as ListClustersPages except
  2313  // it takes a Context and allows setting request options on the pages.
  2314  //
  2315  // The context must be non-nil and will be used for request cancellation. If
  2316  // the context is nil a panic will occur. In the future the SDK may create
  2317  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2318  // for more information on using Contexts.
  2319  func (c *EKS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
  2320  	p := request.Pagination{
  2321  		NewRequest: func() (*request.Request, error) {
  2322  			var inCpy *ListClustersInput
  2323  			if input != nil {
  2324  				tmp := *input
  2325  				inCpy = &tmp
  2326  			}
  2327  			req, _ := c.ListClustersRequest(inCpy)
  2328  			req.SetContext(ctx)
  2329  			req.ApplyOptions(opts...)
  2330  			return req, nil
  2331  		},
  2332  	}
  2333  
  2334  	for p.Next() {
  2335  		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
  2336  			break
  2337  		}
  2338  	}
  2339  
  2340  	return p.Err()
  2341  }
  2342  
  2343  const opListFargateProfiles = "ListFargateProfiles"
  2344  
  2345  // ListFargateProfilesRequest generates a "aws/request.Request" representing the
  2346  // client's request for the ListFargateProfiles operation. The "output" return
  2347  // value will be populated with the request's response once the request completes
  2348  // successfully.
  2349  //
  2350  // Use "Send" method on the returned Request to send the API call to the service.
  2351  // the "output" return value is not valid until after Send returns without error.
  2352  //
  2353  // See ListFargateProfiles for more information on using the ListFargateProfiles
  2354  // API call, and error handling.
  2355  //
  2356  // This method is useful when you want to inject custom logic or configuration
  2357  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2358  //
  2359  //
  2360  //    // Example sending a request using the ListFargateProfilesRequest method.
  2361  //    req, resp := client.ListFargateProfilesRequest(params)
  2362  //
  2363  //    err := req.Send()
  2364  //    if err == nil { // resp is now filled
  2365  //        fmt.Println(resp)
  2366  //    }
  2367  //
  2368  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles
  2369  func (c *EKS) ListFargateProfilesRequest(input *ListFargateProfilesInput) (req *request.Request, output *ListFargateProfilesOutput) {
  2370  	op := &request.Operation{
  2371  		Name:       opListFargateProfiles,
  2372  		HTTPMethod: "GET",
  2373  		HTTPPath:   "/clusters/{name}/fargate-profiles",
  2374  		Paginator: &request.Paginator{
  2375  			InputTokens:     []string{"nextToken"},
  2376  			OutputTokens:    []string{"nextToken"},
  2377  			LimitToken:      "maxResults",
  2378  			TruncationToken: "",
  2379  		},
  2380  	}
  2381  
  2382  	if input == nil {
  2383  		input = &ListFargateProfilesInput{}
  2384  	}
  2385  
  2386  	output = &ListFargateProfilesOutput{}
  2387  	req = c.newRequest(op, input, output)
  2388  	return
  2389  }
  2390  
  2391  // ListFargateProfiles API operation for Amazon Elastic Kubernetes Service.
  2392  //
  2393  // Lists the Fargate profiles associated with the specified cluster in your
  2394  // Amazon Web Services account in the specified Region.
  2395  //
  2396  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2397  // with awserr.Error's Code and Message methods to get detailed information about
  2398  // the error.
  2399  //
  2400  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2401  // API operation ListFargateProfiles for usage and error information.
  2402  //
  2403  // Returned Error Types:
  2404  //   * InvalidParameterException
  2405  //   The specified parameter is invalid. Review the available parameters for the
  2406  //   API request.
  2407  //
  2408  //   * ResourceNotFoundException
  2409  //   The specified resource could not be found. You can view your available clusters
  2410  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  2411  //   Amazon EKS clusters and node groups are Region-specific.
  2412  //
  2413  //   * ClientException
  2414  //   These errors are usually caused by a client action. Actions can include using
  2415  //   an action or resource on behalf of a user that doesn't have permissions to
  2416  //   use the action or resource or specifying an identifier that is not valid.
  2417  //
  2418  //   * ServerException
  2419  //   These errors are usually caused by a server-side issue.
  2420  //
  2421  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles
  2422  func (c *EKS) ListFargateProfiles(input *ListFargateProfilesInput) (*ListFargateProfilesOutput, error) {
  2423  	req, out := c.ListFargateProfilesRequest(input)
  2424  	return out, req.Send()
  2425  }
  2426  
  2427  // ListFargateProfilesWithContext is the same as ListFargateProfiles with the addition of
  2428  // the ability to pass a context and additional request options.
  2429  //
  2430  // See ListFargateProfiles for details on how to use this API operation.
  2431  //
  2432  // The context must be non-nil and will be used for request cancellation. If
  2433  // the context is nil a panic will occur. In the future the SDK may create
  2434  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2435  // for more information on using Contexts.
  2436  func (c *EKS) ListFargateProfilesWithContext(ctx aws.Context, input *ListFargateProfilesInput, opts ...request.Option) (*ListFargateProfilesOutput, error) {
  2437  	req, out := c.ListFargateProfilesRequest(input)
  2438  	req.SetContext(ctx)
  2439  	req.ApplyOptions(opts...)
  2440  	return out, req.Send()
  2441  }
  2442  
  2443  // ListFargateProfilesPages iterates over the pages of a ListFargateProfiles operation,
  2444  // calling the "fn" function with the response data for each page. To stop
  2445  // iterating, return false from the fn function.
  2446  //
  2447  // See ListFargateProfiles method for more information on how to use this operation.
  2448  //
  2449  // Note: This operation can generate multiple requests to a service.
  2450  //
  2451  //    // Example iterating over at most 3 pages of a ListFargateProfiles operation.
  2452  //    pageNum := 0
  2453  //    err := client.ListFargateProfilesPages(params,
  2454  //        func(page *eks.ListFargateProfilesOutput, lastPage bool) bool {
  2455  //            pageNum++
  2456  //            fmt.Println(page)
  2457  //            return pageNum <= 3
  2458  //        })
  2459  //
  2460  func (c *EKS) ListFargateProfilesPages(input *ListFargateProfilesInput, fn func(*ListFargateProfilesOutput, bool) bool) error {
  2461  	return c.ListFargateProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
  2462  }
  2463  
  2464  // ListFargateProfilesPagesWithContext same as ListFargateProfilesPages except
  2465  // it takes a Context and allows setting request options on the pages.
  2466  //
  2467  // The context must be non-nil and will be used for request cancellation. If
  2468  // the context is nil a panic will occur. In the future the SDK may create
  2469  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2470  // for more information on using Contexts.
  2471  func (c *EKS) ListFargateProfilesPagesWithContext(ctx aws.Context, input *ListFargateProfilesInput, fn func(*ListFargateProfilesOutput, bool) bool, opts ...request.Option) error {
  2472  	p := request.Pagination{
  2473  		NewRequest: func() (*request.Request, error) {
  2474  			var inCpy *ListFargateProfilesInput
  2475  			if input != nil {
  2476  				tmp := *input
  2477  				inCpy = &tmp
  2478  			}
  2479  			req, _ := c.ListFargateProfilesRequest(inCpy)
  2480  			req.SetContext(ctx)
  2481  			req.ApplyOptions(opts...)
  2482  			return req, nil
  2483  		},
  2484  	}
  2485  
  2486  	for p.Next() {
  2487  		if !fn(p.Page().(*ListFargateProfilesOutput), !p.HasNextPage()) {
  2488  			break
  2489  		}
  2490  	}
  2491  
  2492  	return p.Err()
  2493  }
  2494  
  2495  const opListIdentityProviderConfigs = "ListIdentityProviderConfigs"
  2496  
  2497  // ListIdentityProviderConfigsRequest generates a "aws/request.Request" representing the
  2498  // client's request for the ListIdentityProviderConfigs operation. The "output" return
  2499  // value will be populated with the request's response once the request completes
  2500  // successfully.
  2501  //
  2502  // Use "Send" method on the returned Request to send the API call to the service.
  2503  // the "output" return value is not valid until after Send returns without error.
  2504  //
  2505  // See ListIdentityProviderConfigs for more information on using the ListIdentityProviderConfigs
  2506  // API call, and error handling.
  2507  //
  2508  // This method is useful when you want to inject custom logic or configuration
  2509  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2510  //
  2511  //
  2512  //    // Example sending a request using the ListIdentityProviderConfigsRequest method.
  2513  //    req, resp := client.ListIdentityProviderConfigsRequest(params)
  2514  //
  2515  //    err := req.Send()
  2516  //    if err == nil { // resp is now filled
  2517  //        fmt.Println(resp)
  2518  //    }
  2519  //
  2520  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListIdentityProviderConfigs
  2521  func (c *EKS) ListIdentityProviderConfigsRequest(input *ListIdentityProviderConfigsInput) (req *request.Request, output *ListIdentityProviderConfigsOutput) {
  2522  	op := &request.Operation{
  2523  		Name:       opListIdentityProviderConfigs,
  2524  		HTTPMethod: "GET",
  2525  		HTTPPath:   "/clusters/{name}/identity-provider-configs",
  2526  		Paginator: &request.Paginator{
  2527  			InputTokens:     []string{"nextToken"},
  2528  			OutputTokens:    []string{"nextToken"},
  2529  			LimitToken:      "maxResults",
  2530  			TruncationToken: "",
  2531  		},
  2532  	}
  2533  
  2534  	if input == nil {
  2535  		input = &ListIdentityProviderConfigsInput{}
  2536  	}
  2537  
  2538  	output = &ListIdentityProviderConfigsOutput{}
  2539  	req = c.newRequest(op, input, output)
  2540  	return
  2541  }
  2542  
  2543  // ListIdentityProviderConfigs API operation for Amazon Elastic Kubernetes Service.
  2544  //
  2545  // A list of identity provider configurations.
  2546  //
  2547  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2548  // with awserr.Error's Code and Message methods to get detailed information about
  2549  // the error.
  2550  //
  2551  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2552  // API operation ListIdentityProviderConfigs for usage and error information.
  2553  //
  2554  // Returned Error Types:
  2555  //   * InvalidParameterException
  2556  //   The specified parameter is invalid. Review the available parameters for the
  2557  //   API request.
  2558  //
  2559  //   * ClientException
  2560  //   These errors are usually caused by a client action. Actions can include using
  2561  //   an action or resource on behalf of a user that doesn't have permissions to
  2562  //   use the action or resource or specifying an identifier that is not valid.
  2563  //
  2564  //   * ServerException
  2565  //   These errors are usually caused by a server-side issue.
  2566  //
  2567  //   * ServiceUnavailableException
  2568  //   The service is unavailable. Back off and retry the operation.
  2569  //
  2570  //   * ResourceNotFoundException
  2571  //   The specified resource could not be found. You can view your available clusters
  2572  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  2573  //   Amazon EKS clusters and node groups are Region-specific.
  2574  //
  2575  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListIdentityProviderConfigs
  2576  func (c *EKS) ListIdentityProviderConfigs(input *ListIdentityProviderConfigsInput) (*ListIdentityProviderConfigsOutput, error) {
  2577  	req, out := c.ListIdentityProviderConfigsRequest(input)
  2578  	return out, req.Send()
  2579  }
  2580  
  2581  // ListIdentityProviderConfigsWithContext is the same as ListIdentityProviderConfigs with the addition of
  2582  // the ability to pass a context and additional request options.
  2583  //
  2584  // See ListIdentityProviderConfigs for details on how to use this API operation.
  2585  //
  2586  // The context must be non-nil and will be used for request cancellation. If
  2587  // the context is nil a panic will occur. In the future the SDK may create
  2588  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2589  // for more information on using Contexts.
  2590  func (c *EKS) ListIdentityProviderConfigsWithContext(ctx aws.Context, input *ListIdentityProviderConfigsInput, opts ...request.Option) (*ListIdentityProviderConfigsOutput, error) {
  2591  	req, out := c.ListIdentityProviderConfigsRequest(input)
  2592  	req.SetContext(ctx)
  2593  	req.ApplyOptions(opts...)
  2594  	return out, req.Send()
  2595  }
  2596  
  2597  // ListIdentityProviderConfigsPages iterates over the pages of a ListIdentityProviderConfigs operation,
  2598  // calling the "fn" function with the response data for each page. To stop
  2599  // iterating, return false from the fn function.
  2600  //
  2601  // See ListIdentityProviderConfigs method for more information on how to use this operation.
  2602  //
  2603  // Note: This operation can generate multiple requests to a service.
  2604  //
  2605  //    // Example iterating over at most 3 pages of a ListIdentityProviderConfigs operation.
  2606  //    pageNum := 0
  2607  //    err := client.ListIdentityProviderConfigsPages(params,
  2608  //        func(page *eks.ListIdentityProviderConfigsOutput, lastPage bool) bool {
  2609  //            pageNum++
  2610  //            fmt.Println(page)
  2611  //            return pageNum <= 3
  2612  //        })
  2613  //
  2614  func (c *EKS) ListIdentityProviderConfigsPages(input *ListIdentityProviderConfigsInput, fn func(*ListIdentityProviderConfigsOutput, bool) bool) error {
  2615  	return c.ListIdentityProviderConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
  2616  }
  2617  
  2618  // ListIdentityProviderConfigsPagesWithContext same as ListIdentityProviderConfigsPages except
  2619  // it takes a Context and allows setting request options on the pages.
  2620  //
  2621  // The context must be non-nil and will be used for request cancellation. If
  2622  // the context is nil a panic will occur. In the future the SDK may create
  2623  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2624  // for more information on using Contexts.
  2625  func (c *EKS) ListIdentityProviderConfigsPagesWithContext(ctx aws.Context, input *ListIdentityProviderConfigsInput, fn func(*ListIdentityProviderConfigsOutput, bool) bool, opts ...request.Option) error {
  2626  	p := request.Pagination{
  2627  		NewRequest: func() (*request.Request, error) {
  2628  			var inCpy *ListIdentityProviderConfigsInput
  2629  			if input != nil {
  2630  				tmp := *input
  2631  				inCpy = &tmp
  2632  			}
  2633  			req, _ := c.ListIdentityProviderConfigsRequest(inCpy)
  2634  			req.SetContext(ctx)
  2635  			req.ApplyOptions(opts...)
  2636  			return req, nil
  2637  		},
  2638  	}
  2639  
  2640  	for p.Next() {
  2641  		if !fn(p.Page().(*ListIdentityProviderConfigsOutput), !p.HasNextPage()) {
  2642  			break
  2643  		}
  2644  	}
  2645  
  2646  	return p.Err()
  2647  }
  2648  
  2649  const opListNodegroups = "ListNodegroups"
  2650  
  2651  // ListNodegroupsRequest generates a "aws/request.Request" representing the
  2652  // client's request for the ListNodegroups operation. The "output" return
  2653  // value will be populated with the request's response once the request completes
  2654  // successfully.
  2655  //
  2656  // Use "Send" method on the returned Request to send the API call to the service.
  2657  // the "output" return value is not valid until after Send returns without error.
  2658  //
  2659  // See ListNodegroups for more information on using the ListNodegroups
  2660  // API call, and error handling.
  2661  //
  2662  // This method is useful when you want to inject custom logic or configuration
  2663  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2664  //
  2665  //
  2666  //    // Example sending a request using the ListNodegroupsRequest method.
  2667  //    req, resp := client.ListNodegroupsRequest(params)
  2668  //
  2669  //    err := req.Send()
  2670  //    if err == nil { // resp is now filled
  2671  //        fmt.Println(resp)
  2672  //    }
  2673  //
  2674  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups
  2675  func (c *EKS) ListNodegroupsRequest(input *ListNodegroupsInput) (req *request.Request, output *ListNodegroupsOutput) {
  2676  	op := &request.Operation{
  2677  		Name:       opListNodegroups,
  2678  		HTTPMethod: "GET",
  2679  		HTTPPath:   "/clusters/{name}/node-groups",
  2680  		Paginator: &request.Paginator{
  2681  			InputTokens:     []string{"nextToken"},
  2682  			OutputTokens:    []string{"nextToken"},
  2683  			LimitToken:      "maxResults",
  2684  			TruncationToken: "",
  2685  		},
  2686  	}
  2687  
  2688  	if input == nil {
  2689  		input = &ListNodegroupsInput{}
  2690  	}
  2691  
  2692  	output = &ListNodegroupsOutput{}
  2693  	req = c.newRequest(op, input, output)
  2694  	return
  2695  }
  2696  
  2697  // ListNodegroups API operation for Amazon Elastic Kubernetes Service.
  2698  //
  2699  // Lists the Amazon EKS managed node groups associated with the specified cluster
  2700  // in your Amazon Web Services account in the specified Region. Self-managed
  2701  // node groups are not listed.
  2702  //
  2703  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2704  // with awserr.Error's Code and Message methods to get detailed information about
  2705  // the error.
  2706  //
  2707  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2708  // API operation ListNodegroups for usage and error information.
  2709  //
  2710  // Returned Error Types:
  2711  //   * InvalidParameterException
  2712  //   The specified parameter is invalid. Review the available parameters for the
  2713  //   API request.
  2714  //
  2715  //   * ClientException
  2716  //   These errors are usually caused by a client action. Actions can include using
  2717  //   an action or resource on behalf of a user that doesn't have permissions to
  2718  //   use the action or resource or specifying an identifier that is not valid.
  2719  //
  2720  //   * ServerException
  2721  //   These errors are usually caused by a server-side issue.
  2722  //
  2723  //   * ServiceUnavailableException
  2724  //   The service is unavailable. Back off and retry the operation.
  2725  //
  2726  //   * ResourceNotFoundException
  2727  //   The specified resource could not be found. You can view your available clusters
  2728  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  2729  //   Amazon EKS clusters and node groups are Region-specific.
  2730  //
  2731  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups
  2732  func (c *EKS) ListNodegroups(input *ListNodegroupsInput) (*ListNodegroupsOutput, error) {
  2733  	req, out := c.ListNodegroupsRequest(input)
  2734  	return out, req.Send()
  2735  }
  2736  
  2737  // ListNodegroupsWithContext is the same as ListNodegroups with the addition of
  2738  // the ability to pass a context and additional request options.
  2739  //
  2740  // See ListNodegroups for details on how to use this API operation.
  2741  //
  2742  // The context must be non-nil and will be used for request cancellation. If
  2743  // the context is nil a panic will occur. In the future the SDK may create
  2744  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2745  // for more information on using Contexts.
  2746  func (c *EKS) ListNodegroupsWithContext(ctx aws.Context, input *ListNodegroupsInput, opts ...request.Option) (*ListNodegroupsOutput, error) {
  2747  	req, out := c.ListNodegroupsRequest(input)
  2748  	req.SetContext(ctx)
  2749  	req.ApplyOptions(opts...)
  2750  	return out, req.Send()
  2751  }
  2752  
  2753  // ListNodegroupsPages iterates over the pages of a ListNodegroups operation,
  2754  // calling the "fn" function with the response data for each page. To stop
  2755  // iterating, return false from the fn function.
  2756  //
  2757  // See ListNodegroups method for more information on how to use this operation.
  2758  //
  2759  // Note: This operation can generate multiple requests to a service.
  2760  //
  2761  //    // Example iterating over at most 3 pages of a ListNodegroups operation.
  2762  //    pageNum := 0
  2763  //    err := client.ListNodegroupsPages(params,
  2764  //        func(page *eks.ListNodegroupsOutput, lastPage bool) bool {
  2765  //            pageNum++
  2766  //            fmt.Println(page)
  2767  //            return pageNum <= 3
  2768  //        })
  2769  //
  2770  func (c *EKS) ListNodegroupsPages(input *ListNodegroupsInput, fn func(*ListNodegroupsOutput, bool) bool) error {
  2771  	return c.ListNodegroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  2772  }
  2773  
  2774  // ListNodegroupsPagesWithContext same as ListNodegroupsPages except
  2775  // it takes a Context and allows setting request options on the pages.
  2776  //
  2777  // The context must be non-nil and will be used for request cancellation. If
  2778  // the context is nil a panic will occur. In the future the SDK may create
  2779  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2780  // for more information on using Contexts.
  2781  func (c *EKS) ListNodegroupsPagesWithContext(ctx aws.Context, input *ListNodegroupsInput, fn func(*ListNodegroupsOutput, bool) bool, opts ...request.Option) error {
  2782  	p := request.Pagination{
  2783  		NewRequest: func() (*request.Request, error) {
  2784  			var inCpy *ListNodegroupsInput
  2785  			if input != nil {
  2786  				tmp := *input
  2787  				inCpy = &tmp
  2788  			}
  2789  			req, _ := c.ListNodegroupsRequest(inCpy)
  2790  			req.SetContext(ctx)
  2791  			req.ApplyOptions(opts...)
  2792  			return req, nil
  2793  		},
  2794  	}
  2795  
  2796  	for p.Next() {
  2797  		if !fn(p.Page().(*ListNodegroupsOutput), !p.HasNextPage()) {
  2798  			break
  2799  		}
  2800  	}
  2801  
  2802  	return p.Err()
  2803  }
  2804  
  2805  const opListTagsForResource = "ListTagsForResource"
  2806  
  2807  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2808  // client's request for the ListTagsForResource operation. The "output" return
  2809  // value will be populated with the request's response once the request completes
  2810  // successfully.
  2811  //
  2812  // Use "Send" method on the returned Request to send the API call to the service.
  2813  // the "output" return value is not valid until after Send returns without error.
  2814  //
  2815  // See ListTagsForResource for more information on using the ListTagsForResource
  2816  // API call, and error handling.
  2817  //
  2818  // This method is useful when you want to inject custom logic or configuration
  2819  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2820  //
  2821  //
  2822  //    // Example sending a request using the ListTagsForResourceRequest method.
  2823  //    req, resp := client.ListTagsForResourceRequest(params)
  2824  //
  2825  //    err := req.Send()
  2826  //    if err == nil { // resp is now filled
  2827  //        fmt.Println(resp)
  2828  //    }
  2829  //
  2830  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource
  2831  func (c *EKS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2832  	op := &request.Operation{
  2833  		Name:       opListTagsForResource,
  2834  		HTTPMethod: "GET",
  2835  		HTTPPath:   "/tags/{resourceArn}",
  2836  	}
  2837  
  2838  	if input == nil {
  2839  		input = &ListTagsForResourceInput{}
  2840  	}
  2841  
  2842  	output = &ListTagsForResourceOutput{}
  2843  	req = c.newRequest(op, input, output)
  2844  	return
  2845  }
  2846  
  2847  // ListTagsForResource API operation for Amazon Elastic Kubernetes Service.
  2848  //
  2849  // List the tags for an Amazon EKS resource.
  2850  //
  2851  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2852  // with awserr.Error's Code and Message methods to get detailed information about
  2853  // the error.
  2854  //
  2855  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2856  // API operation ListTagsForResource for usage and error information.
  2857  //
  2858  // Returned Error Types:
  2859  //   * BadRequestException
  2860  //   This exception is thrown if the request contains a semantic error. The precise
  2861  //   meaning will depend on the API, and will be documented in the error message.
  2862  //
  2863  //   * NotFoundException
  2864  //   A service resource associated with the request could not be found. Clients
  2865  //   should not retry such requests.
  2866  //
  2867  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource
  2868  func (c *EKS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2869  	req, out := c.ListTagsForResourceRequest(input)
  2870  	return out, req.Send()
  2871  }
  2872  
  2873  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2874  // the ability to pass a context and additional request options.
  2875  //
  2876  // See ListTagsForResource for details on how to use this API operation.
  2877  //
  2878  // The context must be non-nil and will be used for request cancellation. If
  2879  // the context is nil a panic will occur. In the future the SDK may create
  2880  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2881  // for more information on using Contexts.
  2882  func (c *EKS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2883  	req, out := c.ListTagsForResourceRequest(input)
  2884  	req.SetContext(ctx)
  2885  	req.ApplyOptions(opts...)
  2886  	return out, req.Send()
  2887  }
  2888  
  2889  const opListUpdates = "ListUpdates"
  2890  
  2891  // ListUpdatesRequest generates a "aws/request.Request" representing the
  2892  // client's request for the ListUpdates operation. The "output" return
  2893  // value will be populated with the request's response once the request completes
  2894  // successfully.
  2895  //
  2896  // Use "Send" method on the returned Request to send the API call to the service.
  2897  // the "output" return value is not valid until after Send returns without error.
  2898  //
  2899  // See ListUpdates for more information on using the ListUpdates
  2900  // API call, and error handling.
  2901  //
  2902  // This method is useful when you want to inject custom logic or configuration
  2903  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2904  //
  2905  //
  2906  //    // Example sending a request using the ListUpdatesRequest method.
  2907  //    req, resp := client.ListUpdatesRequest(params)
  2908  //
  2909  //    err := req.Send()
  2910  //    if err == nil { // resp is now filled
  2911  //        fmt.Println(resp)
  2912  //    }
  2913  //
  2914  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates
  2915  func (c *EKS) ListUpdatesRequest(input *ListUpdatesInput) (req *request.Request, output *ListUpdatesOutput) {
  2916  	op := &request.Operation{
  2917  		Name:       opListUpdates,
  2918  		HTTPMethod: "GET",
  2919  		HTTPPath:   "/clusters/{name}/updates",
  2920  		Paginator: &request.Paginator{
  2921  			InputTokens:     []string{"nextToken"},
  2922  			OutputTokens:    []string{"nextToken"},
  2923  			LimitToken:      "maxResults",
  2924  			TruncationToken: "",
  2925  		},
  2926  	}
  2927  
  2928  	if input == nil {
  2929  		input = &ListUpdatesInput{}
  2930  	}
  2931  
  2932  	output = &ListUpdatesOutput{}
  2933  	req = c.newRequest(op, input, output)
  2934  	return
  2935  }
  2936  
  2937  // ListUpdates API operation for Amazon Elastic Kubernetes Service.
  2938  //
  2939  // Lists the updates associated with an Amazon EKS cluster or managed node group
  2940  // in your Amazon Web Services account, in the specified Region.
  2941  //
  2942  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2943  // with awserr.Error's Code and Message methods to get detailed information about
  2944  // the error.
  2945  //
  2946  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  2947  // API operation ListUpdates for usage and error information.
  2948  //
  2949  // Returned Error Types:
  2950  //   * InvalidParameterException
  2951  //   The specified parameter is invalid. Review the available parameters for the
  2952  //   API request.
  2953  //
  2954  //   * ClientException
  2955  //   These errors are usually caused by a client action. Actions can include using
  2956  //   an action or resource on behalf of a user that doesn't have permissions to
  2957  //   use the action or resource or specifying an identifier that is not valid.
  2958  //
  2959  //   * ServerException
  2960  //   These errors are usually caused by a server-side issue.
  2961  //
  2962  //   * ResourceNotFoundException
  2963  //   The specified resource could not be found. You can view your available clusters
  2964  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  2965  //   Amazon EKS clusters and node groups are Region-specific.
  2966  //
  2967  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates
  2968  func (c *EKS) ListUpdates(input *ListUpdatesInput) (*ListUpdatesOutput, error) {
  2969  	req, out := c.ListUpdatesRequest(input)
  2970  	return out, req.Send()
  2971  }
  2972  
  2973  // ListUpdatesWithContext is the same as ListUpdates with the addition of
  2974  // the ability to pass a context and additional request options.
  2975  //
  2976  // See ListUpdates for details on how to use this API operation.
  2977  //
  2978  // The context must be non-nil and will be used for request cancellation. If
  2979  // the context is nil a panic will occur. In the future the SDK may create
  2980  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2981  // for more information on using Contexts.
  2982  func (c *EKS) ListUpdatesWithContext(ctx aws.Context, input *ListUpdatesInput, opts ...request.Option) (*ListUpdatesOutput, error) {
  2983  	req, out := c.ListUpdatesRequest(input)
  2984  	req.SetContext(ctx)
  2985  	req.ApplyOptions(opts...)
  2986  	return out, req.Send()
  2987  }
  2988  
  2989  // ListUpdatesPages iterates over the pages of a ListUpdates operation,
  2990  // calling the "fn" function with the response data for each page. To stop
  2991  // iterating, return false from the fn function.
  2992  //
  2993  // See ListUpdates method for more information on how to use this operation.
  2994  //
  2995  // Note: This operation can generate multiple requests to a service.
  2996  //
  2997  //    // Example iterating over at most 3 pages of a ListUpdates operation.
  2998  //    pageNum := 0
  2999  //    err := client.ListUpdatesPages(params,
  3000  //        func(page *eks.ListUpdatesOutput, lastPage bool) bool {
  3001  //            pageNum++
  3002  //            fmt.Println(page)
  3003  //            return pageNum <= 3
  3004  //        })
  3005  //
  3006  func (c *EKS) ListUpdatesPages(input *ListUpdatesInput, fn func(*ListUpdatesOutput, bool) bool) error {
  3007  	return c.ListUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
  3008  }
  3009  
  3010  // ListUpdatesPagesWithContext same as ListUpdatesPages except
  3011  // it takes a Context and allows setting request options on the pages.
  3012  //
  3013  // The context must be non-nil and will be used for request cancellation. If
  3014  // the context is nil a panic will occur. In the future the SDK may create
  3015  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3016  // for more information on using Contexts.
  3017  func (c *EKS) ListUpdatesPagesWithContext(ctx aws.Context, input *ListUpdatesInput, fn func(*ListUpdatesOutput, bool) bool, opts ...request.Option) error {
  3018  	p := request.Pagination{
  3019  		NewRequest: func() (*request.Request, error) {
  3020  			var inCpy *ListUpdatesInput
  3021  			if input != nil {
  3022  				tmp := *input
  3023  				inCpy = &tmp
  3024  			}
  3025  			req, _ := c.ListUpdatesRequest(inCpy)
  3026  			req.SetContext(ctx)
  3027  			req.ApplyOptions(opts...)
  3028  			return req, nil
  3029  		},
  3030  	}
  3031  
  3032  	for p.Next() {
  3033  		if !fn(p.Page().(*ListUpdatesOutput), !p.HasNextPage()) {
  3034  			break
  3035  		}
  3036  	}
  3037  
  3038  	return p.Err()
  3039  }
  3040  
  3041  const opRegisterCluster = "RegisterCluster"
  3042  
  3043  // RegisterClusterRequest generates a "aws/request.Request" representing the
  3044  // client's request for the RegisterCluster operation. The "output" return
  3045  // value will be populated with the request's response once the request completes
  3046  // successfully.
  3047  //
  3048  // Use "Send" method on the returned Request to send the API call to the service.
  3049  // the "output" return value is not valid until after Send returns without error.
  3050  //
  3051  // See RegisterCluster for more information on using the RegisterCluster
  3052  // API call, and error handling.
  3053  //
  3054  // This method is useful when you want to inject custom logic or configuration
  3055  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3056  //
  3057  //
  3058  //    // Example sending a request using the RegisterClusterRequest method.
  3059  //    req, resp := client.RegisterClusterRequest(params)
  3060  //
  3061  //    err := req.Send()
  3062  //    if err == nil { // resp is now filled
  3063  //        fmt.Println(resp)
  3064  //    }
  3065  //
  3066  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/RegisterCluster
  3067  func (c *EKS) RegisterClusterRequest(input *RegisterClusterInput) (req *request.Request, output *RegisterClusterOutput) {
  3068  	op := &request.Operation{
  3069  		Name:       opRegisterCluster,
  3070  		HTTPMethod: "POST",
  3071  		HTTPPath:   "/cluster-registrations",
  3072  	}
  3073  
  3074  	if input == nil {
  3075  		input = &RegisterClusterInput{}
  3076  	}
  3077  
  3078  	output = &RegisterClusterOutput{}
  3079  	req = c.newRequest(op, input, output)
  3080  	return
  3081  }
  3082  
  3083  // RegisterCluster API operation for Amazon Elastic Kubernetes Service.
  3084  //
  3085  // Connects a Kubernetes cluster to the Amazon EKS control plane.
  3086  //
  3087  // Any Kubernetes cluster can be connected to the Amazon EKS control plane to
  3088  // view current information about the cluster and its nodes.
  3089  //
  3090  // Cluster connection requires two steps. First, send a RegisterClusterRequest
  3091  // to add it to the Amazon EKS control plane.
  3092  //
  3093  // Second, a Manifest (https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml)
  3094  // containing the activationID and activationCode must be applied to the Kubernetes
  3095  // cluster through it's native provider to provide visibility.
  3096  //
  3097  // After the Manifest is updated and applied, then the connected cluster is
  3098  // visible to the Amazon EKS control plane. If the Manifest is not applied within
  3099  // a set amount of time, then the connected cluster will no longer be visible
  3100  // and must be deregistered. See DeregisterCluster.
  3101  //
  3102  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3103  // with awserr.Error's Code and Message methods to get detailed information about
  3104  // the error.
  3105  //
  3106  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3107  // API operation RegisterCluster for usage and error information.
  3108  //
  3109  // Returned Error Types:
  3110  //   * ResourceLimitExceededException
  3111  //   You have encountered a service limit on the specified resource.
  3112  //
  3113  //   * InvalidParameterException
  3114  //   The specified parameter is invalid. Review the available parameters for the
  3115  //   API request.
  3116  //
  3117  //   * ClientException
  3118  //   These errors are usually caused by a client action. Actions can include using
  3119  //   an action or resource on behalf of a user that doesn't have permissions to
  3120  //   use the action or resource or specifying an identifier that is not valid.
  3121  //
  3122  //   * ServerException
  3123  //   These errors are usually caused by a server-side issue.
  3124  //
  3125  //   * ServiceUnavailableException
  3126  //   The service is unavailable. Back off and retry the operation.
  3127  //
  3128  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/RegisterCluster
  3129  func (c *EKS) RegisterCluster(input *RegisterClusterInput) (*RegisterClusterOutput, error) {
  3130  	req, out := c.RegisterClusterRequest(input)
  3131  	return out, req.Send()
  3132  }
  3133  
  3134  // RegisterClusterWithContext is the same as RegisterCluster with the addition of
  3135  // the ability to pass a context and additional request options.
  3136  //
  3137  // See RegisterCluster for details on how to use this API operation.
  3138  //
  3139  // The context must be non-nil and will be used for request cancellation. If
  3140  // the context is nil a panic will occur. In the future the SDK may create
  3141  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3142  // for more information on using Contexts.
  3143  func (c *EKS) RegisterClusterWithContext(ctx aws.Context, input *RegisterClusterInput, opts ...request.Option) (*RegisterClusterOutput, error) {
  3144  	req, out := c.RegisterClusterRequest(input)
  3145  	req.SetContext(ctx)
  3146  	req.ApplyOptions(opts...)
  3147  	return out, req.Send()
  3148  }
  3149  
  3150  const opTagResource = "TagResource"
  3151  
  3152  // TagResourceRequest generates a "aws/request.Request" representing the
  3153  // client's request for the TagResource operation. The "output" return
  3154  // value will be populated with the request's response once the request completes
  3155  // successfully.
  3156  //
  3157  // Use "Send" method on the returned Request to send the API call to the service.
  3158  // the "output" return value is not valid until after Send returns without error.
  3159  //
  3160  // See TagResource for more information on using the TagResource
  3161  // API call, and error handling.
  3162  //
  3163  // This method is useful when you want to inject custom logic or configuration
  3164  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3165  //
  3166  //
  3167  //    // Example sending a request using the TagResourceRequest method.
  3168  //    req, resp := client.TagResourceRequest(params)
  3169  //
  3170  //    err := req.Send()
  3171  //    if err == nil { // resp is now filled
  3172  //        fmt.Println(resp)
  3173  //    }
  3174  //
  3175  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource
  3176  func (c *EKS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  3177  	op := &request.Operation{
  3178  		Name:       opTagResource,
  3179  		HTTPMethod: "POST",
  3180  		HTTPPath:   "/tags/{resourceArn}",
  3181  	}
  3182  
  3183  	if input == nil {
  3184  		input = &TagResourceInput{}
  3185  	}
  3186  
  3187  	output = &TagResourceOutput{}
  3188  	req = c.newRequest(op, input, output)
  3189  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3190  	return
  3191  }
  3192  
  3193  // TagResource API operation for Amazon Elastic Kubernetes Service.
  3194  //
  3195  // Associates the specified tags to a resource with the specified resourceArn.
  3196  // If existing tags on a resource are not specified in the request parameters,
  3197  // they are not changed. When a resource is deleted, the tags associated with
  3198  // that resource are deleted as well. Tags that you create for Amazon EKS resources
  3199  // do not propagate to any other resources associated with the cluster. For
  3200  // example, if you tag a cluster with this operation, that tag does not automatically
  3201  // propagate to the subnets and nodes associated with the cluster.
  3202  //
  3203  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3204  // with awserr.Error's Code and Message methods to get detailed information about
  3205  // the error.
  3206  //
  3207  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3208  // API operation TagResource for usage and error information.
  3209  //
  3210  // Returned Error Types:
  3211  //   * BadRequestException
  3212  //   This exception is thrown if the request contains a semantic error. The precise
  3213  //   meaning will depend on the API, and will be documented in the error message.
  3214  //
  3215  //   * NotFoundException
  3216  //   A service resource associated with the request could not be found. Clients
  3217  //   should not retry such requests.
  3218  //
  3219  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource
  3220  func (c *EKS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  3221  	req, out := c.TagResourceRequest(input)
  3222  	return out, req.Send()
  3223  }
  3224  
  3225  // TagResourceWithContext is the same as TagResource with the addition of
  3226  // the ability to pass a context and additional request options.
  3227  //
  3228  // See TagResource for details on how to use this API operation.
  3229  //
  3230  // The context must be non-nil and will be used for request cancellation. If
  3231  // the context is nil a panic will occur. In the future the SDK may create
  3232  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3233  // for more information on using Contexts.
  3234  func (c *EKS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  3235  	req, out := c.TagResourceRequest(input)
  3236  	req.SetContext(ctx)
  3237  	req.ApplyOptions(opts...)
  3238  	return out, req.Send()
  3239  }
  3240  
  3241  const opUntagResource = "UntagResource"
  3242  
  3243  // UntagResourceRequest generates a "aws/request.Request" representing the
  3244  // client's request for the UntagResource operation. The "output" return
  3245  // value will be populated with the request's response once the request completes
  3246  // successfully.
  3247  //
  3248  // Use "Send" method on the returned Request to send the API call to the service.
  3249  // the "output" return value is not valid until after Send returns without error.
  3250  //
  3251  // See UntagResource for more information on using the UntagResource
  3252  // API call, and error handling.
  3253  //
  3254  // This method is useful when you want to inject custom logic or configuration
  3255  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3256  //
  3257  //
  3258  //    // Example sending a request using the UntagResourceRequest method.
  3259  //    req, resp := client.UntagResourceRequest(params)
  3260  //
  3261  //    err := req.Send()
  3262  //    if err == nil { // resp is now filled
  3263  //        fmt.Println(resp)
  3264  //    }
  3265  //
  3266  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource
  3267  func (c *EKS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  3268  	op := &request.Operation{
  3269  		Name:       opUntagResource,
  3270  		HTTPMethod: "DELETE",
  3271  		HTTPPath:   "/tags/{resourceArn}",
  3272  	}
  3273  
  3274  	if input == nil {
  3275  		input = &UntagResourceInput{}
  3276  	}
  3277  
  3278  	output = &UntagResourceOutput{}
  3279  	req = c.newRequest(op, input, output)
  3280  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3281  	return
  3282  }
  3283  
  3284  // UntagResource API operation for Amazon Elastic Kubernetes Service.
  3285  //
  3286  // Deletes specified tags from a resource.
  3287  //
  3288  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3289  // with awserr.Error's Code and Message methods to get detailed information about
  3290  // the error.
  3291  //
  3292  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3293  // API operation UntagResource for usage and error information.
  3294  //
  3295  // Returned Error Types:
  3296  //   * BadRequestException
  3297  //   This exception is thrown if the request contains a semantic error. The precise
  3298  //   meaning will depend on the API, and will be documented in the error message.
  3299  //
  3300  //   * NotFoundException
  3301  //   A service resource associated with the request could not be found. Clients
  3302  //   should not retry such requests.
  3303  //
  3304  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource
  3305  func (c *EKS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  3306  	req, out := c.UntagResourceRequest(input)
  3307  	return out, req.Send()
  3308  }
  3309  
  3310  // UntagResourceWithContext is the same as UntagResource with the addition of
  3311  // the ability to pass a context and additional request options.
  3312  //
  3313  // See UntagResource for details on how to use this API operation.
  3314  //
  3315  // The context must be non-nil and will be used for request cancellation. If
  3316  // the context is nil a panic will occur. In the future the SDK may create
  3317  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3318  // for more information on using Contexts.
  3319  func (c *EKS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  3320  	req, out := c.UntagResourceRequest(input)
  3321  	req.SetContext(ctx)
  3322  	req.ApplyOptions(opts...)
  3323  	return out, req.Send()
  3324  }
  3325  
  3326  const opUpdateAddon = "UpdateAddon"
  3327  
  3328  // UpdateAddonRequest generates a "aws/request.Request" representing the
  3329  // client's request for the UpdateAddon operation. The "output" return
  3330  // value will be populated with the request's response once the request completes
  3331  // successfully.
  3332  //
  3333  // Use "Send" method on the returned Request to send the API call to the service.
  3334  // the "output" return value is not valid until after Send returns without error.
  3335  //
  3336  // See UpdateAddon for more information on using the UpdateAddon
  3337  // API call, and error handling.
  3338  //
  3339  // This method is useful when you want to inject custom logic or configuration
  3340  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3341  //
  3342  //
  3343  //    // Example sending a request using the UpdateAddonRequest method.
  3344  //    req, resp := client.UpdateAddonRequest(params)
  3345  //
  3346  //    err := req.Send()
  3347  //    if err == nil { // resp is now filled
  3348  //        fmt.Println(resp)
  3349  //    }
  3350  //
  3351  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateAddon
  3352  func (c *EKS) UpdateAddonRequest(input *UpdateAddonInput) (req *request.Request, output *UpdateAddonOutput) {
  3353  	op := &request.Operation{
  3354  		Name:       opUpdateAddon,
  3355  		HTTPMethod: "POST",
  3356  		HTTPPath:   "/clusters/{name}/addons/{addonName}/update",
  3357  	}
  3358  
  3359  	if input == nil {
  3360  		input = &UpdateAddonInput{}
  3361  	}
  3362  
  3363  	output = &UpdateAddonOutput{}
  3364  	req = c.newRequest(op, input, output)
  3365  	return
  3366  }
  3367  
  3368  // UpdateAddon API operation for Amazon Elastic Kubernetes Service.
  3369  //
  3370  // Updates an Amazon EKS add-on.
  3371  //
  3372  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3373  // with awserr.Error's Code and Message methods to get detailed information about
  3374  // the error.
  3375  //
  3376  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3377  // API operation UpdateAddon for usage and error information.
  3378  //
  3379  // Returned Error Types:
  3380  //   * InvalidParameterException
  3381  //   The specified parameter is invalid. Review the available parameters for the
  3382  //   API request.
  3383  //
  3384  //   * InvalidRequestException
  3385  //   The request is invalid given the state of the cluster. Check the state of
  3386  //   the cluster and the associated operations.
  3387  //
  3388  //   * ResourceNotFoundException
  3389  //   The specified resource could not be found. You can view your available clusters
  3390  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  3391  //   Amazon EKS clusters and node groups are Region-specific.
  3392  //
  3393  //   * ResourceInUseException
  3394  //   The specified resource is in use.
  3395  //
  3396  //   * ClientException
  3397  //   These errors are usually caused by a client action. Actions can include using
  3398  //   an action or resource on behalf of a user that doesn't have permissions to
  3399  //   use the action or resource or specifying an identifier that is not valid.
  3400  //
  3401  //   * ServerException
  3402  //   These errors are usually caused by a server-side issue.
  3403  //
  3404  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateAddon
  3405  func (c *EKS) UpdateAddon(input *UpdateAddonInput) (*UpdateAddonOutput, error) {
  3406  	req, out := c.UpdateAddonRequest(input)
  3407  	return out, req.Send()
  3408  }
  3409  
  3410  // UpdateAddonWithContext is the same as UpdateAddon with the addition of
  3411  // the ability to pass a context and additional request options.
  3412  //
  3413  // See UpdateAddon for details on how to use this API operation.
  3414  //
  3415  // The context must be non-nil and will be used for request cancellation. If
  3416  // the context is nil a panic will occur. In the future the SDK may create
  3417  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3418  // for more information on using Contexts.
  3419  func (c *EKS) UpdateAddonWithContext(ctx aws.Context, input *UpdateAddonInput, opts ...request.Option) (*UpdateAddonOutput, error) {
  3420  	req, out := c.UpdateAddonRequest(input)
  3421  	req.SetContext(ctx)
  3422  	req.ApplyOptions(opts...)
  3423  	return out, req.Send()
  3424  }
  3425  
  3426  const opUpdateClusterConfig = "UpdateClusterConfig"
  3427  
  3428  // UpdateClusterConfigRequest generates a "aws/request.Request" representing the
  3429  // client's request for the UpdateClusterConfig operation. The "output" return
  3430  // value will be populated with the request's response once the request completes
  3431  // successfully.
  3432  //
  3433  // Use "Send" method on the returned Request to send the API call to the service.
  3434  // the "output" return value is not valid until after Send returns without error.
  3435  //
  3436  // See UpdateClusterConfig for more information on using the UpdateClusterConfig
  3437  // API call, and error handling.
  3438  //
  3439  // This method is useful when you want to inject custom logic or configuration
  3440  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3441  //
  3442  //
  3443  //    // Example sending a request using the UpdateClusterConfigRequest method.
  3444  //    req, resp := client.UpdateClusterConfigRequest(params)
  3445  //
  3446  //    err := req.Send()
  3447  //    if err == nil { // resp is now filled
  3448  //        fmt.Println(resp)
  3449  //    }
  3450  //
  3451  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig
  3452  func (c *EKS) UpdateClusterConfigRequest(input *UpdateClusterConfigInput) (req *request.Request, output *UpdateClusterConfigOutput) {
  3453  	op := &request.Operation{
  3454  		Name:       opUpdateClusterConfig,
  3455  		HTTPMethod: "POST",
  3456  		HTTPPath:   "/clusters/{name}/update-config",
  3457  	}
  3458  
  3459  	if input == nil {
  3460  		input = &UpdateClusterConfigInput{}
  3461  	}
  3462  
  3463  	output = &UpdateClusterConfigOutput{}
  3464  	req = c.newRequest(op, input, output)
  3465  	return
  3466  }
  3467  
  3468  // UpdateClusterConfig API operation for Amazon Elastic Kubernetes Service.
  3469  //
  3470  // Updates an Amazon EKS cluster configuration. Your cluster continues to function
  3471  // during the update. The response output includes an update ID that you can
  3472  // use to track the status of your cluster update with the DescribeUpdate API
  3473  // operation.
  3474  //
  3475  // You can use this API operation to enable or disable exporting the Kubernetes
  3476  // control plane logs for your cluster to CloudWatch Logs. By default, cluster
  3477  // control plane logs aren't exported to CloudWatch Logs. For more information,
  3478  // see Amazon EKS Cluster Control Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
  3479  // in the Amazon EKS User Guide .
  3480  //
  3481  // CloudWatch Logs ingestion, archive storage, and data scanning rates apply
  3482  // to exported control plane logs. For more information, see CloudWatch Pricing
  3483  // (http://aws.amazon.com/cloudwatch/pricing/).
  3484  //
  3485  // You can also use this API operation to enable or disable public and private
  3486  // access to your cluster's Kubernetes API server endpoint. By default, public
  3487  // access is enabled, and private access is disabled. For more information,
  3488  // see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
  3489  // in the Amazon EKS User Guide .
  3490  //
  3491  // You can't update the subnets or security group IDs for an existing cluster.
  3492  //
  3493  // Cluster updates are asynchronous, and they should finish within a few minutes.
  3494  // During an update, the cluster status moves to UPDATING (this status transition
  3495  // is eventually consistent). When the update is complete (either Failed or
  3496  // Successful), the cluster status moves to Active.
  3497  //
  3498  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3499  // with awserr.Error's Code and Message methods to get detailed information about
  3500  // the error.
  3501  //
  3502  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3503  // API operation UpdateClusterConfig for usage and error information.
  3504  //
  3505  // Returned Error Types:
  3506  //   * InvalidParameterException
  3507  //   The specified parameter is invalid. Review the available parameters for the
  3508  //   API request.
  3509  //
  3510  //   * ClientException
  3511  //   These errors are usually caused by a client action. Actions can include using
  3512  //   an action or resource on behalf of a user that doesn't have permissions to
  3513  //   use the action or resource or specifying an identifier that is not valid.
  3514  //
  3515  //   * ServerException
  3516  //   These errors are usually caused by a server-side issue.
  3517  //
  3518  //   * ResourceInUseException
  3519  //   The specified resource is in use.
  3520  //
  3521  //   * ResourceNotFoundException
  3522  //   The specified resource could not be found. You can view your available clusters
  3523  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  3524  //   Amazon EKS clusters and node groups are Region-specific.
  3525  //
  3526  //   * InvalidRequestException
  3527  //   The request is invalid given the state of the cluster. Check the state of
  3528  //   the cluster and the associated operations.
  3529  //
  3530  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig
  3531  func (c *EKS) UpdateClusterConfig(input *UpdateClusterConfigInput) (*UpdateClusterConfigOutput, error) {
  3532  	req, out := c.UpdateClusterConfigRequest(input)
  3533  	return out, req.Send()
  3534  }
  3535  
  3536  // UpdateClusterConfigWithContext is the same as UpdateClusterConfig with the addition of
  3537  // the ability to pass a context and additional request options.
  3538  //
  3539  // See UpdateClusterConfig for details on how to use this API operation.
  3540  //
  3541  // The context must be non-nil and will be used for request cancellation. If
  3542  // the context is nil a panic will occur. In the future the SDK may create
  3543  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3544  // for more information on using Contexts.
  3545  func (c *EKS) UpdateClusterConfigWithContext(ctx aws.Context, input *UpdateClusterConfigInput, opts ...request.Option) (*UpdateClusterConfigOutput, error) {
  3546  	req, out := c.UpdateClusterConfigRequest(input)
  3547  	req.SetContext(ctx)
  3548  	req.ApplyOptions(opts...)
  3549  	return out, req.Send()
  3550  }
  3551  
  3552  const opUpdateClusterVersion = "UpdateClusterVersion"
  3553  
  3554  // UpdateClusterVersionRequest generates a "aws/request.Request" representing the
  3555  // client's request for the UpdateClusterVersion operation. The "output" return
  3556  // value will be populated with the request's response once the request completes
  3557  // successfully.
  3558  //
  3559  // Use "Send" method on the returned Request to send the API call to the service.
  3560  // the "output" return value is not valid until after Send returns without error.
  3561  //
  3562  // See UpdateClusterVersion for more information on using the UpdateClusterVersion
  3563  // API call, and error handling.
  3564  //
  3565  // This method is useful when you want to inject custom logic or configuration
  3566  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3567  //
  3568  //
  3569  //    // Example sending a request using the UpdateClusterVersionRequest method.
  3570  //    req, resp := client.UpdateClusterVersionRequest(params)
  3571  //
  3572  //    err := req.Send()
  3573  //    if err == nil { // resp is now filled
  3574  //        fmt.Println(resp)
  3575  //    }
  3576  //
  3577  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion
  3578  func (c *EKS) UpdateClusterVersionRequest(input *UpdateClusterVersionInput) (req *request.Request, output *UpdateClusterVersionOutput) {
  3579  	op := &request.Operation{
  3580  		Name:       opUpdateClusterVersion,
  3581  		HTTPMethod: "POST",
  3582  		HTTPPath:   "/clusters/{name}/updates",
  3583  	}
  3584  
  3585  	if input == nil {
  3586  		input = &UpdateClusterVersionInput{}
  3587  	}
  3588  
  3589  	output = &UpdateClusterVersionOutput{}
  3590  	req = c.newRequest(op, input, output)
  3591  	return
  3592  }
  3593  
  3594  // UpdateClusterVersion API operation for Amazon Elastic Kubernetes Service.
  3595  //
  3596  // Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster
  3597  // continues to function during the update. The response output includes an
  3598  // update ID that you can use to track the status of your cluster update with
  3599  // the DescribeUpdate API operation.
  3600  //
  3601  // Cluster updates are asynchronous, and they should finish within a few minutes.
  3602  // During an update, the cluster status moves to UPDATING (this status transition
  3603  // is eventually consistent). When the update is complete (either Failed or
  3604  // Successful), the cluster status moves to Active.
  3605  //
  3606  // If your cluster has managed node groups attached to it, all of your node
  3607  // groups’ Kubernetes versions must match the cluster’s Kubernetes version
  3608  // in order to update the cluster to a new Kubernetes version.
  3609  //
  3610  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3611  // with awserr.Error's Code and Message methods to get detailed information about
  3612  // the error.
  3613  //
  3614  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3615  // API operation UpdateClusterVersion for usage and error information.
  3616  //
  3617  // Returned Error Types:
  3618  //   * InvalidParameterException
  3619  //   The specified parameter is invalid. Review the available parameters for the
  3620  //   API request.
  3621  //
  3622  //   * ClientException
  3623  //   These errors are usually caused by a client action. Actions can include using
  3624  //   an action or resource on behalf of a user that doesn't have permissions to
  3625  //   use the action or resource or specifying an identifier that is not valid.
  3626  //
  3627  //   * ServerException
  3628  //   These errors are usually caused by a server-side issue.
  3629  //
  3630  //   * ResourceInUseException
  3631  //   The specified resource is in use.
  3632  //
  3633  //   * ResourceNotFoundException
  3634  //   The specified resource could not be found. You can view your available clusters
  3635  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  3636  //   Amazon EKS clusters and node groups are Region-specific.
  3637  //
  3638  //   * InvalidRequestException
  3639  //   The request is invalid given the state of the cluster. Check the state of
  3640  //   the cluster and the associated operations.
  3641  //
  3642  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion
  3643  func (c *EKS) UpdateClusterVersion(input *UpdateClusterVersionInput) (*UpdateClusterVersionOutput, error) {
  3644  	req, out := c.UpdateClusterVersionRequest(input)
  3645  	return out, req.Send()
  3646  }
  3647  
  3648  // UpdateClusterVersionWithContext is the same as UpdateClusterVersion with the addition of
  3649  // the ability to pass a context and additional request options.
  3650  //
  3651  // See UpdateClusterVersion for details on how to use this API operation.
  3652  //
  3653  // The context must be non-nil and will be used for request cancellation. If
  3654  // the context is nil a panic will occur. In the future the SDK may create
  3655  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3656  // for more information on using Contexts.
  3657  func (c *EKS) UpdateClusterVersionWithContext(ctx aws.Context, input *UpdateClusterVersionInput, opts ...request.Option) (*UpdateClusterVersionOutput, error) {
  3658  	req, out := c.UpdateClusterVersionRequest(input)
  3659  	req.SetContext(ctx)
  3660  	req.ApplyOptions(opts...)
  3661  	return out, req.Send()
  3662  }
  3663  
  3664  const opUpdateNodegroupConfig = "UpdateNodegroupConfig"
  3665  
  3666  // UpdateNodegroupConfigRequest generates a "aws/request.Request" representing the
  3667  // client's request for the UpdateNodegroupConfig operation. The "output" return
  3668  // value will be populated with the request's response once the request completes
  3669  // successfully.
  3670  //
  3671  // Use "Send" method on the returned Request to send the API call to the service.
  3672  // the "output" return value is not valid until after Send returns without error.
  3673  //
  3674  // See UpdateNodegroupConfig for more information on using the UpdateNodegroupConfig
  3675  // API call, and error handling.
  3676  //
  3677  // This method is useful when you want to inject custom logic or configuration
  3678  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3679  //
  3680  //
  3681  //    // Example sending a request using the UpdateNodegroupConfigRequest method.
  3682  //    req, resp := client.UpdateNodegroupConfigRequest(params)
  3683  //
  3684  //    err := req.Send()
  3685  //    if err == nil { // resp is now filled
  3686  //        fmt.Println(resp)
  3687  //    }
  3688  //
  3689  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig
  3690  func (c *EKS) UpdateNodegroupConfigRequest(input *UpdateNodegroupConfigInput) (req *request.Request, output *UpdateNodegroupConfigOutput) {
  3691  	op := &request.Operation{
  3692  		Name:       opUpdateNodegroupConfig,
  3693  		HTTPMethod: "POST",
  3694  		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}/update-config",
  3695  	}
  3696  
  3697  	if input == nil {
  3698  		input = &UpdateNodegroupConfigInput{}
  3699  	}
  3700  
  3701  	output = &UpdateNodegroupConfigOutput{}
  3702  	req = c.newRequest(op, input, output)
  3703  	return
  3704  }
  3705  
  3706  // UpdateNodegroupConfig API operation for Amazon Elastic Kubernetes Service.
  3707  //
  3708  // Updates an Amazon EKS managed node group configuration. Your node group continues
  3709  // to function during the update. The response output includes an update ID
  3710  // that you can use to track the status of your node group update with the DescribeUpdate
  3711  // API operation. Currently you can update the Kubernetes labels for a node
  3712  // group or the scaling configuration.
  3713  //
  3714  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3715  // with awserr.Error's Code and Message methods to get detailed information about
  3716  // the error.
  3717  //
  3718  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3719  // API operation UpdateNodegroupConfig for usage and error information.
  3720  //
  3721  // Returned Error Types:
  3722  //   * InvalidParameterException
  3723  //   The specified parameter is invalid. Review the available parameters for the
  3724  //   API request.
  3725  //
  3726  //   * ClientException
  3727  //   These errors are usually caused by a client action. Actions can include using
  3728  //   an action or resource on behalf of a user that doesn't have permissions to
  3729  //   use the action or resource or specifying an identifier that is not valid.
  3730  //
  3731  //   * ServerException
  3732  //   These errors are usually caused by a server-side issue.
  3733  //
  3734  //   * ResourceInUseException
  3735  //   The specified resource is in use.
  3736  //
  3737  //   * ResourceNotFoundException
  3738  //   The specified resource could not be found. You can view your available clusters
  3739  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  3740  //   Amazon EKS clusters and node groups are Region-specific.
  3741  //
  3742  //   * InvalidRequestException
  3743  //   The request is invalid given the state of the cluster. Check the state of
  3744  //   the cluster and the associated operations.
  3745  //
  3746  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig
  3747  func (c *EKS) UpdateNodegroupConfig(input *UpdateNodegroupConfigInput) (*UpdateNodegroupConfigOutput, error) {
  3748  	req, out := c.UpdateNodegroupConfigRequest(input)
  3749  	return out, req.Send()
  3750  }
  3751  
  3752  // UpdateNodegroupConfigWithContext is the same as UpdateNodegroupConfig with the addition of
  3753  // the ability to pass a context and additional request options.
  3754  //
  3755  // See UpdateNodegroupConfig for details on how to use this API operation.
  3756  //
  3757  // The context must be non-nil and will be used for request cancellation. If
  3758  // the context is nil a panic will occur. In the future the SDK may create
  3759  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3760  // for more information on using Contexts.
  3761  func (c *EKS) UpdateNodegroupConfigWithContext(ctx aws.Context, input *UpdateNodegroupConfigInput, opts ...request.Option) (*UpdateNodegroupConfigOutput, error) {
  3762  	req, out := c.UpdateNodegroupConfigRequest(input)
  3763  	req.SetContext(ctx)
  3764  	req.ApplyOptions(opts...)
  3765  	return out, req.Send()
  3766  }
  3767  
  3768  const opUpdateNodegroupVersion = "UpdateNodegroupVersion"
  3769  
  3770  // UpdateNodegroupVersionRequest generates a "aws/request.Request" representing the
  3771  // client's request for the UpdateNodegroupVersion operation. The "output" return
  3772  // value will be populated with the request's response once the request completes
  3773  // successfully.
  3774  //
  3775  // Use "Send" method on the returned Request to send the API call to the service.
  3776  // the "output" return value is not valid until after Send returns without error.
  3777  //
  3778  // See UpdateNodegroupVersion for more information on using the UpdateNodegroupVersion
  3779  // API call, and error handling.
  3780  //
  3781  // This method is useful when you want to inject custom logic or configuration
  3782  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3783  //
  3784  //
  3785  //    // Example sending a request using the UpdateNodegroupVersionRequest method.
  3786  //    req, resp := client.UpdateNodegroupVersionRequest(params)
  3787  //
  3788  //    err := req.Send()
  3789  //    if err == nil { // resp is now filled
  3790  //        fmt.Println(resp)
  3791  //    }
  3792  //
  3793  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion
  3794  func (c *EKS) UpdateNodegroupVersionRequest(input *UpdateNodegroupVersionInput) (req *request.Request, output *UpdateNodegroupVersionOutput) {
  3795  	op := &request.Operation{
  3796  		Name:       opUpdateNodegroupVersion,
  3797  		HTTPMethod: "POST",
  3798  		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}/update-version",
  3799  	}
  3800  
  3801  	if input == nil {
  3802  		input = &UpdateNodegroupVersionInput{}
  3803  	}
  3804  
  3805  	output = &UpdateNodegroupVersionOutput{}
  3806  	req = c.newRequest(op, input, output)
  3807  	return
  3808  }
  3809  
  3810  // UpdateNodegroupVersion API operation for Amazon Elastic Kubernetes Service.
  3811  //
  3812  // Updates the Kubernetes version or AMI version of an Amazon EKS managed node
  3813  // group.
  3814  //
  3815  // You can update a node group using a launch template only if the node group
  3816  // was originally deployed with a launch template. If you need to update a custom
  3817  // AMI in a node group that was deployed with a launch template, then update
  3818  // your custom AMI, specify the new ID in a new version of the launch template,
  3819  // and then update the node group to the new version of the launch template.
  3820  //
  3821  // If you update without a launch template, then you can update to the latest
  3822  // available AMI version of a node group's current Kubernetes version by not
  3823  // specifying a Kubernetes version in the request. You can update to the latest
  3824  // AMI version of your cluster's current Kubernetes version by specifying your
  3825  // cluster's Kubernetes version in the request. For more information, see Amazon
  3826  // EKS optimized Amazon Linux 2 AMI versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)
  3827  // in the Amazon EKS User Guide.
  3828  //
  3829  // You cannot roll back a node group to an earlier Kubernetes version or AMI
  3830  // version.
  3831  //
  3832  // When a node in a managed node group is terminated due to a scaling action
  3833  // or update, the pods in that node are drained first. Amazon EKS attempts to
  3834  // drain the nodes gracefully and will fail if it is unable to do so. You can
  3835  // force the update if Amazon EKS is unable to drain the nodes as a result of
  3836  // a pod disruption budget issue.
  3837  //
  3838  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3839  // with awserr.Error's Code and Message methods to get detailed information about
  3840  // the error.
  3841  //
  3842  // See the AWS API reference guide for Amazon Elastic Kubernetes Service's
  3843  // API operation UpdateNodegroupVersion for usage and error information.
  3844  //
  3845  // Returned Error Types:
  3846  //   * InvalidParameterException
  3847  //   The specified parameter is invalid. Review the available parameters for the
  3848  //   API request.
  3849  //
  3850  //   * ClientException
  3851  //   These errors are usually caused by a client action. Actions can include using
  3852  //   an action or resource on behalf of a user that doesn't have permissions to
  3853  //   use the action or resource or specifying an identifier that is not valid.
  3854  //
  3855  //   * ServerException
  3856  //   These errors are usually caused by a server-side issue.
  3857  //
  3858  //   * ResourceInUseException
  3859  //   The specified resource is in use.
  3860  //
  3861  //   * ResourceNotFoundException
  3862  //   The specified resource could not be found. You can view your available clusters
  3863  //   with ListClusters. You can view your available managed node groups with ListNodegroups.
  3864  //   Amazon EKS clusters and node groups are Region-specific.
  3865  //
  3866  //   * InvalidRequestException
  3867  //   The request is invalid given the state of the cluster. Check the state of
  3868  //   the cluster and the associated operations.
  3869  //
  3870  // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion
  3871  func (c *EKS) UpdateNodegroupVersion(input *UpdateNodegroupVersionInput) (*UpdateNodegroupVersionOutput, error) {
  3872  	req, out := c.UpdateNodegroupVersionRequest(input)
  3873  	return out, req.Send()
  3874  }
  3875  
  3876  // UpdateNodegroupVersionWithContext is the same as UpdateNodegroupVersion with the addition of
  3877  // the ability to pass a context and additional request options.
  3878  //
  3879  // See UpdateNodegroupVersion for details on how to use this API operation.
  3880  //
  3881  // The context must be non-nil and will be used for request cancellation. If
  3882  // the context is nil a panic will occur. In the future the SDK may create
  3883  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3884  // for more information on using Contexts.
  3885  func (c *EKS) UpdateNodegroupVersionWithContext(ctx aws.Context, input *UpdateNodegroupVersionInput, opts ...request.Option) (*UpdateNodegroupVersionOutput, error) {
  3886  	req, out := c.UpdateNodegroupVersionRequest(input)
  3887  	req.SetContext(ctx)
  3888  	req.ApplyOptions(opts...)
  3889  	return out, req.Send()
  3890  }
  3891  
  3892  // An Amazon EKS add-on.
  3893  type Addon struct {
  3894  	_ struct{} `type:"structure"`
  3895  
  3896  	// The Amazon Resource Name (ARN) of the add-on.
  3897  	AddonArn *string `locationName:"addonArn" type:"string"`
  3898  
  3899  	// The name of the add-on.
  3900  	AddonName *string `locationName:"addonName" type:"string"`
  3901  
  3902  	// The version of the add-on.
  3903  	AddonVersion *string `locationName:"addonVersion" type:"string"`
  3904  
  3905  	// The name of the cluster.
  3906  	ClusterName *string `locationName:"clusterName" min:"1" type:"string"`
  3907  
  3908  	// The date and time that the add-on was created.
  3909  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
  3910  
  3911  	// An object that represents the health of the add-on.
  3912  	Health *AddonHealth `locationName:"health" type:"structure"`
  3913  
  3914  	// The date and time that the add-on was last modified.
  3915  	ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"`
  3916  
  3917  	// The Amazon Resource Name (ARN) of the IAM role that is bound to the Kubernetes
  3918  	// service account used by the add-on.
  3919  	ServiceAccountRoleArn *string `locationName:"serviceAccountRoleArn" type:"string"`
  3920  
  3921  	// The status of the add-on.
  3922  	Status *string `locationName:"status" type:"string" enum:"AddonStatus"`
  3923  
  3924  	// The metadata that you apply to the add-on to assist with categorization and
  3925  	// organization. Each tag consists of a key and an optional value, both of which
  3926  	// you define. Add-on tags do not propagate to any other resources associated
  3927  	// with the cluster.
  3928  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  3929  }
  3930  
  3931  // String returns the string representation.
  3932  //
  3933  // API parameter values that are decorated as "sensitive" in the API will not
  3934  // be included in the string output. The member name will be present, but the
  3935  // value will be replaced with "sensitive".
  3936  func (s Addon) String() string {
  3937  	return awsutil.Prettify(s)
  3938  }
  3939  
  3940  // GoString returns the string representation.
  3941  //
  3942  // API parameter values that are decorated as "sensitive" in the API will not
  3943  // be included in the string output. The member name will be present, but the
  3944  // value will be replaced with "sensitive".
  3945  func (s Addon) GoString() string {
  3946  	return s.String()
  3947  }
  3948  
  3949  // SetAddonArn sets the AddonArn field's value.
  3950  func (s *Addon) SetAddonArn(v string) *Addon {
  3951  	s.AddonArn = &v
  3952  	return s
  3953  }
  3954  
  3955  // SetAddonName sets the AddonName field's value.
  3956  func (s *Addon) SetAddonName(v string) *Addon {
  3957  	s.AddonName = &v
  3958  	return s
  3959  }
  3960  
  3961  // SetAddonVersion sets the AddonVersion field's value.
  3962  func (s *Addon) SetAddonVersion(v string) *Addon {
  3963  	s.AddonVersion = &v
  3964  	return s
  3965  }
  3966  
  3967  // SetClusterName sets the ClusterName field's value.
  3968  func (s *Addon) SetClusterName(v string) *Addon {
  3969  	s.ClusterName = &v
  3970  	return s
  3971  }
  3972  
  3973  // SetCreatedAt sets the CreatedAt field's value.
  3974  func (s *Addon) SetCreatedAt(v time.Time) *Addon {
  3975  	s.CreatedAt = &v
  3976  	return s
  3977  }
  3978  
  3979  // SetHealth sets the Health field's value.
  3980  func (s *Addon) SetHealth(v *AddonHealth) *Addon {
  3981  	s.Health = v
  3982  	return s
  3983  }
  3984  
  3985  // SetModifiedAt sets the ModifiedAt field's value.
  3986  func (s *Addon) SetModifiedAt(v time.Time) *Addon {
  3987  	s.ModifiedAt = &v
  3988  	return s
  3989  }
  3990  
  3991  // SetServiceAccountRoleArn sets the ServiceAccountRoleArn field's value.
  3992  func (s *Addon) SetServiceAccountRoleArn(v string) *Addon {
  3993  	s.ServiceAccountRoleArn = &v
  3994  	return s
  3995  }
  3996  
  3997  // SetStatus sets the Status field's value.
  3998  func (s *Addon) SetStatus(v string) *Addon {
  3999  	s.Status = &v
  4000  	return s
  4001  }
  4002  
  4003  // SetTags sets the Tags field's value.
  4004  func (s *Addon) SetTags(v map[string]*string) *Addon {
  4005  	s.Tags = v
  4006  	return s
  4007  }
  4008  
  4009  // The health of the add-on.
  4010  type AddonHealth struct {
  4011  	_ struct{} `type:"structure"`
  4012  
  4013  	// An object that represents the add-on's health issues.
  4014  	Issues []*AddonIssue `locationName:"issues" type:"list"`
  4015  }
  4016  
  4017  // String returns the string representation.
  4018  //
  4019  // API parameter values that are decorated as "sensitive" in the API will not
  4020  // be included in the string output. The member name will be present, but the
  4021  // value will be replaced with "sensitive".
  4022  func (s AddonHealth) String() string {
  4023  	return awsutil.Prettify(s)
  4024  }
  4025  
  4026  // GoString returns the string representation.
  4027  //
  4028  // API parameter values that are decorated as "sensitive" in the API will not
  4029  // be included in the string output. The member name will be present, but the
  4030  // value will be replaced with "sensitive".
  4031  func (s AddonHealth) GoString() string {
  4032  	return s.String()
  4033  }
  4034  
  4035  // SetIssues sets the Issues field's value.
  4036  func (s *AddonHealth) SetIssues(v []*AddonIssue) *AddonHealth {
  4037  	s.Issues = v
  4038  	return s
  4039  }
  4040  
  4041  // Information about an add-on.
  4042  type AddonInfo struct {
  4043  	_ struct{} `type:"structure"`
  4044  
  4045  	// The name of the add-on.
  4046  	AddonName *string `locationName:"addonName" type:"string"`
  4047  
  4048  	// An object that represents information about available add-on versions and
  4049  	// compatible Kubernetes versions.
  4050  	AddonVersions []*AddonVersionInfo `locationName:"addonVersions" type:"list"`
  4051  
  4052  	// The type of the add-on.
  4053  	Type *string `locationName:"type" type:"string"`
  4054  }
  4055  
  4056  // String 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 AddonInfo) String() string {
  4062  	return awsutil.Prettify(s)
  4063  }
  4064  
  4065  // GoString returns the string representation.
  4066  //
  4067  // API parameter values that are decorated as "sensitive" in the API will not
  4068  // be included in the string output. The member name will be present, but the
  4069  // value will be replaced with "sensitive".
  4070  func (s AddonInfo) GoString() string {
  4071  	return s.String()
  4072  }
  4073  
  4074  // SetAddonName sets the AddonName field's value.
  4075  func (s *AddonInfo) SetAddonName(v string) *AddonInfo {
  4076  	s.AddonName = &v
  4077  	return s
  4078  }
  4079  
  4080  // SetAddonVersions sets the AddonVersions field's value.
  4081  func (s *AddonInfo) SetAddonVersions(v []*AddonVersionInfo) *AddonInfo {
  4082  	s.AddonVersions = v
  4083  	return s
  4084  }
  4085  
  4086  // SetType sets the Type field's value.
  4087  func (s *AddonInfo) SetType(v string) *AddonInfo {
  4088  	s.Type = &v
  4089  	return s
  4090  }
  4091  
  4092  // An issue related to an add-on.
  4093  type AddonIssue struct {
  4094  	_ struct{} `type:"structure"`
  4095  
  4096  	// A code that describes the type of issue.
  4097  	Code *string `locationName:"code" type:"string" enum:"AddonIssueCode"`
  4098  
  4099  	// A message that provides details about the issue and what might cause it.
  4100  	Message *string `locationName:"message" type:"string"`
  4101  
  4102  	// The resource IDs of the issue.
  4103  	ResourceIds []*string `locationName:"resourceIds" type:"list"`
  4104  }
  4105  
  4106  // String returns the string representation.
  4107  //
  4108  // API parameter values that are decorated as "sensitive" in the API will not
  4109  // be included in the string output. The member name will be present, but the
  4110  // value will be replaced with "sensitive".
  4111  func (s AddonIssue) String() string {
  4112  	return awsutil.Prettify(s)
  4113  }
  4114  
  4115  // GoString returns the string representation.
  4116  //
  4117  // API parameter values that are decorated as "sensitive" in the API will not
  4118  // be included in the string output. The member name will be present, but the
  4119  // value will be replaced with "sensitive".
  4120  func (s AddonIssue) GoString() string {
  4121  	return s.String()
  4122  }
  4123  
  4124  // SetCode sets the Code field's value.
  4125  func (s *AddonIssue) SetCode(v string) *AddonIssue {
  4126  	s.Code = &v
  4127  	return s
  4128  }
  4129  
  4130  // SetMessage sets the Message field's value.
  4131  func (s *AddonIssue) SetMessage(v string) *AddonIssue {
  4132  	s.Message = &v
  4133  	return s
  4134  }
  4135  
  4136  // SetResourceIds sets the ResourceIds field's value.
  4137  func (s *AddonIssue) SetResourceIds(v []*string) *AddonIssue {
  4138  	s.ResourceIds = v
  4139  	return s
  4140  }
  4141  
  4142  // Information about an add-on version.
  4143  type AddonVersionInfo struct {
  4144  	_ struct{} `type:"structure"`
  4145  
  4146  	// The version of the add-on.
  4147  	AddonVersion *string `locationName:"addonVersion" type:"string"`
  4148  
  4149  	// The architectures that the version supports.
  4150  	Architecture []*string `locationName:"architecture" type:"list"`
  4151  
  4152  	// An object that represents the compatibilities of a version.
  4153  	Compatibilities []*Compatibility `locationName:"compatibilities" type:"list"`
  4154  }
  4155  
  4156  // String returns the string representation.
  4157  //
  4158  // API parameter values that are decorated as "sensitive" in the API will not
  4159  // be included in the string output. The member name will be present, but the
  4160  // value will be replaced with "sensitive".
  4161  func (s AddonVersionInfo) String() string {
  4162  	return awsutil.Prettify(s)
  4163  }
  4164  
  4165  // GoString returns the string representation.
  4166  //
  4167  // API parameter values that are decorated as "sensitive" in the API will not
  4168  // be included in the string output. The member name will be present, but the
  4169  // value will be replaced with "sensitive".
  4170  func (s AddonVersionInfo) GoString() string {
  4171  	return s.String()
  4172  }
  4173  
  4174  // SetAddonVersion sets the AddonVersion field's value.
  4175  func (s *AddonVersionInfo) SetAddonVersion(v string) *AddonVersionInfo {
  4176  	s.AddonVersion = &v
  4177  	return s
  4178  }
  4179  
  4180  // SetArchitecture sets the Architecture field's value.
  4181  func (s *AddonVersionInfo) SetArchitecture(v []*string) *AddonVersionInfo {
  4182  	s.Architecture = v
  4183  	return s
  4184  }
  4185  
  4186  // SetCompatibilities sets the Compatibilities field's value.
  4187  func (s *AddonVersionInfo) SetCompatibilities(v []*Compatibility) *AddonVersionInfo {
  4188  	s.Compatibilities = v
  4189  	return s
  4190  }
  4191  
  4192  type AssociateEncryptionConfigInput struct {
  4193  	_ struct{} `type:"structure"`
  4194  
  4195  	// The client request token you are using with the encryption configuration.
  4196  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  4197  
  4198  	// The name of the cluster that you are associating with encryption configuration.
  4199  	//
  4200  	// ClusterName is a required field
  4201  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  4202  
  4203  	// The configuration you are using for encryption.
  4204  	//
  4205  	// EncryptionConfig is a required field
  4206  	EncryptionConfig []*EncryptionConfig `locationName:"encryptionConfig" type:"list" required:"true"`
  4207  }
  4208  
  4209  // String returns the string representation.
  4210  //
  4211  // API parameter values that are decorated as "sensitive" in the API will not
  4212  // be included in the string output. The member name will be present, but the
  4213  // value will be replaced with "sensitive".
  4214  func (s AssociateEncryptionConfigInput) String() string {
  4215  	return awsutil.Prettify(s)
  4216  }
  4217  
  4218  // GoString returns the string representation.
  4219  //
  4220  // API parameter values that are decorated as "sensitive" in the API will not
  4221  // be included in the string output. The member name will be present, but the
  4222  // value will be replaced with "sensitive".
  4223  func (s AssociateEncryptionConfigInput) GoString() string {
  4224  	return s.String()
  4225  }
  4226  
  4227  // Validate inspects the fields of the type to determine if they are valid.
  4228  func (s *AssociateEncryptionConfigInput) Validate() error {
  4229  	invalidParams := request.ErrInvalidParams{Context: "AssociateEncryptionConfigInput"}
  4230  	if s.ClusterName == nil {
  4231  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  4232  	}
  4233  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  4234  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  4235  	}
  4236  	if s.EncryptionConfig == nil {
  4237  		invalidParams.Add(request.NewErrParamRequired("EncryptionConfig"))
  4238  	}
  4239  
  4240  	if invalidParams.Len() > 0 {
  4241  		return invalidParams
  4242  	}
  4243  	return nil
  4244  }
  4245  
  4246  // SetClientRequestToken sets the ClientRequestToken field's value.
  4247  func (s *AssociateEncryptionConfigInput) SetClientRequestToken(v string) *AssociateEncryptionConfigInput {
  4248  	s.ClientRequestToken = &v
  4249  	return s
  4250  }
  4251  
  4252  // SetClusterName sets the ClusterName field's value.
  4253  func (s *AssociateEncryptionConfigInput) SetClusterName(v string) *AssociateEncryptionConfigInput {
  4254  	s.ClusterName = &v
  4255  	return s
  4256  }
  4257  
  4258  // SetEncryptionConfig sets the EncryptionConfig field's value.
  4259  func (s *AssociateEncryptionConfigInput) SetEncryptionConfig(v []*EncryptionConfig) *AssociateEncryptionConfigInput {
  4260  	s.EncryptionConfig = v
  4261  	return s
  4262  }
  4263  
  4264  type AssociateEncryptionConfigOutput struct {
  4265  	_ struct{} `type:"structure"`
  4266  
  4267  	// An object representing an asynchronous update.
  4268  	Update *Update `locationName:"update" type:"structure"`
  4269  }
  4270  
  4271  // String returns the string representation.
  4272  //
  4273  // API parameter values that are decorated as "sensitive" in the API will not
  4274  // be included in the string output. The member name will be present, but the
  4275  // value will be replaced with "sensitive".
  4276  func (s AssociateEncryptionConfigOutput) String() string {
  4277  	return awsutil.Prettify(s)
  4278  }
  4279  
  4280  // GoString returns the string representation.
  4281  //
  4282  // API parameter values that are decorated as "sensitive" in the API will not
  4283  // be included in the string output. The member name will be present, but the
  4284  // value will be replaced with "sensitive".
  4285  func (s AssociateEncryptionConfigOutput) GoString() string {
  4286  	return s.String()
  4287  }
  4288  
  4289  // SetUpdate sets the Update field's value.
  4290  func (s *AssociateEncryptionConfigOutput) SetUpdate(v *Update) *AssociateEncryptionConfigOutput {
  4291  	s.Update = v
  4292  	return s
  4293  }
  4294  
  4295  type AssociateIdentityProviderConfigInput struct {
  4296  	_ struct{} `type:"structure"`
  4297  
  4298  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  4299  	// of the request.
  4300  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  4301  
  4302  	// The name of the cluster to associate the configuration to.
  4303  	//
  4304  	// ClusterName is a required field
  4305  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  4306  
  4307  	// An object that represents an OpenID Connect (OIDC) identity provider configuration.
  4308  	//
  4309  	// Oidc is a required field
  4310  	Oidc *OidcIdentityProviderConfigRequest `locationName:"oidc" type:"structure" required:"true"`
  4311  
  4312  	// The metadata to apply to the configuration to assist with categorization
  4313  	// and organization. Each tag consists of a key and an optional value, both
  4314  	// of which you define.
  4315  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  4316  }
  4317  
  4318  // String returns the string representation.
  4319  //
  4320  // API parameter values that are decorated as "sensitive" in the API will not
  4321  // be included in the string output. The member name will be present, but the
  4322  // value will be replaced with "sensitive".
  4323  func (s AssociateIdentityProviderConfigInput) String() string {
  4324  	return awsutil.Prettify(s)
  4325  }
  4326  
  4327  // GoString returns the string representation.
  4328  //
  4329  // API parameter values that are decorated as "sensitive" in the API will not
  4330  // be included in the string output. The member name will be present, but the
  4331  // value will be replaced with "sensitive".
  4332  func (s AssociateIdentityProviderConfigInput) GoString() string {
  4333  	return s.String()
  4334  }
  4335  
  4336  // Validate inspects the fields of the type to determine if they are valid.
  4337  func (s *AssociateIdentityProviderConfigInput) Validate() error {
  4338  	invalidParams := request.ErrInvalidParams{Context: "AssociateIdentityProviderConfigInput"}
  4339  	if s.ClusterName == nil {
  4340  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  4341  	}
  4342  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  4343  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  4344  	}
  4345  	if s.Oidc == nil {
  4346  		invalidParams.Add(request.NewErrParamRequired("Oidc"))
  4347  	}
  4348  	if s.Tags != nil && len(s.Tags) < 1 {
  4349  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  4350  	}
  4351  	if s.Oidc != nil {
  4352  		if err := s.Oidc.Validate(); err != nil {
  4353  			invalidParams.AddNested("Oidc", err.(request.ErrInvalidParams))
  4354  		}
  4355  	}
  4356  
  4357  	if invalidParams.Len() > 0 {
  4358  		return invalidParams
  4359  	}
  4360  	return nil
  4361  }
  4362  
  4363  // SetClientRequestToken sets the ClientRequestToken field's value.
  4364  func (s *AssociateIdentityProviderConfigInput) SetClientRequestToken(v string) *AssociateIdentityProviderConfigInput {
  4365  	s.ClientRequestToken = &v
  4366  	return s
  4367  }
  4368  
  4369  // SetClusterName sets the ClusterName field's value.
  4370  func (s *AssociateIdentityProviderConfigInput) SetClusterName(v string) *AssociateIdentityProviderConfigInput {
  4371  	s.ClusterName = &v
  4372  	return s
  4373  }
  4374  
  4375  // SetOidc sets the Oidc field's value.
  4376  func (s *AssociateIdentityProviderConfigInput) SetOidc(v *OidcIdentityProviderConfigRequest) *AssociateIdentityProviderConfigInput {
  4377  	s.Oidc = v
  4378  	return s
  4379  }
  4380  
  4381  // SetTags sets the Tags field's value.
  4382  func (s *AssociateIdentityProviderConfigInput) SetTags(v map[string]*string) *AssociateIdentityProviderConfigInput {
  4383  	s.Tags = v
  4384  	return s
  4385  }
  4386  
  4387  type AssociateIdentityProviderConfigOutput struct {
  4388  	_ struct{} `type:"structure"`
  4389  
  4390  	// The tags for the resource.
  4391  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  4392  
  4393  	// An object representing an asynchronous update.
  4394  	Update *Update `locationName:"update" type:"structure"`
  4395  }
  4396  
  4397  // String returns the string representation.
  4398  //
  4399  // API parameter values that are decorated as "sensitive" in the API will not
  4400  // be included in the string output. The member name will be present, but the
  4401  // value will be replaced with "sensitive".
  4402  func (s AssociateIdentityProviderConfigOutput) String() string {
  4403  	return awsutil.Prettify(s)
  4404  }
  4405  
  4406  // GoString returns the string representation.
  4407  //
  4408  // API parameter values that are decorated as "sensitive" in the API will not
  4409  // be included in the string output. The member name will be present, but the
  4410  // value will be replaced with "sensitive".
  4411  func (s AssociateIdentityProviderConfigOutput) GoString() string {
  4412  	return s.String()
  4413  }
  4414  
  4415  // SetTags sets the Tags field's value.
  4416  func (s *AssociateIdentityProviderConfigOutput) SetTags(v map[string]*string) *AssociateIdentityProviderConfigOutput {
  4417  	s.Tags = v
  4418  	return s
  4419  }
  4420  
  4421  // SetUpdate sets the Update field's value.
  4422  func (s *AssociateIdentityProviderConfigOutput) SetUpdate(v *Update) *AssociateIdentityProviderConfigOutput {
  4423  	s.Update = v
  4424  	return s
  4425  }
  4426  
  4427  // An Auto Scaling group that is associated with an Amazon EKS managed node
  4428  // group.
  4429  type AutoScalingGroup struct {
  4430  	_ struct{} `type:"structure"`
  4431  
  4432  	// The name of the Auto Scaling group associated with an Amazon EKS managed
  4433  	// node group.
  4434  	Name *string `locationName:"name" type:"string"`
  4435  }
  4436  
  4437  // String returns the string representation.
  4438  //
  4439  // API parameter values that are decorated as "sensitive" in the API will not
  4440  // be included in the string output. The member name will be present, but the
  4441  // value will be replaced with "sensitive".
  4442  func (s AutoScalingGroup) String() string {
  4443  	return awsutil.Prettify(s)
  4444  }
  4445  
  4446  // GoString returns the string representation.
  4447  //
  4448  // API parameter values that are decorated as "sensitive" in the API will not
  4449  // be included in the string output. The member name will be present, but the
  4450  // value will be replaced with "sensitive".
  4451  func (s AutoScalingGroup) GoString() string {
  4452  	return s.String()
  4453  }
  4454  
  4455  // SetName sets the Name field's value.
  4456  func (s *AutoScalingGroup) SetName(v string) *AutoScalingGroup {
  4457  	s.Name = &v
  4458  	return s
  4459  }
  4460  
  4461  // This exception is thrown if the request contains a semantic error. The precise
  4462  // meaning will depend on the API, and will be documented in the error message.
  4463  type BadRequestException struct {
  4464  	_            struct{}                  `type:"structure"`
  4465  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4466  
  4467  	Message_ *string `locationName:"message" type:"string"`
  4468  }
  4469  
  4470  // String returns the string representation.
  4471  //
  4472  // API parameter values that are decorated as "sensitive" in the API will not
  4473  // be included in the string output. The member name will be present, but the
  4474  // value will be replaced with "sensitive".
  4475  func (s BadRequestException) String() string {
  4476  	return awsutil.Prettify(s)
  4477  }
  4478  
  4479  // GoString returns the string representation.
  4480  //
  4481  // API parameter values that are decorated as "sensitive" in the API will not
  4482  // be included in the string output. The member name will be present, but the
  4483  // value will be replaced with "sensitive".
  4484  func (s BadRequestException) GoString() string {
  4485  	return s.String()
  4486  }
  4487  
  4488  func newErrorBadRequestException(v protocol.ResponseMetadata) error {
  4489  	return &BadRequestException{
  4490  		RespMetadata: v,
  4491  	}
  4492  }
  4493  
  4494  // Code returns the exception type name.
  4495  func (s *BadRequestException) Code() string {
  4496  	return "BadRequestException"
  4497  }
  4498  
  4499  // Message returns the exception's message.
  4500  func (s *BadRequestException) Message() string {
  4501  	if s.Message_ != nil {
  4502  		return *s.Message_
  4503  	}
  4504  	return ""
  4505  }
  4506  
  4507  // OrigErr always returns nil, satisfies awserr.Error interface.
  4508  func (s *BadRequestException) OrigErr() error {
  4509  	return nil
  4510  }
  4511  
  4512  func (s *BadRequestException) Error() string {
  4513  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4514  }
  4515  
  4516  // Status code returns the HTTP status code for the request's response error.
  4517  func (s *BadRequestException) StatusCode() int {
  4518  	return s.RespMetadata.StatusCode
  4519  }
  4520  
  4521  // RequestID returns the service's response RequestID for request.
  4522  func (s *BadRequestException) RequestID() string {
  4523  	return s.RespMetadata.RequestID
  4524  }
  4525  
  4526  // An object representing the certificate-authority-data for your cluster.
  4527  type Certificate struct {
  4528  	_ struct{} `type:"structure"`
  4529  
  4530  	// The Base64-encoded certificate data required to communicate with your cluster.
  4531  	// Add this to the certificate-authority-data section of the kubeconfig file
  4532  	// for your cluster.
  4533  	Data *string `locationName:"data" type:"string"`
  4534  }
  4535  
  4536  // String returns the string representation.
  4537  //
  4538  // API parameter values that are decorated as "sensitive" in the API will not
  4539  // be included in the string output. The member name will be present, but the
  4540  // value will be replaced with "sensitive".
  4541  func (s Certificate) String() string {
  4542  	return awsutil.Prettify(s)
  4543  }
  4544  
  4545  // GoString returns the string representation.
  4546  //
  4547  // API parameter values that are decorated as "sensitive" in the API will not
  4548  // be included in the string output. The member name will be present, but the
  4549  // value will be replaced with "sensitive".
  4550  func (s Certificate) GoString() string {
  4551  	return s.String()
  4552  }
  4553  
  4554  // SetData sets the Data field's value.
  4555  func (s *Certificate) SetData(v string) *Certificate {
  4556  	s.Data = &v
  4557  	return s
  4558  }
  4559  
  4560  // These errors are usually caused by a client action. Actions can include using
  4561  // an action or resource on behalf of a user that doesn't have permissions to
  4562  // use the action or resource or specifying an identifier that is not valid.
  4563  type ClientException struct {
  4564  	_            struct{}                  `type:"structure"`
  4565  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4566  
  4567  	AddonName *string `locationName:"addonName" type:"string"`
  4568  
  4569  	// The Amazon EKS cluster associated with the exception.
  4570  	ClusterName *string `locationName:"clusterName" type:"string"`
  4571  
  4572  	Message_ *string `locationName:"message" type:"string"`
  4573  
  4574  	// The Amazon EKS managed node group associated with the exception.
  4575  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
  4576  }
  4577  
  4578  // String returns the string representation.
  4579  //
  4580  // API parameter values that are decorated as "sensitive" in the API will not
  4581  // be included in the string output. The member name will be present, but the
  4582  // value will be replaced with "sensitive".
  4583  func (s ClientException) String() string {
  4584  	return awsutil.Prettify(s)
  4585  }
  4586  
  4587  // GoString returns the string representation.
  4588  //
  4589  // API parameter values that are decorated as "sensitive" in the API will not
  4590  // be included in the string output. The member name will be present, but the
  4591  // value will be replaced with "sensitive".
  4592  func (s ClientException) GoString() string {
  4593  	return s.String()
  4594  }
  4595  
  4596  func newErrorClientException(v protocol.ResponseMetadata) error {
  4597  	return &ClientException{
  4598  		RespMetadata: v,
  4599  	}
  4600  }
  4601  
  4602  // Code returns the exception type name.
  4603  func (s *ClientException) Code() string {
  4604  	return "ClientException"
  4605  }
  4606  
  4607  // Message returns the exception's message.
  4608  func (s *ClientException) Message() string {
  4609  	if s.Message_ != nil {
  4610  		return *s.Message_
  4611  	}
  4612  	return ""
  4613  }
  4614  
  4615  // OrigErr always returns nil, satisfies awserr.Error interface.
  4616  func (s *ClientException) OrigErr() error {
  4617  	return nil
  4618  }
  4619  
  4620  func (s *ClientException) Error() string {
  4621  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4622  }
  4623  
  4624  // Status code returns the HTTP status code for the request's response error.
  4625  func (s *ClientException) StatusCode() int {
  4626  	return s.RespMetadata.StatusCode
  4627  }
  4628  
  4629  // RequestID returns the service's response RequestID for request.
  4630  func (s *ClientException) RequestID() string {
  4631  	return s.RespMetadata.RequestID
  4632  }
  4633  
  4634  // An object representing an Amazon EKS cluster.
  4635  type Cluster struct {
  4636  	_ struct{} `type:"structure"`
  4637  
  4638  	// The Amazon Resource Name (ARN) of the cluster.
  4639  	Arn *string `locationName:"arn" type:"string"`
  4640  
  4641  	// The certificate-authority-data for your cluster.
  4642  	CertificateAuthority *Certificate `locationName:"certificateAuthority" type:"structure"`
  4643  
  4644  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  4645  	// of the request.
  4646  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string"`
  4647  
  4648  	// The configuration used to connect to a cluster for registration.
  4649  	ConnectorConfig *ConnectorConfigResponse `locationName:"connectorConfig" type:"structure"`
  4650  
  4651  	// The Unix epoch timestamp in seconds for when the cluster was created.
  4652  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
  4653  
  4654  	// The encryption configuration for the cluster.
  4655  	EncryptionConfig []*EncryptionConfig `locationName:"encryptionConfig" type:"list"`
  4656  
  4657  	// The endpoint for your Kubernetes API server.
  4658  	Endpoint *string `locationName:"endpoint" type:"string"`
  4659  
  4660  	// The identity provider information for the cluster.
  4661  	Identity *Identity `locationName:"identity" type:"structure"`
  4662  
  4663  	// The Kubernetes network configuration for the cluster.
  4664  	KubernetesNetworkConfig *KubernetesNetworkConfigResponse `locationName:"kubernetesNetworkConfig" type:"structure"`
  4665  
  4666  	// The logging configuration for your cluster.
  4667  	Logging *Logging `locationName:"logging" type:"structure"`
  4668  
  4669  	// The name of the cluster.
  4670  	Name *string `locationName:"name" type:"string"`
  4671  
  4672  	// The platform version of your Amazon EKS cluster. For more information, see
  4673  	// Platform Versions (https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html)
  4674  	// in the Amazon EKS User Guide .
  4675  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
  4676  
  4677  	// The VPC configuration used by the cluster control plane. Amazon EKS VPC resources
  4678  	// have specific requirements to work properly with Kubernetes. For more information,
  4679  	// see Cluster VPC Considerations (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)
  4680  	// and Cluster Security Group Considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
  4681  	// in the Amazon EKS User Guide.
  4682  	ResourcesVpcConfig *VpcConfigResponse `locationName:"resourcesVpcConfig" type:"structure"`
  4683  
  4684  	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
  4685  	// for the Kubernetes control plane to make calls to Amazon Web Services API
  4686  	// operations on your behalf.
  4687  	RoleArn *string `locationName:"roleArn" type:"string"`
  4688  
  4689  	// The current status of the cluster.
  4690  	Status *string `locationName:"status" type:"string" enum:"ClusterStatus"`
  4691  
  4692  	// The metadata that you apply to the cluster to assist with categorization
  4693  	// and organization. Each tag consists of a key and an optional value, both
  4694  	// of which you define. Cluster tags do not propagate to any other resources
  4695  	// associated with the cluster.
  4696  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  4697  
  4698  	// The Kubernetes server version for the cluster.
  4699  	Version *string `locationName:"version" type:"string"`
  4700  }
  4701  
  4702  // String returns the string representation.
  4703  //
  4704  // API parameter values that are decorated as "sensitive" in the API will not
  4705  // be included in the string output. The member name will be present, but the
  4706  // value will be replaced with "sensitive".
  4707  func (s Cluster) String() string {
  4708  	return awsutil.Prettify(s)
  4709  }
  4710  
  4711  // GoString returns the string representation.
  4712  //
  4713  // API parameter values that are decorated as "sensitive" in the API will not
  4714  // be included in the string output. The member name will be present, but the
  4715  // value will be replaced with "sensitive".
  4716  func (s Cluster) GoString() string {
  4717  	return s.String()
  4718  }
  4719  
  4720  // SetArn sets the Arn field's value.
  4721  func (s *Cluster) SetArn(v string) *Cluster {
  4722  	s.Arn = &v
  4723  	return s
  4724  }
  4725  
  4726  // SetCertificateAuthority sets the CertificateAuthority field's value.
  4727  func (s *Cluster) SetCertificateAuthority(v *Certificate) *Cluster {
  4728  	s.CertificateAuthority = v
  4729  	return s
  4730  }
  4731  
  4732  // SetClientRequestToken sets the ClientRequestToken field's value.
  4733  func (s *Cluster) SetClientRequestToken(v string) *Cluster {
  4734  	s.ClientRequestToken = &v
  4735  	return s
  4736  }
  4737  
  4738  // SetConnectorConfig sets the ConnectorConfig field's value.
  4739  func (s *Cluster) SetConnectorConfig(v *ConnectorConfigResponse) *Cluster {
  4740  	s.ConnectorConfig = v
  4741  	return s
  4742  }
  4743  
  4744  // SetCreatedAt sets the CreatedAt field's value.
  4745  func (s *Cluster) SetCreatedAt(v time.Time) *Cluster {
  4746  	s.CreatedAt = &v
  4747  	return s
  4748  }
  4749  
  4750  // SetEncryptionConfig sets the EncryptionConfig field's value.
  4751  func (s *Cluster) SetEncryptionConfig(v []*EncryptionConfig) *Cluster {
  4752  	s.EncryptionConfig = v
  4753  	return s
  4754  }
  4755  
  4756  // SetEndpoint sets the Endpoint field's value.
  4757  func (s *Cluster) SetEndpoint(v string) *Cluster {
  4758  	s.Endpoint = &v
  4759  	return s
  4760  }
  4761  
  4762  // SetIdentity sets the Identity field's value.
  4763  func (s *Cluster) SetIdentity(v *Identity) *Cluster {
  4764  	s.Identity = v
  4765  	return s
  4766  }
  4767  
  4768  // SetKubernetesNetworkConfig sets the KubernetesNetworkConfig field's value.
  4769  func (s *Cluster) SetKubernetesNetworkConfig(v *KubernetesNetworkConfigResponse) *Cluster {
  4770  	s.KubernetesNetworkConfig = v
  4771  	return s
  4772  }
  4773  
  4774  // SetLogging sets the Logging field's value.
  4775  func (s *Cluster) SetLogging(v *Logging) *Cluster {
  4776  	s.Logging = v
  4777  	return s
  4778  }
  4779  
  4780  // SetName sets the Name field's value.
  4781  func (s *Cluster) SetName(v string) *Cluster {
  4782  	s.Name = &v
  4783  	return s
  4784  }
  4785  
  4786  // SetPlatformVersion sets the PlatformVersion field's value.
  4787  func (s *Cluster) SetPlatformVersion(v string) *Cluster {
  4788  	s.PlatformVersion = &v
  4789  	return s
  4790  }
  4791  
  4792  // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.
  4793  func (s *Cluster) SetResourcesVpcConfig(v *VpcConfigResponse) *Cluster {
  4794  	s.ResourcesVpcConfig = v
  4795  	return s
  4796  }
  4797  
  4798  // SetRoleArn sets the RoleArn field's value.
  4799  func (s *Cluster) SetRoleArn(v string) *Cluster {
  4800  	s.RoleArn = &v
  4801  	return s
  4802  }
  4803  
  4804  // SetStatus sets the Status field's value.
  4805  func (s *Cluster) SetStatus(v string) *Cluster {
  4806  	s.Status = &v
  4807  	return s
  4808  }
  4809  
  4810  // SetTags sets the Tags field's value.
  4811  func (s *Cluster) SetTags(v map[string]*string) *Cluster {
  4812  	s.Tags = v
  4813  	return s
  4814  }
  4815  
  4816  // SetVersion sets the Version field's value.
  4817  func (s *Cluster) SetVersion(v string) *Cluster {
  4818  	s.Version = &v
  4819  	return s
  4820  }
  4821  
  4822  // Compatibility information.
  4823  type Compatibility struct {
  4824  	_ struct{} `type:"structure"`
  4825  
  4826  	// The supported Kubernetes version of the cluster.
  4827  	ClusterVersion *string `locationName:"clusterVersion" type:"string"`
  4828  
  4829  	// The supported default version.
  4830  	DefaultVersion *bool `locationName:"defaultVersion" type:"boolean"`
  4831  
  4832  	// The supported compute platform.
  4833  	PlatformVersions []*string `locationName:"platformVersions" type:"list"`
  4834  }
  4835  
  4836  // String returns the string representation.
  4837  //
  4838  // API parameter values that are decorated as "sensitive" in the API will not
  4839  // be included in the string output. The member name will be present, but the
  4840  // value will be replaced with "sensitive".
  4841  func (s Compatibility) String() string {
  4842  	return awsutil.Prettify(s)
  4843  }
  4844  
  4845  // GoString returns the string representation.
  4846  //
  4847  // API parameter values that are decorated as "sensitive" in the API will not
  4848  // be included in the string output. The member name will be present, but the
  4849  // value will be replaced with "sensitive".
  4850  func (s Compatibility) GoString() string {
  4851  	return s.String()
  4852  }
  4853  
  4854  // SetClusterVersion sets the ClusterVersion field's value.
  4855  func (s *Compatibility) SetClusterVersion(v string) *Compatibility {
  4856  	s.ClusterVersion = &v
  4857  	return s
  4858  }
  4859  
  4860  // SetDefaultVersion sets the DefaultVersion field's value.
  4861  func (s *Compatibility) SetDefaultVersion(v bool) *Compatibility {
  4862  	s.DefaultVersion = &v
  4863  	return s
  4864  }
  4865  
  4866  // SetPlatformVersions sets the PlatformVersions field's value.
  4867  func (s *Compatibility) SetPlatformVersions(v []*string) *Compatibility {
  4868  	s.PlatformVersions = v
  4869  	return s
  4870  }
  4871  
  4872  // The configuration sent to a cluster for configuration.
  4873  type ConnectorConfigRequest struct {
  4874  	_ struct{} `type:"structure"`
  4875  
  4876  	// The cloud provider for the target cluster to connect.
  4877  	//
  4878  	// Provider is a required field
  4879  	Provider *string `locationName:"provider" type:"string" required:"true" enum:"ConnectorConfigProvider"`
  4880  
  4881  	// The Amazon Resource Name (ARN) of the role that is authorized to request
  4882  	// the connector configuration.
  4883  	//
  4884  	// RoleArn is a required field
  4885  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
  4886  }
  4887  
  4888  // String returns the string representation.
  4889  //
  4890  // API parameter values that are decorated as "sensitive" in the API will not
  4891  // be included in the string output. The member name will be present, but the
  4892  // value will be replaced with "sensitive".
  4893  func (s ConnectorConfigRequest) String() string {
  4894  	return awsutil.Prettify(s)
  4895  }
  4896  
  4897  // GoString returns the string representation.
  4898  //
  4899  // API parameter values that are decorated as "sensitive" in the API will not
  4900  // be included in the string output. The member name will be present, but the
  4901  // value will be replaced with "sensitive".
  4902  func (s ConnectorConfigRequest) GoString() string {
  4903  	return s.String()
  4904  }
  4905  
  4906  // Validate inspects the fields of the type to determine if they are valid.
  4907  func (s *ConnectorConfigRequest) Validate() error {
  4908  	invalidParams := request.ErrInvalidParams{Context: "ConnectorConfigRequest"}
  4909  	if s.Provider == nil {
  4910  		invalidParams.Add(request.NewErrParamRequired("Provider"))
  4911  	}
  4912  	if s.RoleArn == nil {
  4913  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  4914  	}
  4915  
  4916  	if invalidParams.Len() > 0 {
  4917  		return invalidParams
  4918  	}
  4919  	return nil
  4920  }
  4921  
  4922  // SetProvider sets the Provider field's value.
  4923  func (s *ConnectorConfigRequest) SetProvider(v string) *ConnectorConfigRequest {
  4924  	s.Provider = &v
  4925  	return s
  4926  }
  4927  
  4928  // SetRoleArn sets the RoleArn field's value.
  4929  func (s *ConnectorConfigRequest) SetRoleArn(v string) *ConnectorConfigRequest {
  4930  	s.RoleArn = &v
  4931  	return s
  4932  }
  4933  
  4934  // The full description of your connected cluster.
  4935  type ConnectorConfigResponse struct {
  4936  	_ struct{} `type:"structure"`
  4937  
  4938  	// A unique code associated with the cluster for registration purposes.
  4939  	ActivationCode *string `locationName:"activationCode" type:"string"`
  4940  
  4941  	// The expiration time of the connected cluster. The cluster's YAML file must
  4942  	// be applied through the native provider.
  4943  	ActivationExpiry *time.Time `locationName:"activationExpiry" type:"timestamp"`
  4944  
  4945  	// A unique ID associated with the cluster for registration purposes.
  4946  	ActivationId *string `locationName:"activationId" type:"string"`
  4947  
  4948  	// The cluster's cloud service provider.
  4949  	Provider *string `locationName:"provider" type:"string"`
  4950  
  4951  	// The Amazon Resource Name (ARN) of the role that is used by the EKS connector
  4952  	// to communicate with AWS services from the connected Kubernetes cluster.
  4953  	RoleArn *string `locationName:"roleArn" type:"string"`
  4954  }
  4955  
  4956  // String returns the string representation.
  4957  //
  4958  // API parameter values that are decorated as "sensitive" in the API will not
  4959  // be included in the string output. The member name will be present, but the
  4960  // value will be replaced with "sensitive".
  4961  func (s ConnectorConfigResponse) String() string {
  4962  	return awsutil.Prettify(s)
  4963  }
  4964  
  4965  // GoString returns the string representation.
  4966  //
  4967  // API parameter values that are decorated as "sensitive" in the API will not
  4968  // be included in the string output. The member name will be present, but the
  4969  // value will be replaced with "sensitive".
  4970  func (s ConnectorConfigResponse) GoString() string {
  4971  	return s.String()
  4972  }
  4973  
  4974  // SetActivationCode sets the ActivationCode field's value.
  4975  func (s *ConnectorConfigResponse) SetActivationCode(v string) *ConnectorConfigResponse {
  4976  	s.ActivationCode = &v
  4977  	return s
  4978  }
  4979  
  4980  // SetActivationExpiry sets the ActivationExpiry field's value.
  4981  func (s *ConnectorConfigResponse) SetActivationExpiry(v time.Time) *ConnectorConfigResponse {
  4982  	s.ActivationExpiry = &v
  4983  	return s
  4984  }
  4985  
  4986  // SetActivationId sets the ActivationId field's value.
  4987  func (s *ConnectorConfigResponse) SetActivationId(v string) *ConnectorConfigResponse {
  4988  	s.ActivationId = &v
  4989  	return s
  4990  }
  4991  
  4992  // SetProvider sets the Provider field's value.
  4993  func (s *ConnectorConfigResponse) SetProvider(v string) *ConnectorConfigResponse {
  4994  	s.Provider = &v
  4995  	return s
  4996  }
  4997  
  4998  // SetRoleArn sets the RoleArn field's value.
  4999  func (s *ConnectorConfigResponse) SetRoleArn(v string) *ConnectorConfigResponse {
  5000  	s.RoleArn = &v
  5001  	return s
  5002  }
  5003  
  5004  type CreateAddonInput struct {
  5005  	_ struct{} `type:"structure"`
  5006  
  5007  	// The name of the add-on. The name must match one of the names returned by
  5008  	// DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html).
  5009  	//
  5010  	// AddonName is a required field
  5011  	AddonName *string `locationName:"addonName" type:"string" required:"true"`
  5012  
  5013  	// The version of the add-on. The version must match one of the versions returned
  5014  	// by DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html).
  5015  	AddonVersion *string `locationName:"addonVersion" type:"string"`
  5016  
  5017  	// A unique, case-sensitive identifier that you provide to ensure the idempotency
  5018  	// of the request.
  5019  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  5020  
  5021  	// The name of the cluster to create the add-on for.
  5022  	//
  5023  	// ClusterName is a required field
  5024  	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  5025  
  5026  	// How to resolve parameter value conflicts when migrating an existing add-on
  5027  	// to an Amazon EKS add-on.
  5028  	ResolveConflicts *string `locationName:"resolveConflicts" type:"string" enum:"ResolveConflicts"`
  5029  
  5030  	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's
  5031  	// service account. The role must be assigned the IAM permissions required by
  5032  	// the add-on. If you don't specify an existing IAM role, then the add-on uses
  5033  	// the permissions assigned to the node IAM role. For more information, see
  5034  	// Amazon EKS node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html)
  5035  	// in the Amazon EKS User Guide.
  5036  	//
  5037  	// To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC)
  5038  	// provider created for your cluster. For more information, see Enabling IAM
  5039  	// roles for service accounts on your cluster (https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)
  5040  	// in the Amazon EKS User Guide.
  5041  	ServiceAccountRoleArn *string `locationName:"serviceAccountRoleArn" min:"1" type:"string"`
  5042  
  5043  	// The metadata to apply to the cluster to assist with categorization and organization.
  5044  	// Each tag consists of a key and an optional value, both of which you define.
  5045  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5046  }
  5047  
  5048  // String returns the string representation.
  5049  //
  5050  // API parameter values that are decorated as "sensitive" in the API will not
  5051  // be included in the string output. The member name will be present, but the
  5052  // value will be replaced with "sensitive".
  5053  func (s CreateAddonInput) String() string {
  5054  	return awsutil.Prettify(s)
  5055  }
  5056  
  5057  // GoString returns the string representation.
  5058  //
  5059  // API parameter values that are decorated as "sensitive" in the API will not
  5060  // be included in the string output. The member name will be present, but the
  5061  // value will be replaced with "sensitive".
  5062  func (s CreateAddonInput) GoString() string {
  5063  	return s.String()
  5064  }
  5065  
  5066  // Validate inspects the fields of the type to determine if they are valid.
  5067  func (s *CreateAddonInput) Validate() error {
  5068  	invalidParams := request.ErrInvalidParams{Context: "CreateAddonInput"}
  5069  	if s.AddonName == nil {
  5070  		invalidParams.Add(request.NewErrParamRequired("AddonName"))
  5071  	}
  5072  	if s.ClusterName == nil {
  5073  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  5074  	}
  5075  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  5076  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  5077  	}
  5078  	if s.ServiceAccountRoleArn != nil && len(*s.ServiceAccountRoleArn) < 1 {
  5079  		invalidParams.Add(request.NewErrParamMinLen("ServiceAccountRoleArn", 1))
  5080  	}
  5081  	if s.Tags != nil && len(s.Tags) < 1 {
  5082  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  5083  	}
  5084  
  5085  	if invalidParams.Len() > 0 {
  5086  		return invalidParams
  5087  	}
  5088  	return nil
  5089  }
  5090  
  5091  // SetAddonName sets the AddonName field's value.
  5092  func (s *CreateAddonInput) SetAddonName(v string) *CreateAddonInput {
  5093  	s.AddonName = &v
  5094  	return s
  5095  }
  5096  
  5097  // SetAddonVersion sets the AddonVersion field's value.
  5098  func (s *CreateAddonInput) SetAddonVersion(v string) *CreateAddonInput {
  5099  	s.AddonVersion = &v
  5100  	return s
  5101  }
  5102  
  5103  // SetClientRequestToken sets the ClientRequestToken field's value.
  5104  func (s *CreateAddonInput) SetClientRequestToken(v string) *CreateAddonInput {
  5105  	s.ClientRequestToken = &v
  5106  	return s
  5107  }
  5108  
  5109  // SetClusterName sets the ClusterName field's value.
  5110  func (s *CreateAddonInput) SetClusterName(v string) *CreateAddonInput {
  5111  	s.ClusterName = &v
  5112  	return s
  5113  }
  5114  
  5115  // SetResolveConflicts sets the ResolveConflicts field's value.
  5116  func (s *CreateAddonInput) SetResolveConflicts(v string) *CreateAddonInput {
  5117  	s.ResolveConflicts = &v
  5118  	return s
  5119  }
  5120  
  5121  // SetServiceAccountRoleArn sets the ServiceAccountRoleArn field's value.
  5122  func (s *CreateAddonInput) SetServiceAccountRoleArn(v string) *CreateAddonInput {
  5123  	s.ServiceAccountRoleArn = &v
  5124  	return s
  5125  }
  5126  
  5127  // SetTags sets the Tags field's value.
  5128  func (s *CreateAddonInput) SetTags(v map[string]*string) *CreateAddonInput {
  5129  	s.Tags = v
  5130  	return s
  5131  }
  5132  
  5133  type CreateAddonOutput struct {
  5134  	_ struct{} `type:"structure"`
  5135  
  5136  	// An Amazon EKS add-on.
  5137  	Addon *Addon `locationName:"addon" type:"structure"`
  5138  }
  5139  
  5140  // String returns the string representation.
  5141  //
  5142  // API parameter values that are decorated as "sensitive" in the API will not
  5143  // be included in the string output. The member name will be present, but the
  5144  // value will be replaced with "sensitive".
  5145  func (s CreateAddonOutput) String() string {
  5146  	return awsutil.Prettify(s)
  5147  }
  5148  
  5149  // GoString returns the string representation.
  5150  //
  5151  // API parameter values that are decorated as "sensitive" in the API will not
  5152  // be included in the string output. The member name will be present, but the
  5153  // value will be replaced with "sensitive".
  5154  func (s CreateAddonOutput) GoString() string {
  5155  	return s.String()
  5156  }
  5157  
  5158  // SetAddon sets the Addon field's value.
  5159  func (s *CreateAddonOutput) SetAddon(v *Addon) *CreateAddonOutput {
  5160  	s.Addon = v
  5161  	return s
  5162  }
  5163  
  5164  type CreateClusterInput struct {
  5165  	_ struct{} `type:"structure"`
  5166  
  5167  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  5168  	// of the request.
  5169  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  5170  
  5171  	// The encryption configuration for the cluster.
  5172  	EncryptionConfig []*EncryptionConfig `locationName:"encryptionConfig" type:"list"`
  5173  
  5174  	// The Kubernetes network configuration for the cluster.
  5175  	KubernetesNetworkConfig *KubernetesNetworkConfigRequest `locationName:"kubernetesNetworkConfig" type:"structure"`
  5176  
  5177  	// Enable or disable exporting the Kubernetes control plane logs for your cluster
  5178  	// to CloudWatch Logs. By default, cluster control plane logs aren't exported
  5179  	// to CloudWatch Logs. For more information, see Amazon EKS Cluster control
  5180  	// plane logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
  5181  	// in the Amazon EKS User Guide .
  5182  	//
  5183  	// CloudWatch Logs ingestion, archive storage, and data scanning rates apply
  5184  	// to exported control plane logs. For more information, see CloudWatch Pricing
  5185  	// (http://aws.amazon.com/cloudwatch/pricing/).
  5186  	Logging *Logging `locationName:"logging" type:"structure"`
  5187  
  5188  	// The unique name to give to your cluster.
  5189  	//
  5190  	// Name is a required field
  5191  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
  5192  
  5193  	// The VPC configuration used by the cluster control plane. Amazon EKS VPC resources
  5194  	// have specific requirements to work properly with Kubernetes. For more information,
  5195  	// see Cluster VPC Considerations (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)
  5196  	// and Cluster Security Group Considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
  5197  	// in the Amazon EKS User Guide. You must specify at least two subnets. You
  5198  	// can specify up to five security groups, but we recommend that you use a dedicated
  5199  	// security group for your cluster control plane.
  5200  	//
  5201  	// ResourcesVpcConfig is a required field
  5202  	ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure" required:"true"`
  5203  
  5204  	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
  5205  	// for the Kubernetes control plane to make calls to Amazon Web Services API
  5206  	// operations on your behalf. For more information, see Amazon EKS Service IAM
  5207  	// Role (https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html)
  5208  	// in the Amazon EKS User Guide .
  5209  	//
  5210  	// RoleArn is a required field
  5211  	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
  5212  
  5213  	// The metadata to apply to the cluster to assist with categorization and organization.
  5214  	// Each tag consists of a key and an optional value, both of which you define.
  5215  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5216  
  5217  	// The desired Kubernetes version for your cluster. If you don't specify a value
  5218  	// here, the latest version available in Amazon EKS is used.
  5219  	Version *string `locationName:"version" type:"string"`
  5220  }
  5221  
  5222  // String returns the string representation.
  5223  //
  5224  // API parameter values that are decorated as "sensitive" in the API will not
  5225  // be included in the string output. The member name will be present, but the
  5226  // value will be replaced with "sensitive".
  5227  func (s CreateClusterInput) String() string {
  5228  	return awsutil.Prettify(s)
  5229  }
  5230  
  5231  // GoString returns the string representation.
  5232  //
  5233  // API parameter values that are decorated as "sensitive" in the API will not
  5234  // be included in the string output. The member name will be present, but the
  5235  // value will be replaced with "sensitive".
  5236  func (s CreateClusterInput) GoString() string {
  5237  	return s.String()
  5238  }
  5239  
  5240  // Validate inspects the fields of the type to determine if they are valid.
  5241  func (s *CreateClusterInput) Validate() error {
  5242  	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
  5243  	if s.Name == nil {
  5244  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5245  	}
  5246  	if s.Name != nil && len(*s.Name) < 1 {
  5247  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5248  	}
  5249  	if s.ResourcesVpcConfig == nil {
  5250  		invalidParams.Add(request.NewErrParamRequired("ResourcesVpcConfig"))
  5251  	}
  5252  	if s.RoleArn == nil {
  5253  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  5254  	}
  5255  	if s.Tags != nil && len(s.Tags) < 1 {
  5256  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  5257  	}
  5258  
  5259  	if invalidParams.Len() > 0 {
  5260  		return invalidParams
  5261  	}
  5262  	return nil
  5263  }
  5264  
  5265  // SetClientRequestToken sets the ClientRequestToken field's value.
  5266  func (s *CreateClusterInput) SetClientRequestToken(v string) *CreateClusterInput {
  5267  	s.ClientRequestToken = &v
  5268  	return s
  5269  }
  5270  
  5271  // SetEncryptionConfig sets the EncryptionConfig field's value.
  5272  func (s *CreateClusterInput) SetEncryptionConfig(v []*EncryptionConfig) *CreateClusterInput {
  5273  	s.EncryptionConfig = v
  5274  	return s
  5275  }
  5276  
  5277  // SetKubernetesNetworkConfig sets the KubernetesNetworkConfig field's value.
  5278  func (s *CreateClusterInput) SetKubernetesNetworkConfig(v *KubernetesNetworkConfigRequest) *CreateClusterInput {
  5279  	s.KubernetesNetworkConfig = v
  5280  	return s
  5281  }
  5282  
  5283  // SetLogging sets the Logging field's value.
  5284  func (s *CreateClusterInput) SetLogging(v *Logging) *CreateClusterInput {
  5285  	s.Logging = v
  5286  	return s
  5287  }
  5288  
  5289  // SetName sets the Name field's value.
  5290  func (s *CreateClusterInput) SetName(v string) *CreateClusterInput {
  5291  	s.Name = &v
  5292  	return s
  5293  }
  5294  
  5295  // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.
  5296  func (s *CreateClusterInput) SetResourcesVpcConfig(v *VpcConfigRequest) *CreateClusterInput {
  5297  	s.ResourcesVpcConfig = v
  5298  	return s
  5299  }
  5300  
  5301  // SetRoleArn sets the RoleArn field's value.
  5302  func (s *CreateClusterInput) SetRoleArn(v string) *CreateClusterInput {
  5303  	s.RoleArn = &v
  5304  	return s
  5305  }
  5306  
  5307  // SetTags sets the Tags field's value.
  5308  func (s *CreateClusterInput) SetTags(v map[string]*string) *CreateClusterInput {
  5309  	s.Tags = v
  5310  	return s
  5311  }
  5312  
  5313  // SetVersion sets the Version field's value.
  5314  func (s *CreateClusterInput) SetVersion(v string) *CreateClusterInput {
  5315  	s.Version = &v
  5316  	return s
  5317  }
  5318  
  5319  type CreateClusterOutput struct {
  5320  	_ struct{} `type:"structure"`
  5321  
  5322  	// The full description of your new cluster.
  5323  	Cluster *Cluster `locationName:"cluster" type:"structure"`
  5324  }
  5325  
  5326  // String returns the string representation.
  5327  //
  5328  // API parameter values that are decorated as "sensitive" in the API will not
  5329  // be included in the string output. The member name will be present, but the
  5330  // value will be replaced with "sensitive".
  5331  func (s CreateClusterOutput) String() string {
  5332  	return awsutil.Prettify(s)
  5333  }
  5334  
  5335  // GoString returns the string representation.
  5336  //
  5337  // API parameter values that are decorated as "sensitive" in the API will not
  5338  // be included in the string output. The member name will be present, but the
  5339  // value will be replaced with "sensitive".
  5340  func (s CreateClusterOutput) GoString() string {
  5341  	return s.String()
  5342  }
  5343  
  5344  // SetCluster sets the Cluster field's value.
  5345  func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
  5346  	s.Cluster = v
  5347  	return s
  5348  }
  5349  
  5350  type CreateFargateProfileInput struct {
  5351  	_ struct{} `type:"structure"`
  5352  
  5353  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  5354  	// of the request.
  5355  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  5356  
  5357  	// The name of the Amazon EKS cluster to apply the Fargate profile to.
  5358  	//
  5359  	// ClusterName is a required field
  5360  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  5361  
  5362  	// The name of the Fargate profile.
  5363  	//
  5364  	// FargateProfileName is a required field
  5365  	FargateProfileName *string `locationName:"fargateProfileName" type:"string" required:"true"`
  5366  
  5367  	// The Amazon Resource Name (ARN) of the pod execution role to use for pods
  5368  	// that match the selectors in the Fargate profile. The pod execution role allows
  5369  	// Fargate infrastructure to register with your cluster as a node, and it provides
  5370  	// read access to Amazon ECR image repositories. For more information, see Pod
  5371  	// Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html)
  5372  	// in the Amazon EKS User Guide.
  5373  	//
  5374  	// PodExecutionRoleArn is a required field
  5375  	PodExecutionRoleArn *string `locationName:"podExecutionRoleArn" type:"string" required:"true"`
  5376  
  5377  	// The selectors to match for pods to use this Fargate profile. Each selector
  5378  	// must have an associated namespace. Optionally, you can also specify labels
  5379  	// for a namespace. You may specify up to five selectors in a Fargate profile.
  5380  	Selectors []*FargateProfileSelector `locationName:"selectors" type:"list"`
  5381  
  5382  	// The IDs of subnets to launch your pods into. At this time, pods running on
  5383  	// Fargate are not assigned public IP addresses, so only private subnets (with
  5384  	// no direct route to an Internet Gateway) are accepted for this parameter.
  5385  	Subnets []*string `locationName:"subnets" type:"list"`
  5386  
  5387  	// The metadata to apply to the Fargate profile to assist with categorization
  5388  	// and organization. Each tag consists of a key and an optional value, both
  5389  	// of which you define. Fargate profile tags do not propagate to any other resources
  5390  	// associated with the Fargate profile, such as the pods that are scheduled
  5391  	// with it.
  5392  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5393  }
  5394  
  5395  // String returns the string representation.
  5396  //
  5397  // API parameter values that are decorated as "sensitive" in the API will not
  5398  // be included in the string output. The member name will be present, but the
  5399  // value will be replaced with "sensitive".
  5400  func (s CreateFargateProfileInput) String() string {
  5401  	return awsutil.Prettify(s)
  5402  }
  5403  
  5404  // GoString returns the string representation.
  5405  //
  5406  // API parameter values that are decorated as "sensitive" in the API will not
  5407  // be included in the string output. The member name will be present, but the
  5408  // value will be replaced with "sensitive".
  5409  func (s CreateFargateProfileInput) GoString() string {
  5410  	return s.String()
  5411  }
  5412  
  5413  // Validate inspects the fields of the type to determine if they are valid.
  5414  func (s *CreateFargateProfileInput) Validate() error {
  5415  	invalidParams := request.ErrInvalidParams{Context: "CreateFargateProfileInput"}
  5416  	if s.ClusterName == nil {
  5417  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  5418  	}
  5419  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  5420  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  5421  	}
  5422  	if s.FargateProfileName == nil {
  5423  		invalidParams.Add(request.NewErrParamRequired("FargateProfileName"))
  5424  	}
  5425  	if s.PodExecutionRoleArn == nil {
  5426  		invalidParams.Add(request.NewErrParamRequired("PodExecutionRoleArn"))
  5427  	}
  5428  	if s.Tags != nil && len(s.Tags) < 1 {
  5429  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  5430  	}
  5431  
  5432  	if invalidParams.Len() > 0 {
  5433  		return invalidParams
  5434  	}
  5435  	return nil
  5436  }
  5437  
  5438  // SetClientRequestToken sets the ClientRequestToken field's value.
  5439  func (s *CreateFargateProfileInput) SetClientRequestToken(v string) *CreateFargateProfileInput {
  5440  	s.ClientRequestToken = &v
  5441  	return s
  5442  }
  5443  
  5444  // SetClusterName sets the ClusterName field's value.
  5445  func (s *CreateFargateProfileInput) SetClusterName(v string) *CreateFargateProfileInput {
  5446  	s.ClusterName = &v
  5447  	return s
  5448  }
  5449  
  5450  // SetFargateProfileName sets the FargateProfileName field's value.
  5451  func (s *CreateFargateProfileInput) SetFargateProfileName(v string) *CreateFargateProfileInput {
  5452  	s.FargateProfileName = &v
  5453  	return s
  5454  }
  5455  
  5456  // SetPodExecutionRoleArn sets the PodExecutionRoleArn field's value.
  5457  func (s *CreateFargateProfileInput) SetPodExecutionRoleArn(v string) *CreateFargateProfileInput {
  5458  	s.PodExecutionRoleArn = &v
  5459  	return s
  5460  }
  5461  
  5462  // SetSelectors sets the Selectors field's value.
  5463  func (s *CreateFargateProfileInput) SetSelectors(v []*FargateProfileSelector) *CreateFargateProfileInput {
  5464  	s.Selectors = v
  5465  	return s
  5466  }
  5467  
  5468  // SetSubnets sets the Subnets field's value.
  5469  func (s *CreateFargateProfileInput) SetSubnets(v []*string) *CreateFargateProfileInput {
  5470  	s.Subnets = v
  5471  	return s
  5472  }
  5473  
  5474  // SetTags sets the Tags field's value.
  5475  func (s *CreateFargateProfileInput) SetTags(v map[string]*string) *CreateFargateProfileInput {
  5476  	s.Tags = v
  5477  	return s
  5478  }
  5479  
  5480  type CreateFargateProfileOutput struct {
  5481  	_ struct{} `type:"structure"`
  5482  
  5483  	// The full description of your new Fargate profile.
  5484  	FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"`
  5485  }
  5486  
  5487  // String returns the string representation.
  5488  //
  5489  // API parameter values that are decorated as "sensitive" in the API will not
  5490  // be included in the string output. The member name will be present, but the
  5491  // value will be replaced with "sensitive".
  5492  func (s CreateFargateProfileOutput) String() string {
  5493  	return awsutil.Prettify(s)
  5494  }
  5495  
  5496  // GoString returns the string representation.
  5497  //
  5498  // API parameter values that are decorated as "sensitive" in the API will not
  5499  // be included in the string output. The member name will be present, but the
  5500  // value will be replaced with "sensitive".
  5501  func (s CreateFargateProfileOutput) GoString() string {
  5502  	return s.String()
  5503  }
  5504  
  5505  // SetFargateProfile sets the FargateProfile field's value.
  5506  func (s *CreateFargateProfileOutput) SetFargateProfile(v *FargateProfile) *CreateFargateProfileOutput {
  5507  	s.FargateProfile = v
  5508  	return s
  5509  }
  5510  
  5511  type CreateNodegroupInput struct {
  5512  	_ struct{} `type:"structure"`
  5513  
  5514  	// The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU
  5515  	// AMI type. Non-GPU instances should use the AL2_x86_64 AMI type. Arm instances
  5516  	// should use the AL2_ARM_64 AMI type. All types use the Amazon EKS optimized
  5517  	// Amazon Linux 2 AMI. If you specify launchTemplate, and your launch template
  5518  	// uses a custom AMI, then don't specify amiType, or the node group deployment
  5519  	// will fail. For more information about using launch templates with Amazon
  5520  	// EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5521  	// in the Amazon EKS User Guide.
  5522  	AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"`
  5523  
  5524  	// The capacity type for your node group.
  5525  	CapacityType *string `locationName:"capacityType" type:"string" enum:"CapacityTypes"`
  5526  
  5527  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  5528  	// of the request.
  5529  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  5530  
  5531  	// The name of the cluster to create the node group in.
  5532  	//
  5533  	// ClusterName is a required field
  5534  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  5535  
  5536  	// The root device disk size (in GiB) for your node group instances. The default
  5537  	// disk size is 20 GiB. If you specify launchTemplate, then don't specify diskSize,
  5538  	// or the node group deployment will fail. For more information about using
  5539  	// launch templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5540  	// in the Amazon EKS User Guide.
  5541  	DiskSize *int64 `locationName:"diskSize" type:"integer"`
  5542  
  5543  	// Specify the instance types for a node group. If you specify a GPU instance
  5544  	// type, be sure to specify AL2_x86_64_GPU with the amiType parameter. If you
  5545  	// specify launchTemplate, then you can specify zero or one instance type in
  5546  	// your launch template or you can specify 0-20 instance types for instanceTypes.
  5547  	// If however, you specify an instance type in your launch template and specify
  5548  	// any instanceTypes, the node group deployment will fail. If you don't specify
  5549  	// an instance type in a launch template or for instanceTypes, then t3.medium
  5550  	// is used, by default. If you specify Spot for capacityType, then we recommend
  5551  	// specifying multiple values for instanceTypes. For more information, see Managed
  5552  	// node group capacity types (https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types)
  5553  	// and Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5554  	// in the Amazon EKS User Guide.
  5555  	InstanceTypes []*string `locationName:"instanceTypes" type:"list"`
  5556  
  5557  	// The Kubernetes labels to be applied to the nodes in the node group when they
  5558  	// are created.
  5559  	Labels map[string]*string `locationName:"labels" type:"map"`
  5560  
  5561  	// An object representing a node group's launch template specification. If specified,
  5562  	// then do not specify instanceTypes, diskSize, or remoteAccess and make sure
  5563  	// that the launch template meets the requirements in launchTemplateSpecification.
  5564  	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
  5565  
  5566  	// The Amazon Resource Name (ARN) of the IAM role to associate with your node
  5567  	// group. The Amazon EKS worker node kubelet daemon makes calls to Amazon Web
  5568  	// Services APIs on your behalf. Nodes receive permissions for these API calls
  5569  	// through an IAM instance profile and associated policies. Before you can launch
  5570  	// nodes and register them into a cluster, you must create an IAM role for those
  5571  	// nodes to use when they are launched. For more information, see Amazon EKS
  5572  	// node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html)
  5573  	// in the Amazon EKS User Guide . If you specify launchTemplate, then don't
  5574  	// specify IamInstanceProfile (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)
  5575  	// in your launch template, or the node group deployment will fail. For more
  5576  	// information about using launch templates with Amazon EKS, see Launch template
  5577  	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5578  	// in the Amazon EKS User Guide.
  5579  	//
  5580  	// NodeRole is a required field
  5581  	NodeRole *string `locationName:"nodeRole" type:"string" required:"true"`
  5582  
  5583  	// The unique name to give your node group.
  5584  	//
  5585  	// NodegroupName is a required field
  5586  	NodegroupName *string `locationName:"nodegroupName" type:"string" required:"true"`
  5587  
  5588  	// The AMI version of the Amazon EKS optimized AMI to use with your node group.
  5589  	// By default, the latest available AMI version for the node group's current
  5590  	// Kubernetes version is used. For more information, see Amazon EKS optimized
  5591  	// Amazon Linux 2 AMI versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)
  5592  	// in the Amazon EKS User Guide. If you specify launchTemplate, and your launch
  5593  	// template uses a custom AMI, then don't specify releaseVersion, or the node
  5594  	// group deployment will fail. For more information about using launch templates
  5595  	// with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5596  	// in the Amazon EKS User Guide.
  5597  	ReleaseVersion *string `locationName:"releaseVersion" type:"string"`
  5598  
  5599  	// The remote access (SSH) configuration to use with your node group. If you
  5600  	// specify launchTemplate, then don't specify remoteAccess, or the node group
  5601  	// deployment will fail. For more information about using launch templates with
  5602  	// Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5603  	// in the Amazon EKS User Guide.
  5604  	RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"`
  5605  
  5606  	// The scaling configuration details for the Auto Scaling group that is created
  5607  	// for your node group.
  5608  	ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"`
  5609  
  5610  	// The subnets to use for the Auto Scaling group that is created for your node
  5611  	// group. If you specify launchTemplate, then don't specify SubnetId (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
  5612  	// in your launch template, or the node group deployment will fail. For more
  5613  	// information about using launch templates with Amazon EKS, see Launch template
  5614  	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5615  	// in the Amazon EKS User Guide.
  5616  	//
  5617  	// Subnets is a required field
  5618  	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
  5619  
  5620  	// The metadata to apply to the node group to assist with categorization and
  5621  	// organization. Each tag consists of a key and an optional value, both of which
  5622  	// you define. Node group tags do not propagate to any other resources associated
  5623  	// with the node group, such as the Amazon EC2 instances or subnets.
  5624  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  5625  
  5626  	// The Kubernetes taints to be applied to the nodes in the node group.
  5627  	Taints []*Taint `locationName:"taints" type:"list"`
  5628  
  5629  	// The node group update configuration.
  5630  	UpdateConfig *NodegroupUpdateConfig `locationName:"updateConfig" type:"structure"`
  5631  
  5632  	// The Kubernetes version to use for your managed nodes. By default, the Kubernetes
  5633  	// version of the cluster is used, and this is the only accepted specified value.
  5634  	// If you specify launchTemplate, and your launch template uses a custom AMI,
  5635  	// then don't specify version, or the node group deployment will fail. For more
  5636  	// information about using launch templates with Amazon EKS, see Launch template
  5637  	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  5638  	// in the Amazon EKS User Guide.
  5639  	Version *string `locationName:"version" type:"string"`
  5640  }
  5641  
  5642  // String returns the string representation.
  5643  //
  5644  // API parameter values that are decorated as "sensitive" in the API will not
  5645  // be included in the string output. The member name will be present, but the
  5646  // value will be replaced with "sensitive".
  5647  func (s CreateNodegroupInput) String() string {
  5648  	return awsutil.Prettify(s)
  5649  }
  5650  
  5651  // GoString returns the string representation.
  5652  //
  5653  // API parameter values that are decorated as "sensitive" in the API will not
  5654  // be included in the string output. The member name will be present, but the
  5655  // value will be replaced with "sensitive".
  5656  func (s CreateNodegroupInput) GoString() string {
  5657  	return s.String()
  5658  }
  5659  
  5660  // Validate inspects the fields of the type to determine if they are valid.
  5661  func (s *CreateNodegroupInput) Validate() error {
  5662  	invalidParams := request.ErrInvalidParams{Context: "CreateNodegroupInput"}
  5663  	if s.ClusterName == nil {
  5664  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  5665  	}
  5666  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  5667  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  5668  	}
  5669  	if s.NodeRole == nil {
  5670  		invalidParams.Add(request.NewErrParamRequired("NodeRole"))
  5671  	}
  5672  	if s.NodegroupName == nil {
  5673  		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
  5674  	}
  5675  	if s.Subnets == nil {
  5676  		invalidParams.Add(request.NewErrParamRequired("Subnets"))
  5677  	}
  5678  	if s.Tags != nil && len(s.Tags) < 1 {
  5679  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  5680  	}
  5681  	if s.ScalingConfig != nil {
  5682  		if err := s.ScalingConfig.Validate(); err != nil {
  5683  			invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams))
  5684  		}
  5685  	}
  5686  	if s.Taints != nil {
  5687  		for i, v := range s.Taints {
  5688  			if v == nil {
  5689  				continue
  5690  			}
  5691  			if err := v.Validate(); err != nil {
  5692  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Taints", i), err.(request.ErrInvalidParams))
  5693  			}
  5694  		}
  5695  	}
  5696  	if s.UpdateConfig != nil {
  5697  		if err := s.UpdateConfig.Validate(); err != nil {
  5698  			invalidParams.AddNested("UpdateConfig", err.(request.ErrInvalidParams))
  5699  		}
  5700  	}
  5701  
  5702  	if invalidParams.Len() > 0 {
  5703  		return invalidParams
  5704  	}
  5705  	return nil
  5706  }
  5707  
  5708  // SetAmiType sets the AmiType field's value.
  5709  func (s *CreateNodegroupInput) SetAmiType(v string) *CreateNodegroupInput {
  5710  	s.AmiType = &v
  5711  	return s
  5712  }
  5713  
  5714  // SetCapacityType sets the CapacityType field's value.
  5715  func (s *CreateNodegroupInput) SetCapacityType(v string) *CreateNodegroupInput {
  5716  	s.CapacityType = &v
  5717  	return s
  5718  }
  5719  
  5720  // SetClientRequestToken sets the ClientRequestToken field's value.
  5721  func (s *CreateNodegroupInput) SetClientRequestToken(v string) *CreateNodegroupInput {
  5722  	s.ClientRequestToken = &v
  5723  	return s
  5724  }
  5725  
  5726  // SetClusterName sets the ClusterName field's value.
  5727  func (s *CreateNodegroupInput) SetClusterName(v string) *CreateNodegroupInput {
  5728  	s.ClusterName = &v
  5729  	return s
  5730  }
  5731  
  5732  // SetDiskSize sets the DiskSize field's value.
  5733  func (s *CreateNodegroupInput) SetDiskSize(v int64) *CreateNodegroupInput {
  5734  	s.DiskSize = &v
  5735  	return s
  5736  }
  5737  
  5738  // SetInstanceTypes sets the InstanceTypes field's value.
  5739  func (s *CreateNodegroupInput) SetInstanceTypes(v []*string) *CreateNodegroupInput {
  5740  	s.InstanceTypes = v
  5741  	return s
  5742  }
  5743  
  5744  // SetLabels sets the Labels field's value.
  5745  func (s *CreateNodegroupInput) SetLabels(v map[string]*string) *CreateNodegroupInput {
  5746  	s.Labels = v
  5747  	return s
  5748  }
  5749  
  5750  // SetLaunchTemplate sets the LaunchTemplate field's value.
  5751  func (s *CreateNodegroupInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *CreateNodegroupInput {
  5752  	s.LaunchTemplate = v
  5753  	return s
  5754  }
  5755  
  5756  // SetNodeRole sets the NodeRole field's value.
  5757  func (s *CreateNodegroupInput) SetNodeRole(v string) *CreateNodegroupInput {
  5758  	s.NodeRole = &v
  5759  	return s
  5760  }
  5761  
  5762  // SetNodegroupName sets the NodegroupName field's value.
  5763  func (s *CreateNodegroupInput) SetNodegroupName(v string) *CreateNodegroupInput {
  5764  	s.NodegroupName = &v
  5765  	return s
  5766  }
  5767  
  5768  // SetReleaseVersion sets the ReleaseVersion field's value.
  5769  func (s *CreateNodegroupInput) SetReleaseVersion(v string) *CreateNodegroupInput {
  5770  	s.ReleaseVersion = &v
  5771  	return s
  5772  }
  5773  
  5774  // SetRemoteAccess sets the RemoteAccess field's value.
  5775  func (s *CreateNodegroupInput) SetRemoteAccess(v *RemoteAccessConfig) *CreateNodegroupInput {
  5776  	s.RemoteAccess = v
  5777  	return s
  5778  }
  5779  
  5780  // SetScalingConfig sets the ScalingConfig field's value.
  5781  func (s *CreateNodegroupInput) SetScalingConfig(v *NodegroupScalingConfig) *CreateNodegroupInput {
  5782  	s.ScalingConfig = v
  5783  	return s
  5784  }
  5785  
  5786  // SetSubnets sets the Subnets field's value.
  5787  func (s *CreateNodegroupInput) SetSubnets(v []*string) *CreateNodegroupInput {
  5788  	s.Subnets = v
  5789  	return s
  5790  }
  5791  
  5792  // SetTags sets the Tags field's value.
  5793  func (s *CreateNodegroupInput) SetTags(v map[string]*string) *CreateNodegroupInput {
  5794  	s.Tags = v
  5795  	return s
  5796  }
  5797  
  5798  // SetTaints sets the Taints field's value.
  5799  func (s *CreateNodegroupInput) SetTaints(v []*Taint) *CreateNodegroupInput {
  5800  	s.Taints = v
  5801  	return s
  5802  }
  5803  
  5804  // SetUpdateConfig sets the UpdateConfig field's value.
  5805  func (s *CreateNodegroupInput) SetUpdateConfig(v *NodegroupUpdateConfig) *CreateNodegroupInput {
  5806  	s.UpdateConfig = v
  5807  	return s
  5808  }
  5809  
  5810  // SetVersion sets the Version field's value.
  5811  func (s *CreateNodegroupInput) SetVersion(v string) *CreateNodegroupInput {
  5812  	s.Version = &v
  5813  	return s
  5814  }
  5815  
  5816  type CreateNodegroupOutput struct {
  5817  	_ struct{} `type:"structure"`
  5818  
  5819  	// The full description of your new node group.
  5820  	Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"`
  5821  }
  5822  
  5823  // String returns the string representation.
  5824  //
  5825  // API parameter values that are decorated as "sensitive" in the API will not
  5826  // be included in the string output. The member name will be present, but the
  5827  // value will be replaced with "sensitive".
  5828  func (s CreateNodegroupOutput) String() string {
  5829  	return awsutil.Prettify(s)
  5830  }
  5831  
  5832  // GoString returns the string representation.
  5833  //
  5834  // API parameter values that are decorated as "sensitive" in the API will not
  5835  // be included in the string output. The member name will be present, but the
  5836  // value will be replaced with "sensitive".
  5837  func (s CreateNodegroupOutput) GoString() string {
  5838  	return s.String()
  5839  }
  5840  
  5841  // SetNodegroup sets the Nodegroup field's value.
  5842  func (s *CreateNodegroupOutput) SetNodegroup(v *Nodegroup) *CreateNodegroupOutput {
  5843  	s.Nodegroup = v
  5844  	return s
  5845  }
  5846  
  5847  type DeleteAddonInput struct {
  5848  	_ struct{} `type:"structure" nopayload:"true"`
  5849  
  5850  	// The name of the add-on. The name must match one of the names returned by
  5851  	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
  5852  	//
  5853  	// AddonName is a required field
  5854  	AddonName *string `location:"uri" locationName:"addonName" type:"string" required:"true"`
  5855  
  5856  	// The name of the cluster to delete the add-on from.
  5857  	//
  5858  	// ClusterName is a required field
  5859  	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  5860  
  5861  	// Specifying this option preserves the add-on software on your cluster but
  5862  	// Amazon EKS stops managing any settings for the add-on. If an IAM account
  5863  	// is associated with the add-on, it is not removed.
  5864  	Preserve *bool `location:"querystring" locationName:"preserve" type:"boolean"`
  5865  }
  5866  
  5867  // String returns the string representation.
  5868  //
  5869  // API parameter values that are decorated as "sensitive" in the API will not
  5870  // be included in the string output. The member name will be present, but the
  5871  // value will be replaced with "sensitive".
  5872  func (s DeleteAddonInput) String() string {
  5873  	return awsutil.Prettify(s)
  5874  }
  5875  
  5876  // GoString returns the string representation.
  5877  //
  5878  // API parameter values that are decorated as "sensitive" in the API will not
  5879  // be included in the string output. The member name will be present, but the
  5880  // value will be replaced with "sensitive".
  5881  func (s DeleteAddonInput) GoString() string {
  5882  	return s.String()
  5883  }
  5884  
  5885  // Validate inspects the fields of the type to determine if they are valid.
  5886  func (s *DeleteAddonInput) Validate() error {
  5887  	invalidParams := request.ErrInvalidParams{Context: "DeleteAddonInput"}
  5888  	if s.AddonName == nil {
  5889  		invalidParams.Add(request.NewErrParamRequired("AddonName"))
  5890  	}
  5891  	if s.AddonName != nil && len(*s.AddonName) < 1 {
  5892  		invalidParams.Add(request.NewErrParamMinLen("AddonName", 1))
  5893  	}
  5894  	if s.ClusterName == nil {
  5895  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  5896  	}
  5897  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  5898  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  5899  	}
  5900  
  5901  	if invalidParams.Len() > 0 {
  5902  		return invalidParams
  5903  	}
  5904  	return nil
  5905  }
  5906  
  5907  // SetAddonName sets the AddonName field's value.
  5908  func (s *DeleteAddonInput) SetAddonName(v string) *DeleteAddonInput {
  5909  	s.AddonName = &v
  5910  	return s
  5911  }
  5912  
  5913  // SetClusterName sets the ClusterName field's value.
  5914  func (s *DeleteAddonInput) SetClusterName(v string) *DeleteAddonInput {
  5915  	s.ClusterName = &v
  5916  	return s
  5917  }
  5918  
  5919  // SetPreserve sets the Preserve field's value.
  5920  func (s *DeleteAddonInput) SetPreserve(v bool) *DeleteAddonInput {
  5921  	s.Preserve = &v
  5922  	return s
  5923  }
  5924  
  5925  type DeleteAddonOutput struct {
  5926  	_ struct{} `type:"structure"`
  5927  
  5928  	// An Amazon EKS add-on.
  5929  	Addon *Addon `locationName:"addon" type:"structure"`
  5930  }
  5931  
  5932  // String returns the string representation.
  5933  //
  5934  // API parameter values that are decorated as "sensitive" in the API will not
  5935  // be included in the string output. The member name will be present, but the
  5936  // value will be replaced with "sensitive".
  5937  func (s DeleteAddonOutput) String() string {
  5938  	return awsutil.Prettify(s)
  5939  }
  5940  
  5941  // GoString returns the string representation.
  5942  //
  5943  // API parameter values that are decorated as "sensitive" in the API will not
  5944  // be included in the string output. The member name will be present, but the
  5945  // value will be replaced with "sensitive".
  5946  func (s DeleteAddonOutput) GoString() string {
  5947  	return s.String()
  5948  }
  5949  
  5950  // SetAddon sets the Addon field's value.
  5951  func (s *DeleteAddonOutput) SetAddon(v *Addon) *DeleteAddonOutput {
  5952  	s.Addon = v
  5953  	return s
  5954  }
  5955  
  5956  type DeleteClusterInput struct {
  5957  	_ struct{} `type:"structure" nopayload:"true"`
  5958  
  5959  	// The name of the cluster to delete.
  5960  	//
  5961  	// Name is a required field
  5962  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
  5963  }
  5964  
  5965  // String returns the string representation.
  5966  //
  5967  // API parameter values that are decorated as "sensitive" in the API will not
  5968  // be included in the string output. The member name will be present, but the
  5969  // value will be replaced with "sensitive".
  5970  func (s DeleteClusterInput) String() string {
  5971  	return awsutil.Prettify(s)
  5972  }
  5973  
  5974  // GoString returns the string representation.
  5975  //
  5976  // API parameter values that are decorated as "sensitive" in the API will not
  5977  // be included in the string output. The member name will be present, but the
  5978  // value will be replaced with "sensitive".
  5979  func (s DeleteClusterInput) GoString() string {
  5980  	return s.String()
  5981  }
  5982  
  5983  // Validate inspects the fields of the type to determine if they are valid.
  5984  func (s *DeleteClusterInput) Validate() error {
  5985  	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
  5986  	if s.Name == nil {
  5987  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5988  	}
  5989  	if s.Name != nil && len(*s.Name) < 1 {
  5990  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5991  	}
  5992  
  5993  	if invalidParams.Len() > 0 {
  5994  		return invalidParams
  5995  	}
  5996  	return nil
  5997  }
  5998  
  5999  // SetName sets the Name field's value.
  6000  func (s *DeleteClusterInput) SetName(v string) *DeleteClusterInput {
  6001  	s.Name = &v
  6002  	return s
  6003  }
  6004  
  6005  type DeleteClusterOutput struct {
  6006  	_ struct{} `type:"structure"`
  6007  
  6008  	// The full description of the cluster to delete.
  6009  	Cluster *Cluster `locationName:"cluster" type:"structure"`
  6010  }
  6011  
  6012  // String returns the string representation.
  6013  //
  6014  // API parameter values that are decorated as "sensitive" in the API will not
  6015  // be included in the string output. The member name will be present, but the
  6016  // value will be replaced with "sensitive".
  6017  func (s DeleteClusterOutput) String() string {
  6018  	return awsutil.Prettify(s)
  6019  }
  6020  
  6021  // GoString returns the string representation.
  6022  //
  6023  // API parameter values that are decorated as "sensitive" in the API will not
  6024  // be included in the string output. The member name will be present, but the
  6025  // value will be replaced with "sensitive".
  6026  func (s DeleteClusterOutput) GoString() string {
  6027  	return s.String()
  6028  }
  6029  
  6030  // SetCluster sets the Cluster field's value.
  6031  func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
  6032  	s.Cluster = v
  6033  	return s
  6034  }
  6035  
  6036  type DeleteFargateProfileInput struct {
  6037  	_ struct{} `type:"structure" nopayload:"true"`
  6038  
  6039  	// The name of the Amazon EKS cluster associated with the Fargate profile to
  6040  	// delete.
  6041  	//
  6042  	// ClusterName is a required field
  6043  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6044  
  6045  	// The name of the Fargate profile to delete.
  6046  	//
  6047  	// FargateProfileName is a required field
  6048  	FargateProfileName *string `location:"uri" locationName:"fargateProfileName" type:"string" required:"true"`
  6049  }
  6050  
  6051  // String returns the string representation.
  6052  //
  6053  // API parameter values that are decorated as "sensitive" in the API will not
  6054  // be included in the string output. The member name will be present, but the
  6055  // value will be replaced with "sensitive".
  6056  func (s DeleteFargateProfileInput) String() string {
  6057  	return awsutil.Prettify(s)
  6058  }
  6059  
  6060  // GoString returns the string representation.
  6061  //
  6062  // API parameter values that are decorated as "sensitive" in the API will not
  6063  // be included in the string output. The member name will be present, but the
  6064  // value will be replaced with "sensitive".
  6065  func (s DeleteFargateProfileInput) GoString() string {
  6066  	return s.String()
  6067  }
  6068  
  6069  // Validate inspects the fields of the type to determine if they are valid.
  6070  func (s *DeleteFargateProfileInput) Validate() error {
  6071  	invalidParams := request.ErrInvalidParams{Context: "DeleteFargateProfileInput"}
  6072  	if s.ClusterName == nil {
  6073  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  6074  	}
  6075  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  6076  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  6077  	}
  6078  	if s.FargateProfileName == nil {
  6079  		invalidParams.Add(request.NewErrParamRequired("FargateProfileName"))
  6080  	}
  6081  	if s.FargateProfileName != nil && len(*s.FargateProfileName) < 1 {
  6082  		invalidParams.Add(request.NewErrParamMinLen("FargateProfileName", 1))
  6083  	}
  6084  
  6085  	if invalidParams.Len() > 0 {
  6086  		return invalidParams
  6087  	}
  6088  	return nil
  6089  }
  6090  
  6091  // SetClusterName sets the ClusterName field's value.
  6092  func (s *DeleteFargateProfileInput) SetClusterName(v string) *DeleteFargateProfileInput {
  6093  	s.ClusterName = &v
  6094  	return s
  6095  }
  6096  
  6097  // SetFargateProfileName sets the FargateProfileName field's value.
  6098  func (s *DeleteFargateProfileInput) SetFargateProfileName(v string) *DeleteFargateProfileInput {
  6099  	s.FargateProfileName = &v
  6100  	return s
  6101  }
  6102  
  6103  type DeleteFargateProfileOutput struct {
  6104  	_ struct{} `type:"structure"`
  6105  
  6106  	// The deleted Fargate profile.
  6107  	FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"`
  6108  }
  6109  
  6110  // String returns the string representation.
  6111  //
  6112  // API parameter values that are decorated as "sensitive" in the API will not
  6113  // be included in the string output. The member name will be present, but the
  6114  // value will be replaced with "sensitive".
  6115  func (s DeleteFargateProfileOutput) String() string {
  6116  	return awsutil.Prettify(s)
  6117  }
  6118  
  6119  // GoString returns the string representation.
  6120  //
  6121  // API parameter values that are decorated as "sensitive" in the API will not
  6122  // be included in the string output. The member name will be present, but the
  6123  // value will be replaced with "sensitive".
  6124  func (s DeleteFargateProfileOutput) GoString() string {
  6125  	return s.String()
  6126  }
  6127  
  6128  // SetFargateProfile sets the FargateProfile field's value.
  6129  func (s *DeleteFargateProfileOutput) SetFargateProfile(v *FargateProfile) *DeleteFargateProfileOutput {
  6130  	s.FargateProfile = v
  6131  	return s
  6132  }
  6133  
  6134  type DeleteNodegroupInput struct {
  6135  	_ struct{} `type:"structure" nopayload:"true"`
  6136  
  6137  	// The name of the Amazon EKS cluster that is associated with your node group.
  6138  	//
  6139  	// ClusterName is a required field
  6140  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6141  
  6142  	// The name of the node group to delete.
  6143  	//
  6144  	// NodegroupName is a required field
  6145  	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
  6146  }
  6147  
  6148  // String returns the string representation.
  6149  //
  6150  // API parameter values that are decorated as "sensitive" in the API will not
  6151  // be included in the string output. The member name will be present, but the
  6152  // value will be replaced with "sensitive".
  6153  func (s DeleteNodegroupInput) String() string {
  6154  	return awsutil.Prettify(s)
  6155  }
  6156  
  6157  // GoString returns the string representation.
  6158  //
  6159  // API parameter values that are decorated as "sensitive" in the API will not
  6160  // be included in the string output. The member name will be present, but the
  6161  // value will be replaced with "sensitive".
  6162  func (s DeleteNodegroupInput) GoString() string {
  6163  	return s.String()
  6164  }
  6165  
  6166  // Validate inspects the fields of the type to determine if they are valid.
  6167  func (s *DeleteNodegroupInput) Validate() error {
  6168  	invalidParams := request.ErrInvalidParams{Context: "DeleteNodegroupInput"}
  6169  	if s.ClusterName == nil {
  6170  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  6171  	}
  6172  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  6173  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  6174  	}
  6175  	if s.NodegroupName == nil {
  6176  		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
  6177  	}
  6178  	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
  6179  		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
  6180  	}
  6181  
  6182  	if invalidParams.Len() > 0 {
  6183  		return invalidParams
  6184  	}
  6185  	return nil
  6186  }
  6187  
  6188  // SetClusterName sets the ClusterName field's value.
  6189  func (s *DeleteNodegroupInput) SetClusterName(v string) *DeleteNodegroupInput {
  6190  	s.ClusterName = &v
  6191  	return s
  6192  }
  6193  
  6194  // SetNodegroupName sets the NodegroupName field's value.
  6195  func (s *DeleteNodegroupInput) SetNodegroupName(v string) *DeleteNodegroupInput {
  6196  	s.NodegroupName = &v
  6197  	return s
  6198  }
  6199  
  6200  type DeleteNodegroupOutput struct {
  6201  	_ struct{} `type:"structure"`
  6202  
  6203  	// The full description of your deleted node group.
  6204  	Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"`
  6205  }
  6206  
  6207  // String returns the string representation.
  6208  //
  6209  // API parameter values that are decorated as "sensitive" in the API will not
  6210  // be included in the string output. The member name will be present, but the
  6211  // value will be replaced with "sensitive".
  6212  func (s DeleteNodegroupOutput) String() string {
  6213  	return awsutil.Prettify(s)
  6214  }
  6215  
  6216  // GoString returns the string representation.
  6217  //
  6218  // API parameter values that are decorated as "sensitive" in the API will not
  6219  // be included in the string output. The member name will be present, but the
  6220  // value will be replaced with "sensitive".
  6221  func (s DeleteNodegroupOutput) GoString() string {
  6222  	return s.String()
  6223  }
  6224  
  6225  // SetNodegroup sets the Nodegroup field's value.
  6226  func (s *DeleteNodegroupOutput) SetNodegroup(v *Nodegroup) *DeleteNodegroupOutput {
  6227  	s.Nodegroup = v
  6228  	return s
  6229  }
  6230  
  6231  type DeregisterClusterInput struct {
  6232  	_ struct{} `type:"structure" nopayload:"true"`
  6233  
  6234  	// The name of the connected cluster to deregister.
  6235  	//
  6236  	// Name is a required field
  6237  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6238  }
  6239  
  6240  // String returns the string representation.
  6241  //
  6242  // API parameter values that are decorated as "sensitive" in the API will not
  6243  // be included in the string output. The member name will be present, but the
  6244  // value will be replaced with "sensitive".
  6245  func (s DeregisterClusterInput) String() string {
  6246  	return awsutil.Prettify(s)
  6247  }
  6248  
  6249  // GoString returns the string representation.
  6250  //
  6251  // API parameter values that are decorated as "sensitive" in the API will not
  6252  // be included in the string output. The member name will be present, but the
  6253  // value will be replaced with "sensitive".
  6254  func (s DeregisterClusterInput) GoString() string {
  6255  	return s.String()
  6256  }
  6257  
  6258  // Validate inspects the fields of the type to determine if they are valid.
  6259  func (s *DeregisterClusterInput) Validate() error {
  6260  	invalidParams := request.ErrInvalidParams{Context: "DeregisterClusterInput"}
  6261  	if s.Name == nil {
  6262  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6263  	}
  6264  	if s.Name != nil && len(*s.Name) < 1 {
  6265  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6266  	}
  6267  
  6268  	if invalidParams.Len() > 0 {
  6269  		return invalidParams
  6270  	}
  6271  	return nil
  6272  }
  6273  
  6274  // SetName sets the Name field's value.
  6275  func (s *DeregisterClusterInput) SetName(v string) *DeregisterClusterInput {
  6276  	s.Name = &v
  6277  	return s
  6278  }
  6279  
  6280  type DeregisterClusterOutput struct {
  6281  	_ struct{} `type:"structure"`
  6282  
  6283  	// An object representing an Amazon EKS cluster.
  6284  	Cluster *Cluster `locationName:"cluster" type:"structure"`
  6285  }
  6286  
  6287  // String returns the string representation.
  6288  //
  6289  // API parameter values that are decorated as "sensitive" in the API will not
  6290  // be included in the string output. The member name will be present, but the
  6291  // value will be replaced with "sensitive".
  6292  func (s DeregisterClusterOutput) String() string {
  6293  	return awsutil.Prettify(s)
  6294  }
  6295  
  6296  // GoString 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 DeregisterClusterOutput) GoString() string {
  6302  	return s.String()
  6303  }
  6304  
  6305  // SetCluster sets the Cluster field's value.
  6306  func (s *DeregisterClusterOutput) SetCluster(v *Cluster) *DeregisterClusterOutput {
  6307  	s.Cluster = v
  6308  	return s
  6309  }
  6310  
  6311  type DescribeAddonInput struct {
  6312  	_ struct{} `type:"structure" nopayload:"true"`
  6313  
  6314  	// The name of the add-on. The name must match one of the names returned by
  6315  	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
  6316  	//
  6317  	// AddonName is a required field
  6318  	AddonName *string `location:"uri" locationName:"addonName" type:"string" required:"true"`
  6319  
  6320  	// The name of the cluster.
  6321  	//
  6322  	// ClusterName is a required field
  6323  	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  6324  }
  6325  
  6326  // String returns the string representation.
  6327  //
  6328  // API parameter values that are decorated as "sensitive" in the API will not
  6329  // be included in the string output. The member name will be present, but the
  6330  // value will be replaced with "sensitive".
  6331  func (s DescribeAddonInput) String() string {
  6332  	return awsutil.Prettify(s)
  6333  }
  6334  
  6335  // GoString returns the string representation.
  6336  //
  6337  // API parameter values that are decorated as "sensitive" in the API will not
  6338  // be included in the string output. The member name will be present, but the
  6339  // value will be replaced with "sensitive".
  6340  func (s DescribeAddonInput) GoString() string {
  6341  	return s.String()
  6342  }
  6343  
  6344  // Validate inspects the fields of the type to determine if they are valid.
  6345  func (s *DescribeAddonInput) Validate() error {
  6346  	invalidParams := request.ErrInvalidParams{Context: "DescribeAddonInput"}
  6347  	if s.AddonName == nil {
  6348  		invalidParams.Add(request.NewErrParamRequired("AddonName"))
  6349  	}
  6350  	if s.AddonName != nil && len(*s.AddonName) < 1 {
  6351  		invalidParams.Add(request.NewErrParamMinLen("AddonName", 1))
  6352  	}
  6353  	if s.ClusterName == nil {
  6354  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  6355  	}
  6356  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  6357  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  6358  	}
  6359  
  6360  	if invalidParams.Len() > 0 {
  6361  		return invalidParams
  6362  	}
  6363  	return nil
  6364  }
  6365  
  6366  // SetAddonName sets the AddonName field's value.
  6367  func (s *DescribeAddonInput) SetAddonName(v string) *DescribeAddonInput {
  6368  	s.AddonName = &v
  6369  	return s
  6370  }
  6371  
  6372  // SetClusterName sets the ClusterName field's value.
  6373  func (s *DescribeAddonInput) SetClusterName(v string) *DescribeAddonInput {
  6374  	s.ClusterName = &v
  6375  	return s
  6376  }
  6377  
  6378  type DescribeAddonOutput struct {
  6379  	_ struct{} `type:"structure"`
  6380  
  6381  	// An Amazon EKS add-on.
  6382  	Addon *Addon `locationName:"addon" type:"structure"`
  6383  }
  6384  
  6385  // String returns the string representation.
  6386  //
  6387  // API parameter values that are decorated as "sensitive" in the API will not
  6388  // be included in the string output. The member name will be present, but the
  6389  // value will be replaced with "sensitive".
  6390  func (s DescribeAddonOutput) String() string {
  6391  	return awsutil.Prettify(s)
  6392  }
  6393  
  6394  // GoString returns the string representation.
  6395  //
  6396  // API parameter values that are decorated as "sensitive" in the API will not
  6397  // be included in the string output. The member name will be present, but the
  6398  // value will be replaced with "sensitive".
  6399  func (s DescribeAddonOutput) GoString() string {
  6400  	return s.String()
  6401  }
  6402  
  6403  // SetAddon sets the Addon field's value.
  6404  func (s *DescribeAddonOutput) SetAddon(v *Addon) *DescribeAddonOutput {
  6405  	s.Addon = v
  6406  	return s
  6407  }
  6408  
  6409  type DescribeAddonVersionsInput struct {
  6410  	_ struct{} `type:"structure" nopayload:"true"`
  6411  
  6412  	// The name of the add-on. The name must match one of the names returned by
  6413  	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
  6414  	AddonName *string `location:"querystring" locationName:"addonName" type:"string"`
  6415  
  6416  	// The Kubernetes versions that the add-on can be used with.
  6417  	KubernetesVersion *string `location:"querystring" locationName:"kubernetesVersion" type:"string"`
  6418  
  6419  	// The maximum number of results to return.
  6420  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  6421  
  6422  	// The nextToken value returned from a previous paginated DescribeAddonVersionsRequest
  6423  	// where maxResults was used and the results exceeded the value of that parameter.
  6424  	// Pagination continues from the end of the previous results that returned the
  6425  	// nextToken value.
  6426  	//
  6427  	// This token should be treated as an opaque identifier that is used only to
  6428  	// retrieve the next items in a list and not for other programmatic purposes.
  6429  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  6430  }
  6431  
  6432  // String returns the string representation.
  6433  //
  6434  // API parameter values that are decorated as "sensitive" in the API will not
  6435  // be included in the string output. The member name will be present, but the
  6436  // value will be replaced with "sensitive".
  6437  func (s DescribeAddonVersionsInput) String() string {
  6438  	return awsutil.Prettify(s)
  6439  }
  6440  
  6441  // GoString returns the string representation.
  6442  //
  6443  // API parameter values that are decorated as "sensitive" in the API will not
  6444  // be included in the string output. The member name will be present, but the
  6445  // value will be replaced with "sensitive".
  6446  func (s DescribeAddonVersionsInput) GoString() string {
  6447  	return s.String()
  6448  }
  6449  
  6450  // Validate inspects the fields of the type to determine if they are valid.
  6451  func (s *DescribeAddonVersionsInput) Validate() error {
  6452  	invalidParams := request.ErrInvalidParams{Context: "DescribeAddonVersionsInput"}
  6453  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6454  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6455  	}
  6456  
  6457  	if invalidParams.Len() > 0 {
  6458  		return invalidParams
  6459  	}
  6460  	return nil
  6461  }
  6462  
  6463  // SetAddonName sets the AddonName field's value.
  6464  func (s *DescribeAddonVersionsInput) SetAddonName(v string) *DescribeAddonVersionsInput {
  6465  	s.AddonName = &v
  6466  	return s
  6467  }
  6468  
  6469  // SetKubernetesVersion sets the KubernetesVersion field's value.
  6470  func (s *DescribeAddonVersionsInput) SetKubernetesVersion(v string) *DescribeAddonVersionsInput {
  6471  	s.KubernetesVersion = &v
  6472  	return s
  6473  }
  6474  
  6475  // SetMaxResults sets the MaxResults field's value.
  6476  func (s *DescribeAddonVersionsInput) SetMaxResults(v int64) *DescribeAddonVersionsInput {
  6477  	s.MaxResults = &v
  6478  	return s
  6479  }
  6480  
  6481  // SetNextToken sets the NextToken field's value.
  6482  func (s *DescribeAddonVersionsInput) SetNextToken(v string) *DescribeAddonVersionsInput {
  6483  	s.NextToken = &v
  6484  	return s
  6485  }
  6486  
  6487  type DescribeAddonVersionsOutput struct {
  6488  	_ struct{} `type:"structure"`
  6489  
  6490  	// The list of available versions with Kubernetes version compatibility.
  6491  	Addons []*AddonInfo `locationName:"addons" type:"list"`
  6492  
  6493  	// The nextToken value returned from a previous paginated DescribeAddonVersionsResponse
  6494  	// where maxResults was used and the results exceeded the value of that parameter.
  6495  	// Pagination continues from the end of the previous results that returned the
  6496  	// nextToken value.
  6497  	//
  6498  	// This token should be treated as an opaque identifier that is used only to
  6499  	// retrieve the next items in a list and not for other programmatic purposes.
  6500  	NextToken *string `locationName:"nextToken" type:"string"`
  6501  }
  6502  
  6503  // String returns the string representation.
  6504  //
  6505  // API parameter values that are decorated as "sensitive" in the API will not
  6506  // be included in the string output. The member name will be present, but the
  6507  // value will be replaced with "sensitive".
  6508  func (s DescribeAddonVersionsOutput) String() string {
  6509  	return awsutil.Prettify(s)
  6510  }
  6511  
  6512  // GoString returns the string representation.
  6513  //
  6514  // API parameter values that are decorated as "sensitive" in the API will not
  6515  // be included in the string output. The member name will be present, but the
  6516  // value will be replaced with "sensitive".
  6517  func (s DescribeAddonVersionsOutput) GoString() string {
  6518  	return s.String()
  6519  }
  6520  
  6521  // SetAddons sets the Addons field's value.
  6522  func (s *DescribeAddonVersionsOutput) SetAddons(v []*AddonInfo) *DescribeAddonVersionsOutput {
  6523  	s.Addons = v
  6524  	return s
  6525  }
  6526  
  6527  // SetNextToken sets the NextToken field's value.
  6528  func (s *DescribeAddonVersionsOutput) SetNextToken(v string) *DescribeAddonVersionsOutput {
  6529  	s.NextToken = &v
  6530  	return s
  6531  }
  6532  
  6533  type DescribeClusterInput struct {
  6534  	_ struct{} `type:"structure" nopayload:"true"`
  6535  
  6536  	// The name of the cluster to describe.
  6537  	//
  6538  	// Name is a required field
  6539  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6540  }
  6541  
  6542  // String returns the string representation.
  6543  //
  6544  // API parameter values that are decorated as "sensitive" in the API will not
  6545  // be included in the string output. The member name will be present, but the
  6546  // value will be replaced with "sensitive".
  6547  func (s DescribeClusterInput) String() string {
  6548  	return awsutil.Prettify(s)
  6549  }
  6550  
  6551  // GoString returns the string representation.
  6552  //
  6553  // API parameter values that are decorated as "sensitive" in the API will not
  6554  // be included in the string output. The member name will be present, but the
  6555  // value will be replaced with "sensitive".
  6556  func (s DescribeClusterInput) GoString() string {
  6557  	return s.String()
  6558  }
  6559  
  6560  // Validate inspects the fields of the type to determine if they are valid.
  6561  func (s *DescribeClusterInput) Validate() error {
  6562  	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
  6563  	if s.Name == nil {
  6564  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6565  	}
  6566  	if s.Name != nil && len(*s.Name) < 1 {
  6567  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6568  	}
  6569  
  6570  	if invalidParams.Len() > 0 {
  6571  		return invalidParams
  6572  	}
  6573  	return nil
  6574  }
  6575  
  6576  // SetName sets the Name field's value.
  6577  func (s *DescribeClusterInput) SetName(v string) *DescribeClusterInput {
  6578  	s.Name = &v
  6579  	return s
  6580  }
  6581  
  6582  type DescribeClusterOutput struct {
  6583  	_ struct{} `type:"structure"`
  6584  
  6585  	// The full description of your specified cluster.
  6586  	Cluster *Cluster `locationName:"cluster" type:"structure"`
  6587  }
  6588  
  6589  // String returns the string representation.
  6590  //
  6591  // API parameter values that are decorated as "sensitive" in the API will not
  6592  // be included in the string output. The member name will be present, but the
  6593  // value will be replaced with "sensitive".
  6594  func (s DescribeClusterOutput) String() string {
  6595  	return awsutil.Prettify(s)
  6596  }
  6597  
  6598  // GoString returns the string representation.
  6599  //
  6600  // API parameter values that are decorated as "sensitive" in the API will not
  6601  // be included in the string output. The member name will be present, but the
  6602  // value will be replaced with "sensitive".
  6603  func (s DescribeClusterOutput) GoString() string {
  6604  	return s.String()
  6605  }
  6606  
  6607  // SetCluster sets the Cluster field's value.
  6608  func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
  6609  	s.Cluster = v
  6610  	return s
  6611  }
  6612  
  6613  type DescribeFargateProfileInput struct {
  6614  	_ struct{} `type:"structure" nopayload:"true"`
  6615  
  6616  	// The name of the Amazon EKS cluster associated with the Fargate profile.
  6617  	//
  6618  	// ClusterName is a required field
  6619  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6620  
  6621  	// The name of the Fargate profile to describe.
  6622  	//
  6623  	// FargateProfileName is a required field
  6624  	FargateProfileName *string `location:"uri" locationName:"fargateProfileName" type:"string" required:"true"`
  6625  }
  6626  
  6627  // String returns the string representation.
  6628  //
  6629  // API parameter values that are decorated as "sensitive" in the API will not
  6630  // be included in the string output. The member name will be present, but the
  6631  // value will be replaced with "sensitive".
  6632  func (s DescribeFargateProfileInput) String() string {
  6633  	return awsutil.Prettify(s)
  6634  }
  6635  
  6636  // GoString returns the string representation.
  6637  //
  6638  // API parameter values that are decorated as "sensitive" in the API will not
  6639  // be included in the string output. The member name will be present, but the
  6640  // value will be replaced with "sensitive".
  6641  func (s DescribeFargateProfileInput) GoString() string {
  6642  	return s.String()
  6643  }
  6644  
  6645  // Validate inspects the fields of the type to determine if they are valid.
  6646  func (s *DescribeFargateProfileInput) Validate() error {
  6647  	invalidParams := request.ErrInvalidParams{Context: "DescribeFargateProfileInput"}
  6648  	if s.ClusterName == nil {
  6649  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  6650  	}
  6651  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  6652  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  6653  	}
  6654  	if s.FargateProfileName == nil {
  6655  		invalidParams.Add(request.NewErrParamRequired("FargateProfileName"))
  6656  	}
  6657  	if s.FargateProfileName != nil && len(*s.FargateProfileName) < 1 {
  6658  		invalidParams.Add(request.NewErrParamMinLen("FargateProfileName", 1))
  6659  	}
  6660  
  6661  	if invalidParams.Len() > 0 {
  6662  		return invalidParams
  6663  	}
  6664  	return nil
  6665  }
  6666  
  6667  // SetClusterName sets the ClusterName field's value.
  6668  func (s *DescribeFargateProfileInput) SetClusterName(v string) *DescribeFargateProfileInput {
  6669  	s.ClusterName = &v
  6670  	return s
  6671  }
  6672  
  6673  // SetFargateProfileName sets the FargateProfileName field's value.
  6674  func (s *DescribeFargateProfileInput) SetFargateProfileName(v string) *DescribeFargateProfileInput {
  6675  	s.FargateProfileName = &v
  6676  	return s
  6677  }
  6678  
  6679  type DescribeFargateProfileOutput struct {
  6680  	_ struct{} `type:"structure"`
  6681  
  6682  	// The full description of your Fargate profile.
  6683  	FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"`
  6684  }
  6685  
  6686  // String returns the string representation.
  6687  //
  6688  // API parameter values that are decorated as "sensitive" in the API will not
  6689  // be included in the string output. The member name will be present, but the
  6690  // value will be replaced with "sensitive".
  6691  func (s DescribeFargateProfileOutput) String() string {
  6692  	return awsutil.Prettify(s)
  6693  }
  6694  
  6695  // GoString returns the string representation.
  6696  //
  6697  // API parameter values that are decorated as "sensitive" in the API will not
  6698  // be included in the string output. The member name will be present, but the
  6699  // value will be replaced with "sensitive".
  6700  func (s DescribeFargateProfileOutput) GoString() string {
  6701  	return s.String()
  6702  }
  6703  
  6704  // SetFargateProfile sets the FargateProfile field's value.
  6705  func (s *DescribeFargateProfileOutput) SetFargateProfile(v *FargateProfile) *DescribeFargateProfileOutput {
  6706  	s.FargateProfile = v
  6707  	return s
  6708  }
  6709  
  6710  type DescribeIdentityProviderConfigInput struct {
  6711  	_ struct{} `type:"structure"`
  6712  
  6713  	// The cluster name that the identity provider configuration is associated to.
  6714  	//
  6715  	// ClusterName is a required field
  6716  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6717  
  6718  	// An object that represents an identity provider configuration.
  6719  	//
  6720  	// IdentityProviderConfig is a required field
  6721  	IdentityProviderConfig *IdentityProviderConfig `locationName:"identityProviderConfig" type:"structure" required:"true"`
  6722  }
  6723  
  6724  // String returns the string representation.
  6725  //
  6726  // API parameter values that are decorated as "sensitive" in the API will not
  6727  // be included in the string output. The member name will be present, but the
  6728  // value will be replaced with "sensitive".
  6729  func (s DescribeIdentityProviderConfigInput) String() string {
  6730  	return awsutil.Prettify(s)
  6731  }
  6732  
  6733  // GoString returns the string representation.
  6734  //
  6735  // API parameter values that are decorated as "sensitive" in the API will not
  6736  // be included in the string output. The member name will be present, but the
  6737  // value will be replaced with "sensitive".
  6738  func (s DescribeIdentityProviderConfigInput) GoString() string {
  6739  	return s.String()
  6740  }
  6741  
  6742  // Validate inspects the fields of the type to determine if they are valid.
  6743  func (s *DescribeIdentityProviderConfigInput) Validate() error {
  6744  	invalidParams := request.ErrInvalidParams{Context: "DescribeIdentityProviderConfigInput"}
  6745  	if s.ClusterName == nil {
  6746  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  6747  	}
  6748  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  6749  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  6750  	}
  6751  	if s.IdentityProviderConfig == nil {
  6752  		invalidParams.Add(request.NewErrParamRequired("IdentityProviderConfig"))
  6753  	}
  6754  	if s.IdentityProviderConfig != nil {
  6755  		if err := s.IdentityProviderConfig.Validate(); err != nil {
  6756  			invalidParams.AddNested("IdentityProviderConfig", err.(request.ErrInvalidParams))
  6757  		}
  6758  	}
  6759  
  6760  	if invalidParams.Len() > 0 {
  6761  		return invalidParams
  6762  	}
  6763  	return nil
  6764  }
  6765  
  6766  // SetClusterName sets the ClusterName field's value.
  6767  func (s *DescribeIdentityProviderConfigInput) SetClusterName(v string) *DescribeIdentityProviderConfigInput {
  6768  	s.ClusterName = &v
  6769  	return s
  6770  }
  6771  
  6772  // SetIdentityProviderConfig sets the IdentityProviderConfig field's value.
  6773  func (s *DescribeIdentityProviderConfigInput) SetIdentityProviderConfig(v *IdentityProviderConfig) *DescribeIdentityProviderConfigInput {
  6774  	s.IdentityProviderConfig = v
  6775  	return s
  6776  }
  6777  
  6778  type DescribeIdentityProviderConfigOutput struct {
  6779  	_ struct{} `type:"structure"`
  6780  
  6781  	// The object that represents an OpenID Connect (OIDC) identity provider configuration.
  6782  	IdentityProviderConfig *IdentityProviderConfigResponse `locationName:"identityProviderConfig" type:"structure"`
  6783  }
  6784  
  6785  // String 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 DescribeIdentityProviderConfigOutput) String() string {
  6791  	return awsutil.Prettify(s)
  6792  }
  6793  
  6794  // GoString returns the string representation.
  6795  //
  6796  // API parameter values that are decorated as "sensitive" in the API will not
  6797  // be included in the string output. The member name will be present, but the
  6798  // value will be replaced with "sensitive".
  6799  func (s DescribeIdentityProviderConfigOutput) GoString() string {
  6800  	return s.String()
  6801  }
  6802  
  6803  // SetIdentityProviderConfig sets the IdentityProviderConfig field's value.
  6804  func (s *DescribeIdentityProviderConfigOutput) SetIdentityProviderConfig(v *IdentityProviderConfigResponse) *DescribeIdentityProviderConfigOutput {
  6805  	s.IdentityProviderConfig = v
  6806  	return s
  6807  }
  6808  
  6809  type DescribeNodegroupInput struct {
  6810  	_ struct{} `type:"structure" nopayload:"true"`
  6811  
  6812  	// The name of the Amazon EKS cluster associated with the node group.
  6813  	//
  6814  	// ClusterName is a required field
  6815  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6816  
  6817  	// The name of the node group to describe.
  6818  	//
  6819  	// NodegroupName is a required field
  6820  	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
  6821  }
  6822  
  6823  // String returns the string representation.
  6824  //
  6825  // API parameter values that are decorated as "sensitive" in the API will not
  6826  // be included in the string output. The member name will be present, but the
  6827  // value will be replaced with "sensitive".
  6828  func (s DescribeNodegroupInput) String() string {
  6829  	return awsutil.Prettify(s)
  6830  }
  6831  
  6832  // GoString returns the string representation.
  6833  //
  6834  // API parameter values that are decorated as "sensitive" in the API will not
  6835  // be included in the string output. The member name will be present, but the
  6836  // value will be replaced with "sensitive".
  6837  func (s DescribeNodegroupInput) GoString() string {
  6838  	return s.String()
  6839  }
  6840  
  6841  // Validate inspects the fields of the type to determine if they are valid.
  6842  func (s *DescribeNodegroupInput) Validate() error {
  6843  	invalidParams := request.ErrInvalidParams{Context: "DescribeNodegroupInput"}
  6844  	if s.ClusterName == nil {
  6845  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  6846  	}
  6847  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  6848  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  6849  	}
  6850  	if s.NodegroupName == nil {
  6851  		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
  6852  	}
  6853  	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
  6854  		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
  6855  	}
  6856  
  6857  	if invalidParams.Len() > 0 {
  6858  		return invalidParams
  6859  	}
  6860  	return nil
  6861  }
  6862  
  6863  // SetClusterName sets the ClusterName field's value.
  6864  func (s *DescribeNodegroupInput) SetClusterName(v string) *DescribeNodegroupInput {
  6865  	s.ClusterName = &v
  6866  	return s
  6867  }
  6868  
  6869  // SetNodegroupName sets the NodegroupName field's value.
  6870  func (s *DescribeNodegroupInput) SetNodegroupName(v string) *DescribeNodegroupInput {
  6871  	s.NodegroupName = &v
  6872  	return s
  6873  }
  6874  
  6875  type DescribeNodegroupOutput struct {
  6876  	_ struct{} `type:"structure"`
  6877  
  6878  	// The full description of your node group.
  6879  	Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"`
  6880  }
  6881  
  6882  // String returns the string representation.
  6883  //
  6884  // API parameter values that are decorated as "sensitive" in the API will not
  6885  // be included in the string output. The member name will be present, but the
  6886  // value will be replaced with "sensitive".
  6887  func (s DescribeNodegroupOutput) String() string {
  6888  	return awsutil.Prettify(s)
  6889  }
  6890  
  6891  // GoString returns the string representation.
  6892  //
  6893  // API parameter values that are decorated as "sensitive" in the API will not
  6894  // be included in the string output. The member name will be present, but the
  6895  // value will be replaced with "sensitive".
  6896  func (s DescribeNodegroupOutput) GoString() string {
  6897  	return s.String()
  6898  }
  6899  
  6900  // SetNodegroup sets the Nodegroup field's value.
  6901  func (s *DescribeNodegroupOutput) SetNodegroup(v *Nodegroup) *DescribeNodegroupOutput {
  6902  	s.Nodegroup = v
  6903  	return s
  6904  }
  6905  
  6906  type DescribeUpdateInput struct {
  6907  	_ struct{} `type:"structure" nopayload:"true"`
  6908  
  6909  	// The name of the add-on. The name must match one of the names returned by
  6910  	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
  6911  	AddonName *string `location:"querystring" locationName:"addonName" type:"string"`
  6912  
  6913  	// The name of the Amazon EKS cluster associated with the update.
  6914  	//
  6915  	// Name is a required field
  6916  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
  6917  
  6918  	// The name of the Amazon EKS node group associated with the update.
  6919  	NodegroupName *string `location:"querystring" locationName:"nodegroupName" type:"string"`
  6920  
  6921  	// The ID of the update to describe.
  6922  	//
  6923  	// UpdateId is a required field
  6924  	UpdateId *string `location:"uri" locationName:"updateId" type:"string" required:"true"`
  6925  }
  6926  
  6927  // String returns the string representation.
  6928  //
  6929  // API parameter values that are decorated as "sensitive" in the API will not
  6930  // be included in the string output. The member name will be present, but the
  6931  // value will be replaced with "sensitive".
  6932  func (s DescribeUpdateInput) String() string {
  6933  	return awsutil.Prettify(s)
  6934  }
  6935  
  6936  // GoString returns the string representation.
  6937  //
  6938  // API parameter values that are decorated as "sensitive" in the API will not
  6939  // be included in the string output. The member name will be present, but the
  6940  // value will be replaced with "sensitive".
  6941  func (s DescribeUpdateInput) GoString() string {
  6942  	return s.String()
  6943  }
  6944  
  6945  // Validate inspects the fields of the type to determine if they are valid.
  6946  func (s *DescribeUpdateInput) Validate() error {
  6947  	invalidParams := request.ErrInvalidParams{Context: "DescribeUpdateInput"}
  6948  	if s.Name == nil {
  6949  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6950  	}
  6951  	if s.Name != nil && len(*s.Name) < 1 {
  6952  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6953  	}
  6954  	if s.UpdateId == nil {
  6955  		invalidParams.Add(request.NewErrParamRequired("UpdateId"))
  6956  	}
  6957  	if s.UpdateId != nil && len(*s.UpdateId) < 1 {
  6958  		invalidParams.Add(request.NewErrParamMinLen("UpdateId", 1))
  6959  	}
  6960  
  6961  	if invalidParams.Len() > 0 {
  6962  		return invalidParams
  6963  	}
  6964  	return nil
  6965  }
  6966  
  6967  // SetAddonName sets the AddonName field's value.
  6968  func (s *DescribeUpdateInput) SetAddonName(v string) *DescribeUpdateInput {
  6969  	s.AddonName = &v
  6970  	return s
  6971  }
  6972  
  6973  // SetName sets the Name field's value.
  6974  func (s *DescribeUpdateInput) SetName(v string) *DescribeUpdateInput {
  6975  	s.Name = &v
  6976  	return s
  6977  }
  6978  
  6979  // SetNodegroupName sets the NodegroupName field's value.
  6980  func (s *DescribeUpdateInput) SetNodegroupName(v string) *DescribeUpdateInput {
  6981  	s.NodegroupName = &v
  6982  	return s
  6983  }
  6984  
  6985  // SetUpdateId sets the UpdateId field's value.
  6986  func (s *DescribeUpdateInput) SetUpdateId(v string) *DescribeUpdateInput {
  6987  	s.UpdateId = &v
  6988  	return s
  6989  }
  6990  
  6991  type DescribeUpdateOutput struct {
  6992  	_ struct{} `type:"structure"`
  6993  
  6994  	// The full description of the specified update.
  6995  	Update *Update `locationName:"update" type:"structure"`
  6996  }
  6997  
  6998  // String returns the string representation.
  6999  //
  7000  // API parameter values that are decorated as "sensitive" in the API will not
  7001  // be included in the string output. The member name will be present, but the
  7002  // value will be replaced with "sensitive".
  7003  func (s DescribeUpdateOutput) String() string {
  7004  	return awsutil.Prettify(s)
  7005  }
  7006  
  7007  // GoString returns the string representation.
  7008  //
  7009  // API parameter values that are decorated as "sensitive" in the API will not
  7010  // be included in the string output. The member name will be present, but the
  7011  // value will be replaced with "sensitive".
  7012  func (s DescribeUpdateOutput) GoString() string {
  7013  	return s.String()
  7014  }
  7015  
  7016  // SetUpdate sets the Update field's value.
  7017  func (s *DescribeUpdateOutput) SetUpdate(v *Update) *DescribeUpdateOutput {
  7018  	s.Update = v
  7019  	return s
  7020  }
  7021  
  7022  type DisassociateIdentityProviderConfigInput struct {
  7023  	_ struct{} `type:"structure"`
  7024  
  7025  	// A unique, case-sensitive identifier that you provide to ensure the idempotency
  7026  	// of the request.
  7027  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  7028  
  7029  	// The name of the cluster to disassociate an identity provider from.
  7030  	//
  7031  	// ClusterName is a required field
  7032  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  7033  
  7034  	// An object that represents an identity provider configuration.
  7035  	//
  7036  	// IdentityProviderConfig is a required field
  7037  	IdentityProviderConfig *IdentityProviderConfig `locationName:"identityProviderConfig" type:"structure" required:"true"`
  7038  }
  7039  
  7040  // String returns the string representation.
  7041  //
  7042  // API parameter values that are decorated as "sensitive" in the API will not
  7043  // be included in the string output. The member name will be present, but the
  7044  // value will be replaced with "sensitive".
  7045  func (s DisassociateIdentityProviderConfigInput) String() string {
  7046  	return awsutil.Prettify(s)
  7047  }
  7048  
  7049  // GoString returns the string representation.
  7050  //
  7051  // API parameter values that are decorated as "sensitive" in the API will not
  7052  // be included in the string output. The member name will be present, but the
  7053  // value will be replaced with "sensitive".
  7054  func (s DisassociateIdentityProviderConfigInput) GoString() string {
  7055  	return s.String()
  7056  }
  7057  
  7058  // Validate inspects the fields of the type to determine if they are valid.
  7059  func (s *DisassociateIdentityProviderConfigInput) Validate() error {
  7060  	invalidParams := request.ErrInvalidParams{Context: "DisassociateIdentityProviderConfigInput"}
  7061  	if s.ClusterName == nil {
  7062  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  7063  	}
  7064  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  7065  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  7066  	}
  7067  	if s.IdentityProviderConfig == nil {
  7068  		invalidParams.Add(request.NewErrParamRequired("IdentityProviderConfig"))
  7069  	}
  7070  	if s.IdentityProviderConfig != nil {
  7071  		if err := s.IdentityProviderConfig.Validate(); err != nil {
  7072  			invalidParams.AddNested("IdentityProviderConfig", err.(request.ErrInvalidParams))
  7073  		}
  7074  	}
  7075  
  7076  	if invalidParams.Len() > 0 {
  7077  		return invalidParams
  7078  	}
  7079  	return nil
  7080  }
  7081  
  7082  // SetClientRequestToken sets the ClientRequestToken field's value.
  7083  func (s *DisassociateIdentityProviderConfigInput) SetClientRequestToken(v string) *DisassociateIdentityProviderConfigInput {
  7084  	s.ClientRequestToken = &v
  7085  	return s
  7086  }
  7087  
  7088  // SetClusterName sets the ClusterName field's value.
  7089  func (s *DisassociateIdentityProviderConfigInput) SetClusterName(v string) *DisassociateIdentityProviderConfigInput {
  7090  	s.ClusterName = &v
  7091  	return s
  7092  }
  7093  
  7094  // SetIdentityProviderConfig sets the IdentityProviderConfig field's value.
  7095  func (s *DisassociateIdentityProviderConfigInput) SetIdentityProviderConfig(v *IdentityProviderConfig) *DisassociateIdentityProviderConfigInput {
  7096  	s.IdentityProviderConfig = v
  7097  	return s
  7098  }
  7099  
  7100  type DisassociateIdentityProviderConfigOutput struct {
  7101  	_ struct{} `type:"structure"`
  7102  
  7103  	// An object representing an asynchronous update.
  7104  	Update *Update `locationName:"update" type:"structure"`
  7105  }
  7106  
  7107  // String returns the string representation.
  7108  //
  7109  // API parameter values that are decorated as "sensitive" in the API will not
  7110  // be included in the string output. The member name will be present, but the
  7111  // value will be replaced with "sensitive".
  7112  func (s DisassociateIdentityProviderConfigOutput) String() string {
  7113  	return awsutil.Prettify(s)
  7114  }
  7115  
  7116  // GoString returns the string representation.
  7117  //
  7118  // API parameter values that are decorated as "sensitive" in the API will not
  7119  // be included in the string output. The member name will be present, but the
  7120  // value will be replaced with "sensitive".
  7121  func (s DisassociateIdentityProviderConfigOutput) GoString() string {
  7122  	return s.String()
  7123  }
  7124  
  7125  // SetUpdate sets the Update field's value.
  7126  func (s *DisassociateIdentityProviderConfigOutput) SetUpdate(v *Update) *DisassociateIdentityProviderConfigOutput {
  7127  	s.Update = v
  7128  	return s
  7129  }
  7130  
  7131  // The encryption configuration for the cluster.
  7132  type EncryptionConfig struct {
  7133  	_ struct{} `type:"structure"`
  7134  
  7135  	// Key Management Service (KMS) key. Either the ARN or the alias can be used.
  7136  	Provider *Provider `locationName:"provider" type:"structure"`
  7137  
  7138  	// Specifies the resources to be encrypted. The only supported value is "secrets".
  7139  	Resources []*string `locationName:"resources" type:"list"`
  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 EncryptionConfig) 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 EncryptionConfig) GoString() string {
  7157  	return s.String()
  7158  }
  7159  
  7160  // SetProvider sets the Provider field's value.
  7161  func (s *EncryptionConfig) SetProvider(v *Provider) *EncryptionConfig {
  7162  	s.Provider = v
  7163  	return s
  7164  }
  7165  
  7166  // SetResources sets the Resources field's value.
  7167  func (s *EncryptionConfig) SetResources(v []*string) *EncryptionConfig {
  7168  	s.Resources = v
  7169  	return s
  7170  }
  7171  
  7172  // An object representing an error when an asynchronous operation fails.
  7173  type ErrorDetail struct {
  7174  	_ struct{} `type:"structure"`
  7175  
  7176  	// A brief description of the error.
  7177  	//
  7178  	//    * SubnetNotFound: We couldn't find one of the subnets associated with
  7179  	//    the cluster.
  7180  	//
  7181  	//    * SecurityGroupNotFound: We couldn't find one of the security groups associated
  7182  	//    with the cluster.
  7183  	//
  7184  	//    * EniLimitReached: You have reached the elastic network interface limit
  7185  	//    for your account.
  7186  	//
  7187  	//    * IpNotAvailable: A subnet associated with the cluster doesn't have any
  7188  	//    free IP addresses.
  7189  	//
  7190  	//    * AccessDenied: You don't have permissions to perform the specified operation.
  7191  	//
  7192  	//    * OperationNotPermitted: The service role associated with the cluster
  7193  	//    doesn't have the required access permissions for Amazon EKS.
  7194  	//
  7195  	//    * VpcIdNotFound: We couldn't find the VPC associated with the cluster.
  7196  	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
  7197  
  7198  	// A more complete description of the error.
  7199  	ErrorMessage *string `locationName:"errorMessage" type:"string"`
  7200  
  7201  	// An optional field that contains the resource IDs associated with the error.
  7202  	ResourceIds []*string `locationName:"resourceIds" type:"list"`
  7203  }
  7204  
  7205  // String returns the string representation.
  7206  //
  7207  // API parameter values that are decorated as "sensitive" in the API will not
  7208  // be included in the string output. The member name will be present, but the
  7209  // value will be replaced with "sensitive".
  7210  func (s ErrorDetail) String() string {
  7211  	return awsutil.Prettify(s)
  7212  }
  7213  
  7214  // GoString returns the string representation.
  7215  //
  7216  // API parameter values that are decorated as "sensitive" in the API will not
  7217  // be included in the string output. The member name will be present, but the
  7218  // value will be replaced with "sensitive".
  7219  func (s ErrorDetail) GoString() string {
  7220  	return s.String()
  7221  }
  7222  
  7223  // SetErrorCode sets the ErrorCode field's value.
  7224  func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail {
  7225  	s.ErrorCode = &v
  7226  	return s
  7227  }
  7228  
  7229  // SetErrorMessage sets the ErrorMessage field's value.
  7230  func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail {
  7231  	s.ErrorMessage = &v
  7232  	return s
  7233  }
  7234  
  7235  // SetResourceIds sets the ResourceIds field's value.
  7236  func (s *ErrorDetail) SetResourceIds(v []*string) *ErrorDetail {
  7237  	s.ResourceIds = v
  7238  	return s
  7239  }
  7240  
  7241  // An object representing an Fargate profile.
  7242  type FargateProfile struct {
  7243  	_ struct{} `type:"structure"`
  7244  
  7245  	// The name of the Amazon EKS cluster that the Fargate profile belongs to.
  7246  	ClusterName *string `locationName:"clusterName" type:"string"`
  7247  
  7248  	// The Unix epoch timestamp in seconds for when the Fargate profile was created.
  7249  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
  7250  
  7251  	// The full Amazon Resource Name (ARN) of the Fargate profile.
  7252  	FargateProfileArn *string `locationName:"fargateProfileArn" type:"string"`
  7253  
  7254  	// The name of the Fargate profile.
  7255  	FargateProfileName *string `locationName:"fargateProfileName" type:"string"`
  7256  
  7257  	// The Amazon Resource Name (ARN) of the pod execution role to use for pods
  7258  	// that match the selectors in the Fargate profile. For more information, see
  7259  	// Pod Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html)
  7260  	// in the Amazon EKS User Guide.
  7261  	PodExecutionRoleArn *string `locationName:"podExecutionRoleArn" type:"string"`
  7262  
  7263  	// The selectors to match for pods to use this Fargate profile.
  7264  	Selectors []*FargateProfileSelector `locationName:"selectors" type:"list"`
  7265  
  7266  	// The current status of the Fargate profile.
  7267  	Status *string `locationName:"status" type:"string" enum:"FargateProfileStatus"`
  7268  
  7269  	// The IDs of subnets to launch pods into.
  7270  	Subnets []*string `locationName:"subnets" type:"list"`
  7271  
  7272  	// The metadata applied to the Fargate profile to assist with categorization
  7273  	// and organization. Each tag consists of a key and an optional value, both
  7274  	// of which you define. Fargate profile tags do not propagate to any other resources
  7275  	// associated with the Fargate profile, such as the pods that are scheduled
  7276  	// with it.
  7277  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  7278  }
  7279  
  7280  // String returns the string representation.
  7281  //
  7282  // API parameter values that are decorated as "sensitive" in the API will not
  7283  // be included in the string output. The member name will be present, but the
  7284  // value will be replaced with "sensitive".
  7285  func (s FargateProfile) String() string {
  7286  	return awsutil.Prettify(s)
  7287  }
  7288  
  7289  // GoString returns the string representation.
  7290  //
  7291  // API parameter values that are decorated as "sensitive" in the API will not
  7292  // be included in the string output. The member name will be present, but the
  7293  // value will be replaced with "sensitive".
  7294  func (s FargateProfile) GoString() string {
  7295  	return s.String()
  7296  }
  7297  
  7298  // SetClusterName sets the ClusterName field's value.
  7299  func (s *FargateProfile) SetClusterName(v string) *FargateProfile {
  7300  	s.ClusterName = &v
  7301  	return s
  7302  }
  7303  
  7304  // SetCreatedAt sets the CreatedAt field's value.
  7305  func (s *FargateProfile) SetCreatedAt(v time.Time) *FargateProfile {
  7306  	s.CreatedAt = &v
  7307  	return s
  7308  }
  7309  
  7310  // SetFargateProfileArn sets the FargateProfileArn field's value.
  7311  func (s *FargateProfile) SetFargateProfileArn(v string) *FargateProfile {
  7312  	s.FargateProfileArn = &v
  7313  	return s
  7314  }
  7315  
  7316  // SetFargateProfileName sets the FargateProfileName field's value.
  7317  func (s *FargateProfile) SetFargateProfileName(v string) *FargateProfile {
  7318  	s.FargateProfileName = &v
  7319  	return s
  7320  }
  7321  
  7322  // SetPodExecutionRoleArn sets the PodExecutionRoleArn field's value.
  7323  func (s *FargateProfile) SetPodExecutionRoleArn(v string) *FargateProfile {
  7324  	s.PodExecutionRoleArn = &v
  7325  	return s
  7326  }
  7327  
  7328  // SetSelectors sets the Selectors field's value.
  7329  func (s *FargateProfile) SetSelectors(v []*FargateProfileSelector) *FargateProfile {
  7330  	s.Selectors = v
  7331  	return s
  7332  }
  7333  
  7334  // SetStatus sets the Status field's value.
  7335  func (s *FargateProfile) SetStatus(v string) *FargateProfile {
  7336  	s.Status = &v
  7337  	return s
  7338  }
  7339  
  7340  // SetSubnets sets the Subnets field's value.
  7341  func (s *FargateProfile) SetSubnets(v []*string) *FargateProfile {
  7342  	s.Subnets = v
  7343  	return s
  7344  }
  7345  
  7346  // SetTags sets the Tags field's value.
  7347  func (s *FargateProfile) SetTags(v map[string]*string) *FargateProfile {
  7348  	s.Tags = v
  7349  	return s
  7350  }
  7351  
  7352  // An object representing an Fargate profile selector.
  7353  type FargateProfileSelector struct {
  7354  	_ struct{} `type:"structure"`
  7355  
  7356  	// The Kubernetes labels that the selector should match. A pod must contain
  7357  	// all of the labels that are specified in the selector for it to be considered
  7358  	// a match.
  7359  	Labels map[string]*string `locationName:"labels" type:"map"`
  7360  
  7361  	// The Kubernetes namespace that the selector should match.
  7362  	Namespace *string `locationName:"namespace" type:"string"`
  7363  }
  7364  
  7365  // String returns the string representation.
  7366  //
  7367  // API parameter values that are decorated as "sensitive" in the API will not
  7368  // be included in the string output. The member name will be present, but the
  7369  // value will be replaced with "sensitive".
  7370  func (s FargateProfileSelector) String() string {
  7371  	return awsutil.Prettify(s)
  7372  }
  7373  
  7374  // GoString returns the string representation.
  7375  //
  7376  // API parameter values that are decorated as "sensitive" in the API will not
  7377  // be included in the string output. The member name will be present, but the
  7378  // value will be replaced with "sensitive".
  7379  func (s FargateProfileSelector) GoString() string {
  7380  	return s.String()
  7381  }
  7382  
  7383  // SetLabels sets the Labels field's value.
  7384  func (s *FargateProfileSelector) SetLabels(v map[string]*string) *FargateProfileSelector {
  7385  	s.Labels = v
  7386  	return s
  7387  }
  7388  
  7389  // SetNamespace sets the Namespace field's value.
  7390  func (s *FargateProfileSelector) SetNamespace(v string) *FargateProfileSelector {
  7391  	s.Namespace = &v
  7392  	return s
  7393  }
  7394  
  7395  // An object representing an identity provider.
  7396  type Identity struct {
  7397  	_ struct{} `type:"structure"`
  7398  
  7399  	// An object representing the OpenID Connect (https://openid.net/connect/) identity
  7400  	// provider information.
  7401  	Oidc *OIDC `locationName:"oidc" type:"structure"`
  7402  }
  7403  
  7404  // String returns the string representation.
  7405  //
  7406  // API parameter values that are decorated as "sensitive" in the API will not
  7407  // be included in the string output. The member name will be present, but the
  7408  // value will be replaced with "sensitive".
  7409  func (s Identity) String() string {
  7410  	return awsutil.Prettify(s)
  7411  }
  7412  
  7413  // GoString returns the string representation.
  7414  //
  7415  // API parameter values that are decorated as "sensitive" in the API will not
  7416  // be included in the string output. The member name will be present, but the
  7417  // value will be replaced with "sensitive".
  7418  func (s Identity) GoString() string {
  7419  	return s.String()
  7420  }
  7421  
  7422  // SetOidc sets the Oidc field's value.
  7423  func (s *Identity) SetOidc(v *OIDC) *Identity {
  7424  	s.Oidc = v
  7425  	return s
  7426  }
  7427  
  7428  // An object representing an identity provider configuration.
  7429  type IdentityProviderConfig struct {
  7430  	_ struct{} `type:"structure"`
  7431  
  7432  	// The name of the identity provider configuration.
  7433  	//
  7434  	// Name is a required field
  7435  	Name *string `locationName:"name" type:"string" required:"true"`
  7436  
  7437  	// The type of the identity provider configuration.
  7438  	//
  7439  	// Type is a required field
  7440  	Type *string `locationName:"type" type:"string" required:"true"`
  7441  }
  7442  
  7443  // String returns the string representation.
  7444  //
  7445  // API parameter values that are decorated as "sensitive" in the API will not
  7446  // be included in the string output. The member name will be present, but the
  7447  // value will be replaced with "sensitive".
  7448  func (s IdentityProviderConfig) String() string {
  7449  	return awsutil.Prettify(s)
  7450  }
  7451  
  7452  // GoString returns the string representation.
  7453  //
  7454  // API parameter values that are decorated as "sensitive" in the API will not
  7455  // be included in the string output. The member name will be present, but the
  7456  // value will be replaced with "sensitive".
  7457  func (s IdentityProviderConfig) GoString() string {
  7458  	return s.String()
  7459  }
  7460  
  7461  // Validate inspects the fields of the type to determine if they are valid.
  7462  func (s *IdentityProviderConfig) Validate() error {
  7463  	invalidParams := request.ErrInvalidParams{Context: "IdentityProviderConfig"}
  7464  	if s.Name == nil {
  7465  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7466  	}
  7467  	if s.Type == nil {
  7468  		invalidParams.Add(request.NewErrParamRequired("Type"))
  7469  	}
  7470  
  7471  	if invalidParams.Len() > 0 {
  7472  		return invalidParams
  7473  	}
  7474  	return nil
  7475  }
  7476  
  7477  // SetName sets the Name field's value.
  7478  func (s *IdentityProviderConfig) SetName(v string) *IdentityProviderConfig {
  7479  	s.Name = &v
  7480  	return s
  7481  }
  7482  
  7483  // SetType sets the Type field's value.
  7484  func (s *IdentityProviderConfig) SetType(v string) *IdentityProviderConfig {
  7485  	s.Type = &v
  7486  	return s
  7487  }
  7488  
  7489  // The full description of your identity configuration.
  7490  type IdentityProviderConfigResponse struct {
  7491  	_ struct{} `type:"structure"`
  7492  
  7493  	// An object that represents an OpenID Connect (OIDC) identity provider configuration.
  7494  	Oidc *OidcIdentityProviderConfig `locationName:"oidc" type:"structure"`
  7495  }
  7496  
  7497  // String returns the string representation.
  7498  //
  7499  // API parameter values that are decorated as "sensitive" in the API will not
  7500  // be included in the string output. The member name will be present, but the
  7501  // value will be replaced with "sensitive".
  7502  func (s IdentityProviderConfigResponse) String() string {
  7503  	return awsutil.Prettify(s)
  7504  }
  7505  
  7506  // GoString returns the string representation.
  7507  //
  7508  // API parameter values that are decorated as "sensitive" in the API will not
  7509  // be included in the string output. The member name will be present, but the
  7510  // value will be replaced with "sensitive".
  7511  func (s IdentityProviderConfigResponse) GoString() string {
  7512  	return s.String()
  7513  }
  7514  
  7515  // SetOidc sets the Oidc field's value.
  7516  func (s *IdentityProviderConfigResponse) SetOidc(v *OidcIdentityProviderConfig) *IdentityProviderConfigResponse {
  7517  	s.Oidc = v
  7518  	return s
  7519  }
  7520  
  7521  // The specified parameter is invalid. Review the available parameters for the
  7522  // API request.
  7523  type InvalidParameterException struct {
  7524  	_            struct{}                  `type:"structure"`
  7525  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7526  
  7527  	AddonName *string `locationName:"addonName" type:"string"`
  7528  
  7529  	// The Amazon EKS cluster associated with the exception.
  7530  	ClusterName *string `locationName:"clusterName" type:"string"`
  7531  
  7532  	// The Fargate profile associated with the exception.
  7533  	FargateProfileName *string `locationName:"fargateProfileName" type:"string"`
  7534  
  7535  	Message_ *string `locationName:"message" type:"string"`
  7536  
  7537  	// The Amazon EKS managed node group associated with the exception.
  7538  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
  7539  }
  7540  
  7541  // String returns the string representation.
  7542  //
  7543  // API parameter values that are decorated as "sensitive" in the API will not
  7544  // be included in the string output. The member name will be present, but the
  7545  // value will be replaced with "sensitive".
  7546  func (s InvalidParameterException) String() string {
  7547  	return awsutil.Prettify(s)
  7548  }
  7549  
  7550  // GoString returns the string representation.
  7551  //
  7552  // API parameter values that are decorated as "sensitive" in the API will not
  7553  // be included in the string output. The member name will be present, but the
  7554  // value will be replaced with "sensitive".
  7555  func (s InvalidParameterException) GoString() string {
  7556  	return s.String()
  7557  }
  7558  
  7559  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
  7560  	return &InvalidParameterException{
  7561  		RespMetadata: v,
  7562  	}
  7563  }
  7564  
  7565  // Code returns the exception type name.
  7566  func (s *InvalidParameterException) Code() string {
  7567  	return "InvalidParameterException"
  7568  }
  7569  
  7570  // Message returns the exception's message.
  7571  func (s *InvalidParameterException) Message() string {
  7572  	if s.Message_ != nil {
  7573  		return *s.Message_
  7574  	}
  7575  	return ""
  7576  }
  7577  
  7578  // OrigErr always returns nil, satisfies awserr.Error interface.
  7579  func (s *InvalidParameterException) OrigErr() error {
  7580  	return nil
  7581  }
  7582  
  7583  func (s *InvalidParameterException) Error() string {
  7584  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  7585  }
  7586  
  7587  // Status code returns the HTTP status code for the request's response error.
  7588  func (s *InvalidParameterException) StatusCode() int {
  7589  	return s.RespMetadata.StatusCode
  7590  }
  7591  
  7592  // RequestID returns the service's response RequestID for request.
  7593  func (s *InvalidParameterException) RequestID() string {
  7594  	return s.RespMetadata.RequestID
  7595  }
  7596  
  7597  // The request is invalid given the state of the cluster. Check the state of
  7598  // the cluster and the associated operations.
  7599  type InvalidRequestException struct {
  7600  	_            struct{}                  `type:"structure"`
  7601  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7602  
  7603  	AddonName *string `locationName:"addonName" type:"string"`
  7604  
  7605  	// The Amazon EKS cluster associated with the exception.
  7606  	ClusterName *string `locationName:"clusterName" type:"string"`
  7607  
  7608  	Message_ *string `locationName:"message" type:"string"`
  7609  
  7610  	// The Amazon EKS managed node group associated with the exception.
  7611  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
  7612  }
  7613  
  7614  // String returns the string representation.
  7615  //
  7616  // API parameter values that are decorated as "sensitive" in the API will not
  7617  // be included in the string output. The member name will be present, but the
  7618  // value will be replaced with "sensitive".
  7619  func (s InvalidRequestException) String() string {
  7620  	return awsutil.Prettify(s)
  7621  }
  7622  
  7623  // GoString returns the string representation.
  7624  //
  7625  // API parameter values that are decorated as "sensitive" in the API will not
  7626  // be included in the string output. The member name will be present, but the
  7627  // value will be replaced with "sensitive".
  7628  func (s InvalidRequestException) GoString() string {
  7629  	return s.String()
  7630  }
  7631  
  7632  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
  7633  	return &InvalidRequestException{
  7634  		RespMetadata: v,
  7635  	}
  7636  }
  7637  
  7638  // Code returns the exception type name.
  7639  func (s *InvalidRequestException) Code() string {
  7640  	return "InvalidRequestException"
  7641  }
  7642  
  7643  // Message returns the exception's message.
  7644  func (s *InvalidRequestException) Message() string {
  7645  	if s.Message_ != nil {
  7646  		return *s.Message_
  7647  	}
  7648  	return ""
  7649  }
  7650  
  7651  // OrigErr always returns nil, satisfies awserr.Error interface.
  7652  func (s *InvalidRequestException) OrigErr() error {
  7653  	return nil
  7654  }
  7655  
  7656  func (s *InvalidRequestException) Error() string {
  7657  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  7658  }
  7659  
  7660  // Status code returns the HTTP status code for the request's response error.
  7661  func (s *InvalidRequestException) StatusCode() int {
  7662  	return s.RespMetadata.StatusCode
  7663  }
  7664  
  7665  // RequestID returns the service's response RequestID for request.
  7666  func (s *InvalidRequestException) RequestID() string {
  7667  	return s.RespMetadata.RequestID
  7668  }
  7669  
  7670  // An object representing an issue with an Amazon EKS resource.
  7671  type Issue struct {
  7672  	_ struct{} `type:"structure"`
  7673  
  7674  	// A brief description of the error.
  7675  	//
  7676  	//    * AccessDenied: Amazon EKS or one or more of your managed nodes is failing
  7677  	//    to authenticate or authorize with your Kubernetes cluster API server.
  7678  	//
  7679  	//    * AsgInstanceLaunchFailures: Your Auto Scaling group is experiencing failures
  7680  	//    while attempting to launch instances.
  7681  	//
  7682  	//    * AutoScalingGroupNotFound: We couldn't find the Auto Scaling group associated
  7683  	//    with the managed node group. You may be able to recreate an Auto Scaling
  7684  	//    group with the same settings to recover.
  7685  	//
  7686  	//    * ClusterUnreachable: Amazon EKS or one or more of your managed nodes
  7687  	//    is unable to to communicate with your Kubernetes cluster API server. This
  7688  	//    can happen if there are network disruptions or if API servers are timing
  7689  	//    out processing requests.
  7690  	//
  7691  	//    * Ec2LaunchTemplateNotFound: We couldn't find the Amazon EC2 launch template
  7692  	//    for your managed node group. You may be able to recreate a launch template
  7693  	//    with the same settings to recover.
  7694  	//
  7695  	//    * Ec2LaunchTemplateVersionMismatch: The Amazon EC2 launch template version
  7696  	//    for your managed node group does not match the version that Amazon EKS
  7697  	//    created. You may be able to revert to the version that Amazon EKS created
  7698  	//    to recover.
  7699  	//
  7700  	//    * Ec2SecurityGroupDeletionFailure: We could not delete the remote access
  7701  	//    security group for your managed node group. Remove any dependencies from
  7702  	//    the security group.
  7703  	//
  7704  	//    * Ec2SecurityGroupNotFound: We couldn't find the cluster security group
  7705  	//    for the cluster. You must recreate your cluster.
  7706  	//
  7707  	//    * Ec2SubnetInvalidConfiguration: One or more Amazon EC2 subnets specified
  7708  	//    for a node group do not automatically assign public IP addresses to instances
  7709  	//    launched into it. If you want your instances to be assigned a public IP
  7710  	//    address, then you need to enable the auto-assign public IP address setting
  7711  	//    for the subnet. See Modifying the public IPv4 addressing attribute for
  7712  	//    your subnet (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip)
  7713  	//    in the Amazon VPC User Guide.
  7714  	//
  7715  	//    * IamInstanceProfileNotFound: We couldn't find the IAM instance profile
  7716  	//    for your managed node group. You may be able to recreate an instance profile
  7717  	//    with the same settings to recover.
  7718  	//
  7719  	//    * IamNodeRoleNotFound: We couldn't find the IAM role for your managed
  7720  	//    node group. You may be able to recreate an IAM role with the same settings
  7721  	//    to recover.
  7722  	//
  7723  	//    * InstanceLimitExceeded: Your Amazon Web Services account is unable to
  7724  	//    launch any more instances of the specified instance type. You may be able
  7725  	//    to request an Amazon EC2 instance limit increase to recover.
  7726  	//
  7727  	//    * InsufficientFreeAddresses: One or more of the subnets associated with
  7728  	//    your managed node group does not have enough available IP addresses for
  7729  	//    new nodes.
  7730  	//
  7731  	//    * InternalFailure: These errors are usually caused by an Amazon EKS server-side
  7732  	//    issue.
  7733  	//
  7734  	//    * NodeCreationFailure: Your launched instances are unable to register
  7735  	//    with your Amazon EKS cluster. Common causes of this failure are insufficient
  7736  	//    node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html)
  7737  	//    permissions or lack of outbound internet access for the nodes.
  7738  	Code *string `locationName:"code" type:"string" enum:"NodegroupIssueCode"`
  7739  
  7740  	// The error message associated with the issue.
  7741  	Message *string `locationName:"message" type:"string"`
  7742  
  7743  	// The Amazon Web Services resources that are afflicted by this issue.
  7744  	ResourceIds []*string `locationName:"resourceIds" type:"list"`
  7745  }
  7746  
  7747  // String returns the string representation.
  7748  //
  7749  // API parameter values that are decorated as "sensitive" in the API will not
  7750  // be included in the string output. The member name will be present, but the
  7751  // value will be replaced with "sensitive".
  7752  func (s Issue) String() string {
  7753  	return awsutil.Prettify(s)
  7754  }
  7755  
  7756  // GoString returns the string representation.
  7757  //
  7758  // API parameter values that are decorated as "sensitive" in the API will not
  7759  // be included in the string output. The member name will be present, but the
  7760  // value will be replaced with "sensitive".
  7761  func (s Issue) GoString() string {
  7762  	return s.String()
  7763  }
  7764  
  7765  // SetCode sets the Code field's value.
  7766  func (s *Issue) SetCode(v string) *Issue {
  7767  	s.Code = &v
  7768  	return s
  7769  }
  7770  
  7771  // SetMessage sets the Message field's value.
  7772  func (s *Issue) SetMessage(v string) *Issue {
  7773  	s.Message = &v
  7774  	return s
  7775  }
  7776  
  7777  // SetResourceIds sets the ResourceIds field's value.
  7778  func (s *Issue) SetResourceIds(v []*string) *Issue {
  7779  	s.ResourceIds = v
  7780  	return s
  7781  }
  7782  
  7783  // The Kubernetes network configuration for the cluster.
  7784  type KubernetesNetworkConfigRequest struct {
  7785  	_ struct{} `type:"structure"`
  7786  
  7787  	// The CIDR block to assign Kubernetes service IP addresses from. If you don't
  7788  	// specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16
  7789  	// or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that
  7790  	// does not overlap with resources in other networks that are peered or connected
  7791  	// to your VPC. The block must meet the following requirements:
  7792  	//
  7793  	//    * Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0.0/12,
  7794  	//    or 192.168.0.0/16.
  7795  	//
  7796  	//    * Doesn't overlap with any CIDR block assigned to the VPC that you selected
  7797  	//    for VPC.
  7798  	//
  7799  	//    * Between /24 and /12.
  7800  	//
  7801  	// You can only specify a custom CIDR block when you create a cluster and can't
  7802  	// change this value once the cluster is created.
  7803  	ServiceIpv4Cidr *string `locationName:"serviceIpv4Cidr" type:"string"`
  7804  }
  7805  
  7806  // String returns the string representation.
  7807  //
  7808  // API parameter values that are decorated as "sensitive" in the API will not
  7809  // be included in the string output. The member name will be present, but the
  7810  // value will be replaced with "sensitive".
  7811  func (s KubernetesNetworkConfigRequest) String() string {
  7812  	return awsutil.Prettify(s)
  7813  }
  7814  
  7815  // GoString returns the string representation.
  7816  //
  7817  // API parameter values that are decorated as "sensitive" in the API will not
  7818  // be included in the string output. The member name will be present, but the
  7819  // value will be replaced with "sensitive".
  7820  func (s KubernetesNetworkConfigRequest) GoString() string {
  7821  	return s.String()
  7822  }
  7823  
  7824  // SetServiceIpv4Cidr sets the ServiceIpv4Cidr field's value.
  7825  func (s *KubernetesNetworkConfigRequest) SetServiceIpv4Cidr(v string) *KubernetesNetworkConfigRequest {
  7826  	s.ServiceIpv4Cidr = &v
  7827  	return s
  7828  }
  7829  
  7830  // The Kubernetes network configuration for the cluster.
  7831  type KubernetesNetworkConfigResponse struct {
  7832  	_ struct{} `type:"structure"`
  7833  
  7834  	// The CIDR block that Kubernetes service IP addresses are assigned from. If
  7835  	// you didn't specify a CIDR block when you created the cluster, then Kubernetes
  7836  	// assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks.
  7837  	// If this was specified, then it was specified when the cluster was created
  7838  	// and it cannot be changed.
  7839  	ServiceIpv4Cidr *string `locationName:"serviceIpv4Cidr" type:"string"`
  7840  }
  7841  
  7842  // String returns the string representation.
  7843  //
  7844  // API parameter values that are decorated as "sensitive" in the API will not
  7845  // be included in the string output. The member name will be present, but the
  7846  // value will be replaced with "sensitive".
  7847  func (s KubernetesNetworkConfigResponse) String() string {
  7848  	return awsutil.Prettify(s)
  7849  }
  7850  
  7851  // GoString returns the string representation.
  7852  //
  7853  // API parameter values that are decorated as "sensitive" in the API will not
  7854  // be included in the string output. The member name will be present, but the
  7855  // value will be replaced with "sensitive".
  7856  func (s KubernetesNetworkConfigResponse) GoString() string {
  7857  	return s.String()
  7858  }
  7859  
  7860  // SetServiceIpv4Cidr sets the ServiceIpv4Cidr field's value.
  7861  func (s *KubernetesNetworkConfigResponse) SetServiceIpv4Cidr(v string) *KubernetesNetworkConfigResponse {
  7862  	s.ServiceIpv4Cidr = &v
  7863  	return s
  7864  }
  7865  
  7866  // An object representing a node group launch template specification. The launch
  7867  // template cannot include SubnetId (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html),
  7868  // IamInstanceProfile (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html),
  7869  // RequestSpotInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html),
  7870  // HibernationOptions (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html),
  7871  // or TerminateInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html),
  7872  // or the node group deployment or update will fail. For more information about
  7873  // launch templates, see CreateLaunchTemplate (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html)
  7874  // in the Amazon EC2 API Reference. For more information about using launch
  7875  // templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
  7876  // in the Amazon EKS User Guide.
  7877  //
  7878  // Specify either name or id, but not both.
  7879  type LaunchTemplateSpecification struct {
  7880  	_ struct{} `type:"structure"`
  7881  
  7882  	// The ID of the launch template.
  7883  	Id *string `locationName:"id" type:"string"`
  7884  
  7885  	// The name of the launch template.
  7886  	Name *string `locationName:"name" type:"string"`
  7887  
  7888  	// The version of the launch template to use. If no version is specified, then
  7889  	// the template's default version is used.
  7890  	Version *string `locationName:"version" type:"string"`
  7891  }
  7892  
  7893  // String returns the string representation.
  7894  //
  7895  // API parameter values that are decorated as "sensitive" in the API will not
  7896  // be included in the string output. The member name will be present, but the
  7897  // value will be replaced with "sensitive".
  7898  func (s LaunchTemplateSpecification) String() string {
  7899  	return awsutil.Prettify(s)
  7900  }
  7901  
  7902  // GoString returns the string representation.
  7903  //
  7904  // API parameter values that are decorated as "sensitive" in the API will not
  7905  // be included in the string output. The member name will be present, but the
  7906  // value will be replaced with "sensitive".
  7907  func (s LaunchTemplateSpecification) GoString() string {
  7908  	return s.String()
  7909  }
  7910  
  7911  // SetId sets the Id field's value.
  7912  func (s *LaunchTemplateSpecification) SetId(v string) *LaunchTemplateSpecification {
  7913  	s.Id = &v
  7914  	return s
  7915  }
  7916  
  7917  // SetName sets the Name field's value.
  7918  func (s *LaunchTemplateSpecification) SetName(v string) *LaunchTemplateSpecification {
  7919  	s.Name = &v
  7920  	return s
  7921  }
  7922  
  7923  // SetVersion sets the Version field's value.
  7924  func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification {
  7925  	s.Version = &v
  7926  	return s
  7927  }
  7928  
  7929  type ListAddonsInput struct {
  7930  	_ struct{} `type:"structure" nopayload:"true"`
  7931  
  7932  	// The name of the cluster.
  7933  	//
  7934  	// ClusterName is a required field
  7935  	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  7936  
  7937  	// The maximum number of add-on results returned by ListAddonsRequest in paginated
  7938  	// output. When you use this parameter, ListAddonsRequest returns only maxResults
  7939  	// results in a single page along with a nextToken response element. You can
  7940  	// see the remaining results of the initial request by sending another ListAddonsRequest
  7941  	// request with the returned nextToken value. This value can be between 1 and
  7942  	// 100. If you don't use this parameter, ListAddonsRequest returns up to 100
  7943  	// results and a nextToken value, if applicable.
  7944  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7945  
  7946  	// The nextToken value returned from a previous paginated ListAddonsRequest
  7947  	// where maxResults was used and the results exceeded the value of that parameter.
  7948  	// Pagination continues from the end of the previous results that returned the
  7949  	// nextToken value.
  7950  	//
  7951  	// This token should be treated as an opaque identifier that is used only to
  7952  	// retrieve the next items in a list and not for other programmatic purposes.
  7953  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7954  }
  7955  
  7956  // String returns the string representation.
  7957  //
  7958  // API parameter values that are decorated as "sensitive" in the API will not
  7959  // be included in the string output. The member name will be present, but the
  7960  // value will be replaced with "sensitive".
  7961  func (s ListAddonsInput) String() string {
  7962  	return awsutil.Prettify(s)
  7963  }
  7964  
  7965  // GoString returns the string representation.
  7966  //
  7967  // API parameter values that are decorated as "sensitive" in the API will not
  7968  // be included in the string output. The member name will be present, but the
  7969  // value will be replaced with "sensitive".
  7970  func (s ListAddonsInput) GoString() string {
  7971  	return s.String()
  7972  }
  7973  
  7974  // Validate inspects the fields of the type to determine if they are valid.
  7975  func (s *ListAddonsInput) Validate() error {
  7976  	invalidParams := request.ErrInvalidParams{Context: "ListAddonsInput"}
  7977  	if s.ClusterName == nil {
  7978  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  7979  	}
  7980  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  7981  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  7982  	}
  7983  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7984  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7985  	}
  7986  
  7987  	if invalidParams.Len() > 0 {
  7988  		return invalidParams
  7989  	}
  7990  	return nil
  7991  }
  7992  
  7993  // SetClusterName sets the ClusterName field's value.
  7994  func (s *ListAddonsInput) SetClusterName(v string) *ListAddonsInput {
  7995  	s.ClusterName = &v
  7996  	return s
  7997  }
  7998  
  7999  // SetMaxResults sets the MaxResults field's value.
  8000  func (s *ListAddonsInput) SetMaxResults(v int64) *ListAddonsInput {
  8001  	s.MaxResults = &v
  8002  	return s
  8003  }
  8004  
  8005  // SetNextToken sets the NextToken field's value.
  8006  func (s *ListAddonsInput) SetNextToken(v string) *ListAddonsInput {
  8007  	s.NextToken = &v
  8008  	return s
  8009  }
  8010  
  8011  type ListAddonsOutput struct {
  8012  	_ struct{} `type:"structure"`
  8013  
  8014  	// A list of available add-ons.
  8015  	Addons []*string `locationName:"addons" type:"list"`
  8016  
  8017  	// The nextToken value returned from a previous paginated ListAddonsResponse
  8018  	// where maxResults was used and the results exceeded the value of that parameter.
  8019  	// Pagination continues from the end of the previous results that returned the
  8020  	// nextToken value.
  8021  	//
  8022  	// This token should be treated as an opaque identifier that is used only to
  8023  	// retrieve the next items in a list and not for other programmatic purposes.
  8024  	NextToken *string `locationName:"nextToken" type:"string"`
  8025  }
  8026  
  8027  // String returns the string representation.
  8028  //
  8029  // API parameter values that are decorated as "sensitive" in the API will not
  8030  // be included in the string output. The member name will be present, but the
  8031  // value will be replaced with "sensitive".
  8032  func (s ListAddonsOutput) String() string {
  8033  	return awsutil.Prettify(s)
  8034  }
  8035  
  8036  // GoString returns the string representation.
  8037  //
  8038  // API parameter values that are decorated as "sensitive" in the API will not
  8039  // be included in the string output. The member name will be present, but the
  8040  // value will be replaced with "sensitive".
  8041  func (s ListAddonsOutput) GoString() string {
  8042  	return s.String()
  8043  }
  8044  
  8045  // SetAddons sets the Addons field's value.
  8046  func (s *ListAddonsOutput) SetAddons(v []*string) *ListAddonsOutput {
  8047  	s.Addons = v
  8048  	return s
  8049  }
  8050  
  8051  // SetNextToken sets the NextToken field's value.
  8052  func (s *ListAddonsOutput) SetNextToken(v string) *ListAddonsOutput {
  8053  	s.NextToken = &v
  8054  	return s
  8055  }
  8056  
  8057  type ListClustersInput struct {
  8058  	_ struct{} `type:"structure" nopayload:"true"`
  8059  
  8060  	// Indicates whether connected clusters are included in the returned list. Default
  8061  	// value is 'ALL'.
  8062  	Include []*string `location:"querystring" locationName:"include" type:"list"`
  8063  
  8064  	// The maximum number of cluster results returned by ListClusters in paginated
  8065  	// output. When you use this parameter, ListClusters returns only maxResults
  8066  	// results in a single page along with a nextToken response element. You can
  8067  	// see the remaining results of the initial request by sending another ListClusters
  8068  	// request with the returned nextToken value. This value can be between 1 and
  8069  	// 100. If you don't use this parameter, ListClusters returns up to 100 results
  8070  	// and a nextToken value if applicable.
  8071  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8072  
  8073  	// The nextToken value returned from a previous paginated ListClusters request
  8074  	// where maxResults was used and the results exceeded the value of that parameter.
  8075  	// Pagination continues from the end of the previous results that returned the
  8076  	// nextToken value.
  8077  	//
  8078  	// This token should be treated as an opaque identifier that is used only to
  8079  	// retrieve the next items in a list and not for other programmatic purposes.
  8080  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8081  }
  8082  
  8083  // String returns the string representation.
  8084  //
  8085  // API parameter values that are decorated as "sensitive" in the API will not
  8086  // be included in the string output. The member name will be present, but the
  8087  // value will be replaced with "sensitive".
  8088  func (s ListClustersInput) String() string {
  8089  	return awsutil.Prettify(s)
  8090  }
  8091  
  8092  // GoString returns the string representation.
  8093  //
  8094  // API parameter values that are decorated as "sensitive" in the API will not
  8095  // be included in the string output. The member name will be present, but the
  8096  // value will be replaced with "sensitive".
  8097  func (s ListClustersInput) GoString() string {
  8098  	return s.String()
  8099  }
  8100  
  8101  // Validate inspects the fields of the type to determine if they are valid.
  8102  func (s *ListClustersInput) Validate() error {
  8103  	invalidParams := request.ErrInvalidParams{Context: "ListClustersInput"}
  8104  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8105  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8106  	}
  8107  
  8108  	if invalidParams.Len() > 0 {
  8109  		return invalidParams
  8110  	}
  8111  	return nil
  8112  }
  8113  
  8114  // SetInclude sets the Include field's value.
  8115  func (s *ListClustersInput) SetInclude(v []*string) *ListClustersInput {
  8116  	s.Include = v
  8117  	return s
  8118  }
  8119  
  8120  // SetMaxResults sets the MaxResults field's value.
  8121  func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
  8122  	s.MaxResults = &v
  8123  	return s
  8124  }
  8125  
  8126  // SetNextToken sets the NextToken field's value.
  8127  func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
  8128  	s.NextToken = &v
  8129  	return s
  8130  }
  8131  
  8132  type ListClustersOutput struct {
  8133  	_ struct{} `type:"structure"`
  8134  
  8135  	// A list of all of the clusters for your account in the specified Region.
  8136  	Clusters []*string `locationName:"clusters" type:"list"`
  8137  
  8138  	// The nextToken value to include in a future ListClusters request. When the
  8139  	// results of a ListClusters request exceed maxResults, you can use this value
  8140  	// to retrieve the next page of results. This value is null when there are no
  8141  	// more results to return.
  8142  	NextToken *string `locationName:"nextToken" type:"string"`
  8143  }
  8144  
  8145  // String returns the string representation.
  8146  //
  8147  // API parameter values that are decorated as "sensitive" in the API will not
  8148  // be included in the string output. The member name will be present, but the
  8149  // value will be replaced with "sensitive".
  8150  func (s ListClustersOutput) String() string {
  8151  	return awsutil.Prettify(s)
  8152  }
  8153  
  8154  // GoString returns the string representation.
  8155  //
  8156  // API parameter values that are decorated as "sensitive" in the API will not
  8157  // be included in the string output. The member name will be present, but the
  8158  // value will be replaced with "sensitive".
  8159  func (s ListClustersOutput) GoString() string {
  8160  	return s.String()
  8161  }
  8162  
  8163  // SetClusters sets the Clusters field's value.
  8164  func (s *ListClustersOutput) SetClusters(v []*string) *ListClustersOutput {
  8165  	s.Clusters = v
  8166  	return s
  8167  }
  8168  
  8169  // SetNextToken sets the NextToken field's value.
  8170  func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
  8171  	s.NextToken = &v
  8172  	return s
  8173  }
  8174  
  8175  type ListFargateProfilesInput struct {
  8176  	_ struct{} `type:"structure" nopayload:"true"`
  8177  
  8178  	// The name of the Amazon EKS cluster that you would like to list Fargate profiles
  8179  	// in.
  8180  	//
  8181  	// ClusterName is a required field
  8182  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  8183  
  8184  	// The maximum number of Fargate profile results returned by ListFargateProfiles
  8185  	// in paginated output. When you use this parameter, ListFargateProfiles returns
  8186  	// only maxResults results in a single page along with a nextToken response
  8187  	// element. You can see the remaining results of the initial request by sending
  8188  	// another ListFargateProfiles request with the returned nextToken value. This
  8189  	// value can be between 1 and 100. If you don't use this parameter, ListFargateProfiles
  8190  	// returns up to 100 results and a nextToken value if applicable.
  8191  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8192  
  8193  	// The nextToken value returned from a previous paginated ListFargateProfiles
  8194  	// request where maxResults was used and the results exceeded the value of that
  8195  	// parameter. Pagination continues from the end of the previous results that
  8196  	// returned the nextToken value.
  8197  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8198  }
  8199  
  8200  // String returns the string representation.
  8201  //
  8202  // API parameter values that are decorated as "sensitive" in the API will not
  8203  // be included in the string output. The member name will be present, but the
  8204  // value will be replaced with "sensitive".
  8205  func (s ListFargateProfilesInput) String() string {
  8206  	return awsutil.Prettify(s)
  8207  }
  8208  
  8209  // GoString returns the string representation.
  8210  //
  8211  // API parameter values that are decorated as "sensitive" in the API will not
  8212  // be included in the string output. The member name will be present, but the
  8213  // value will be replaced with "sensitive".
  8214  func (s ListFargateProfilesInput) GoString() string {
  8215  	return s.String()
  8216  }
  8217  
  8218  // Validate inspects the fields of the type to determine if they are valid.
  8219  func (s *ListFargateProfilesInput) Validate() error {
  8220  	invalidParams := request.ErrInvalidParams{Context: "ListFargateProfilesInput"}
  8221  	if s.ClusterName == nil {
  8222  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  8223  	}
  8224  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  8225  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  8226  	}
  8227  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8228  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8229  	}
  8230  
  8231  	if invalidParams.Len() > 0 {
  8232  		return invalidParams
  8233  	}
  8234  	return nil
  8235  }
  8236  
  8237  // SetClusterName sets the ClusterName field's value.
  8238  func (s *ListFargateProfilesInput) SetClusterName(v string) *ListFargateProfilesInput {
  8239  	s.ClusterName = &v
  8240  	return s
  8241  }
  8242  
  8243  // SetMaxResults sets the MaxResults field's value.
  8244  func (s *ListFargateProfilesInput) SetMaxResults(v int64) *ListFargateProfilesInput {
  8245  	s.MaxResults = &v
  8246  	return s
  8247  }
  8248  
  8249  // SetNextToken sets the NextToken field's value.
  8250  func (s *ListFargateProfilesInput) SetNextToken(v string) *ListFargateProfilesInput {
  8251  	s.NextToken = &v
  8252  	return s
  8253  }
  8254  
  8255  type ListFargateProfilesOutput struct {
  8256  	_ struct{} `type:"structure"`
  8257  
  8258  	// A list of all of the Fargate profiles associated with the specified cluster.
  8259  	FargateProfileNames []*string `locationName:"fargateProfileNames" type:"list"`
  8260  
  8261  	// The nextToken value to include in a future ListFargateProfiles request. When
  8262  	// the results of a ListFargateProfiles request exceed maxResults, you can use
  8263  	// this value to retrieve the next page of results. This value is null when
  8264  	// there are no more results to return.
  8265  	NextToken *string `locationName:"nextToken" type:"string"`
  8266  }
  8267  
  8268  // String returns the string representation.
  8269  //
  8270  // API parameter values that are decorated as "sensitive" in the API will not
  8271  // be included in the string output. The member name will be present, but the
  8272  // value will be replaced with "sensitive".
  8273  func (s ListFargateProfilesOutput) String() string {
  8274  	return awsutil.Prettify(s)
  8275  }
  8276  
  8277  // GoString returns the string representation.
  8278  //
  8279  // API parameter values that are decorated as "sensitive" in the API will not
  8280  // be included in the string output. The member name will be present, but the
  8281  // value will be replaced with "sensitive".
  8282  func (s ListFargateProfilesOutput) GoString() string {
  8283  	return s.String()
  8284  }
  8285  
  8286  // SetFargateProfileNames sets the FargateProfileNames field's value.
  8287  func (s *ListFargateProfilesOutput) SetFargateProfileNames(v []*string) *ListFargateProfilesOutput {
  8288  	s.FargateProfileNames = v
  8289  	return s
  8290  }
  8291  
  8292  // SetNextToken sets the NextToken field's value.
  8293  func (s *ListFargateProfilesOutput) SetNextToken(v string) *ListFargateProfilesOutput {
  8294  	s.NextToken = &v
  8295  	return s
  8296  }
  8297  
  8298  type ListIdentityProviderConfigsInput struct {
  8299  	_ struct{} `type:"structure" nopayload:"true"`
  8300  
  8301  	// The cluster name that you want to list identity provider configurations for.
  8302  	//
  8303  	// ClusterName is a required field
  8304  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  8305  
  8306  	// The maximum number of identity provider configurations returned by ListIdentityProviderConfigs
  8307  	// in paginated output. When you use this parameter, ListIdentityProviderConfigs
  8308  	// returns only maxResults results in a single page along with a nextToken response
  8309  	// element. You can see the remaining results of the initial request by sending
  8310  	// another ListIdentityProviderConfigs request with the returned nextToken value.
  8311  	// This value can be between 1 and 100. If you don't use this parameter, ListIdentityProviderConfigs
  8312  	// returns up to 100 results and a nextToken value, if applicable.
  8313  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8314  
  8315  	// The nextToken value returned from a previous paginated IdentityProviderConfigsRequest
  8316  	// where maxResults was used and the results exceeded the value of that parameter.
  8317  	// Pagination continues from the end of the previous results that returned the
  8318  	// nextToken value.
  8319  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8320  }
  8321  
  8322  // String returns the string representation.
  8323  //
  8324  // API parameter values that are decorated as "sensitive" in the API will not
  8325  // be included in the string output. The member name will be present, but the
  8326  // value will be replaced with "sensitive".
  8327  func (s ListIdentityProviderConfigsInput) String() string {
  8328  	return awsutil.Prettify(s)
  8329  }
  8330  
  8331  // GoString returns the string representation.
  8332  //
  8333  // API parameter values that are decorated as "sensitive" in the API will not
  8334  // be included in the string output. The member name will be present, but the
  8335  // value will be replaced with "sensitive".
  8336  func (s ListIdentityProviderConfigsInput) GoString() string {
  8337  	return s.String()
  8338  }
  8339  
  8340  // Validate inspects the fields of the type to determine if they are valid.
  8341  func (s *ListIdentityProviderConfigsInput) Validate() error {
  8342  	invalidParams := request.ErrInvalidParams{Context: "ListIdentityProviderConfigsInput"}
  8343  	if s.ClusterName == nil {
  8344  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  8345  	}
  8346  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  8347  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  8348  	}
  8349  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8350  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8351  	}
  8352  
  8353  	if invalidParams.Len() > 0 {
  8354  		return invalidParams
  8355  	}
  8356  	return nil
  8357  }
  8358  
  8359  // SetClusterName sets the ClusterName field's value.
  8360  func (s *ListIdentityProviderConfigsInput) SetClusterName(v string) *ListIdentityProviderConfigsInput {
  8361  	s.ClusterName = &v
  8362  	return s
  8363  }
  8364  
  8365  // SetMaxResults sets the MaxResults field's value.
  8366  func (s *ListIdentityProviderConfigsInput) SetMaxResults(v int64) *ListIdentityProviderConfigsInput {
  8367  	s.MaxResults = &v
  8368  	return s
  8369  }
  8370  
  8371  // SetNextToken sets the NextToken field's value.
  8372  func (s *ListIdentityProviderConfigsInput) SetNextToken(v string) *ListIdentityProviderConfigsInput {
  8373  	s.NextToken = &v
  8374  	return s
  8375  }
  8376  
  8377  type ListIdentityProviderConfigsOutput struct {
  8378  	_ struct{} `type:"structure"`
  8379  
  8380  	// The identity provider configurations for the cluster.
  8381  	IdentityProviderConfigs []*IdentityProviderConfig `locationName:"identityProviderConfigs" type:"list"`
  8382  
  8383  	// The nextToken value returned from a previous paginated ListIdentityProviderConfigsResponse
  8384  	// where maxResults was used and the results exceeded the value of that parameter.
  8385  	// Pagination continues from the end of the previous results that returned the
  8386  	// nextToken value.
  8387  	NextToken *string `locationName:"nextToken" type:"string"`
  8388  }
  8389  
  8390  // String returns the string representation.
  8391  //
  8392  // API parameter values that are decorated as "sensitive" in the API will not
  8393  // be included in the string output. The member name will be present, but the
  8394  // value will be replaced with "sensitive".
  8395  func (s ListIdentityProviderConfigsOutput) String() string {
  8396  	return awsutil.Prettify(s)
  8397  }
  8398  
  8399  // GoString returns the string representation.
  8400  //
  8401  // API parameter values that are decorated as "sensitive" in the API will not
  8402  // be included in the string output. The member name will be present, but the
  8403  // value will be replaced with "sensitive".
  8404  func (s ListIdentityProviderConfigsOutput) GoString() string {
  8405  	return s.String()
  8406  }
  8407  
  8408  // SetIdentityProviderConfigs sets the IdentityProviderConfigs field's value.
  8409  func (s *ListIdentityProviderConfigsOutput) SetIdentityProviderConfigs(v []*IdentityProviderConfig) *ListIdentityProviderConfigsOutput {
  8410  	s.IdentityProviderConfigs = v
  8411  	return s
  8412  }
  8413  
  8414  // SetNextToken sets the NextToken field's value.
  8415  func (s *ListIdentityProviderConfigsOutput) SetNextToken(v string) *ListIdentityProviderConfigsOutput {
  8416  	s.NextToken = &v
  8417  	return s
  8418  }
  8419  
  8420  type ListNodegroupsInput struct {
  8421  	_ struct{} `type:"structure" nopayload:"true"`
  8422  
  8423  	// The name of the Amazon EKS cluster that you would like to list node groups
  8424  	// in.
  8425  	//
  8426  	// ClusterName is a required field
  8427  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
  8428  
  8429  	// The maximum number of node group results returned by ListNodegroups in paginated
  8430  	// output. When you use this parameter, ListNodegroups returns only maxResults
  8431  	// results in a single page along with a nextToken response element. You can
  8432  	// see the remaining results of the initial request by sending another ListNodegroups
  8433  	// request with the returned nextToken value. This value can be between 1 and
  8434  	// 100. If you don't use this parameter, ListNodegroups returns up to 100 results
  8435  	// and a nextToken value if applicable.
  8436  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8437  
  8438  	// The nextToken value returned from a previous paginated ListNodegroups request
  8439  	// where maxResults was used and the results exceeded the value of that parameter.
  8440  	// Pagination continues from the end of the previous results that returned the
  8441  	// nextToken value.
  8442  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8443  }
  8444  
  8445  // String returns the string representation.
  8446  //
  8447  // API parameter values that are decorated as "sensitive" in the API will not
  8448  // be included in the string output. The member name will be present, but the
  8449  // value will be replaced with "sensitive".
  8450  func (s ListNodegroupsInput) String() string {
  8451  	return awsutil.Prettify(s)
  8452  }
  8453  
  8454  // GoString returns the string representation.
  8455  //
  8456  // API parameter values that are decorated as "sensitive" in the API will not
  8457  // be included in the string output. The member name will be present, but the
  8458  // value will be replaced with "sensitive".
  8459  func (s ListNodegroupsInput) GoString() string {
  8460  	return s.String()
  8461  }
  8462  
  8463  // Validate inspects the fields of the type to determine if they are valid.
  8464  func (s *ListNodegroupsInput) Validate() error {
  8465  	invalidParams := request.ErrInvalidParams{Context: "ListNodegroupsInput"}
  8466  	if s.ClusterName == nil {
  8467  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
  8468  	}
  8469  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
  8470  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
  8471  	}
  8472  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8473  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8474  	}
  8475  
  8476  	if invalidParams.Len() > 0 {
  8477  		return invalidParams
  8478  	}
  8479  	return nil
  8480  }
  8481  
  8482  // SetClusterName sets the ClusterName field's value.
  8483  func (s *ListNodegroupsInput) SetClusterName(v string) *ListNodegroupsInput {
  8484  	s.ClusterName = &v
  8485  	return s
  8486  }
  8487  
  8488  // SetMaxResults sets the MaxResults field's value.
  8489  func (s *ListNodegroupsInput) SetMaxResults(v int64) *ListNodegroupsInput {
  8490  	s.MaxResults = &v
  8491  	return s
  8492  }
  8493  
  8494  // SetNextToken sets the NextToken field's value.
  8495  func (s *ListNodegroupsInput) SetNextToken(v string) *ListNodegroupsInput {
  8496  	s.NextToken = &v
  8497  	return s
  8498  }
  8499  
  8500  type ListNodegroupsOutput struct {
  8501  	_ struct{} `type:"structure"`
  8502  
  8503  	// The nextToken value to include in a future ListNodegroups request. When the
  8504  	// results of a ListNodegroups request exceed maxResults, you can use this value
  8505  	// to retrieve the next page of results. This value is null when there are no
  8506  	// more results to return.
  8507  	NextToken *string `locationName:"nextToken" type:"string"`
  8508  
  8509  	// A list of all of the node groups associated with the specified cluster.
  8510  	Nodegroups []*string `locationName:"nodegroups" type:"list"`
  8511  }
  8512  
  8513  // String returns the string representation.
  8514  //
  8515  // API parameter values that are decorated as "sensitive" in the API will not
  8516  // be included in the string output. The member name will be present, but the
  8517  // value will be replaced with "sensitive".
  8518  func (s ListNodegroupsOutput) String() string {
  8519  	return awsutil.Prettify(s)
  8520  }
  8521  
  8522  // GoString returns the string representation.
  8523  //
  8524  // API parameter values that are decorated as "sensitive" in the API will not
  8525  // be included in the string output. The member name will be present, but the
  8526  // value will be replaced with "sensitive".
  8527  func (s ListNodegroupsOutput) GoString() string {
  8528  	return s.String()
  8529  }
  8530  
  8531  // SetNextToken sets the NextToken field's value.
  8532  func (s *ListNodegroupsOutput) SetNextToken(v string) *ListNodegroupsOutput {
  8533  	s.NextToken = &v
  8534  	return s
  8535  }
  8536  
  8537  // SetNodegroups sets the Nodegroups field's value.
  8538  func (s *ListNodegroupsOutput) SetNodegroups(v []*string) *ListNodegroupsOutput {
  8539  	s.Nodegroups = v
  8540  	return s
  8541  }
  8542  
  8543  type ListTagsForResourceInput struct {
  8544  	_ struct{} `type:"structure" nopayload:"true"`
  8545  
  8546  	// The Amazon Resource Name (ARN) that identifies the resource for which to
  8547  	// list the tags. Currently, the supported resources are Amazon EKS clusters
  8548  	// and managed node groups.
  8549  	//
  8550  	// ResourceArn is a required field
  8551  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  8552  }
  8553  
  8554  // String returns the string representation.
  8555  //
  8556  // API parameter values that are decorated as "sensitive" in the API will not
  8557  // be included in the string output. The member name will be present, but the
  8558  // value will be replaced with "sensitive".
  8559  func (s ListTagsForResourceInput) String() string {
  8560  	return awsutil.Prettify(s)
  8561  }
  8562  
  8563  // GoString returns the string representation.
  8564  //
  8565  // API parameter values that are decorated as "sensitive" in the API will not
  8566  // be included in the string output. The member name will be present, but the
  8567  // value will be replaced with "sensitive".
  8568  func (s ListTagsForResourceInput) GoString() string {
  8569  	return s.String()
  8570  }
  8571  
  8572  // Validate inspects the fields of the type to determine if they are valid.
  8573  func (s *ListTagsForResourceInput) Validate() error {
  8574  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  8575  	if s.ResourceArn == nil {
  8576  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  8577  	}
  8578  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  8579  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  8580  	}
  8581  
  8582  	if invalidParams.Len() > 0 {
  8583  		return invalidParams
  8584  	}
  8585  	return nil
  8586  }
  8587  
  8588  // SetResourceArn sets the ResourceArn field's value.
  8589  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  8590  	s.ResourceArn = &v
  8591  	return s
  8592  }
  8593  
  8594  type ListTagsForResourceOutput struct {
  8595  	_ struct{} `type:"structure"`
  8596  
  8597  	// The tags for the resource.
  8598  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  8599  }
  8600  
  8601  // String returns the string representation.
  8602  //
  8603  // API parameter values that are decorated as "sensitive" in the API will not
  8604  // be included in the string output. The member name will be present, but the
  8605  // value will be replaced with "sensitive".
  8606  func (s ListTagsForResourceOutput) String() string {
  8607  	return awsutil.Prettify(s)
  8608  }
  8609  
  8610  // GoString returns the string representation.
  8611  //
  8612  // API parameter values that are decorated as "sensitive" in the API will not
  8613  // be included in the string output. The member name will be present, but the
  8614  // value will be replaced with "sensitive".
  8615  func (s ListTagsForResourceOutput) GoString() string {
  8616  	return s.String()
  8617  }
  8618  
  8619  // SetTags sets the Tags field's value.
  8620  func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
  8621  	s.Tags = v
  8622  	return s
  8623  }
  8624  
  8625  type ListUpdatesInput struct {
  8626  	_ struct{} `type:"structure" nopayload:"true"`
  8627  
  8628  	// The names of the installed add-ons that have available updates.
  8629  	AddonName *string `location:"querystring" locationName:"addonName" type:"string"`
  8630  
  8631  	// The maximum number of update results returned by ListUpdates in paginated
  8632  	// output. When you use this parameter, ListUpdates returns only maxResults
  8633  	// results in a single page along with a nextToken response element. You can
  8634  	// see the remaining results of the initial request by sending another ListUpdates
  8635  	// request with the returned nextToken value. This value can be between 1 and
  8636  	// 100. If you don't use this parameter, ListUpdates returns up to 100 results
  8637  	// and a nextToken value if applicable.
  8638  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  8639  
  8640  	// The name of the Amazon EKS cluster to list updates for.
  8641  	//
  8642  	// Name is a required field
  8643  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
  8644  
  8645  	// The nextToken value returned from a previous paginated ListUpdates request
  8646  	// where maxResults was used and the results exceeded the value of that parameter.
  8647  	// Pagination continues from the end of the previous results that returned the
  8648  	// nextToken value.
  8649  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  8650  
  8651  	// The name of the Amazon EKS managed node group to list updates for.
  8652  	NodegroupName *string `location:"querystring" locationName:"nodegroupName" type:"string"`
  8653  }
  8654  
  8655  // String returns the string representation.
  8656  //
  8657  // API parameter values that are decorated as "sensitive" in the API will not
  8658  // be included in the string output. The member name will be present, but the
  8659  // value will be replaced with "sensitive".
  8660  func (s ListUpdatesInput) String() string {
  8661  	return awsutil.Prettify(s)
  8662  }
  8663  
  8664  // GoString returns the string representation.
  8665  //
  8666  // API parameter values that are decorated as "sensitive" in the API will not
  8667  // be included in the string output. The member name will be present, but the
  8668  // value will be replaced with "sensitive".
  8669  func (s ListUpdatesInput) GoString() string {
  8670  	return s.String()
  8671  }
  8672  
  8673  // Validate inspects the fields of the type to determine if they are valid.
  8674  func (s *ListUpdatesInput) Validate() error {
  8675  	invalidParams := request.ErrInvalidParams{Context: "ListUpdatesInput"}
  8676  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8677  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8678  	}
  8679  	if s.Name == nil {
  8680  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8681  	}
  8682  	if s.Name != nil && len(*s.Name) < 1 {
  8683  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  8684  	}
  8685  
  8686  	if invalidParams.Len() > 0 {
  8687  		return invalidParams
  8688  	}
  8689  	return nil
  8690  }
  8691  
  8692  // SetAddonName sets the AddonName field's value.
  8693  func (s *ListUpdatesInput) SetAddonName(v string) *ListUpdatesInput {
  8694  	s.AddonName = &v
  8695  	return s
  8696  }
  8697  
  8698  // SetMaxResults sets the MaxResults field's value.
  8699  func (s *ListUpdatesInput) SetMaxResults(v int64) *ListUpdatesInput {
  8700  	s.MaxResults = &v
  8701  	return s
  8702  }
  8703  
  8704  // SetName sets the Name field's value.
  8705  func (s *ListUpdatesInput) SetName(v string) *ListUpdatesInput {
  8706  	s.Name = &v
  8707  	return s
  8708  }
  8709  
  8710  // SetNextToken sets the NextToken field's value.
  8711  func (s *ListUpdatesInput) SetNextToken(v string) *ListUpdatesInput {
  8712  	s.NextToken = &v
  8713  	return s
  8714  }
  8715  
  8716  // SetNodegroupName sets the NodegroupName field's value.
  8717  func (s *ListUpdatesInput) SetNodegroupName(v string) *ListUpdatesInput {
  8718  	s.NodegroupName = &v
  8719  	return s
  8720  }
  8721  
  8722  type ListUpdatesOutput struct {
  8723  	_ struct{} `type:"structure"`
  8724  
  8725  	// The nextToken value to include in a future ListUpdates request. When the
  8726  	// results of a ListUpdates request exceed maxResults, you can use this value
  8727  	// to retrieve the next page of results. This value is null when there are no
  8728  	// more results to return.
  8729  	NextToken *string `locationName:"nextToken" type:"string"`
  8730  
  8731  	// A list of all the updates for the specified cluster and Region.
  8732  	UpdateIds []*string `locationName:"updateIds" type:"list"`
  8733  }
  8734  
  8735  // String returns the string representation.
  8736  //
  8737  // API parameter values that are decorated as "sensitive" in the API will not
  8738  // be included in the string output. The member name will be present, but the
  8739  // value will be replaced with "sensitive".
  8740  func (s ListUpdatesOutput) String() string {
  8741  	return awsutil.Prettify(s)
  8742  }
  8743  
  8744  // GoString returns the string representation.
  8745  //
  8746  // API parameter values that are decorated as "sensitive" in the API will not
  8747  // be included in the string output. The member name will be present, but the
  8748  // value will be replaced with "sensitive".
  8749  func (s ListUpdatesOutput) GoString() string {
  8750  	return s.String()
  8751  }
  8752  
  8753  // SetNextToken sets the NextToken field's value.
  8754  func (s *ListUpdatesOutput) SetNextToken(v string) *ListUpdatesOutput {
  8755  	s.NextToken = &v
  8756  	return s
  8757  }
  8758  
  8759  // SetUpdateIds sets the UpdateIds field's value.
  8760  func (s *ListUpdatesOutput) SetUpdateIds(v []*string) *ListUpdatesOutput {
  8761  	s.UpdateIds = v
  8762  	return s
  8763  }
  8764  
  8765  // An object representing the enabled or disabled Kubernetes control plane logs
  8766  // for your cluster.
  8767  type LogSetup struct {
  8768  	_ struct{} `type:"structure"`
  8769  
  8770  	// If a log type is enabled, that log type exports its control plane logs to
  8771  	// CloudWatch Logs. If a log type isn't enabled, that log type doesn't export
  8772  	// its control plane logs. Each individual log type can be enabled or disabled
  8773  	// independently.
  8774  	Enabled *bool `locationName:"enabled" type:"boolean"`
  8775  
  8776  	// The available cluster control plane log types.
  8777  	Types []*string `locationName:"types" type:"list"`
  8778  }
  8779  
  8780  // String returns the string representation.
  8781  //
  8782  // API parameter values that are decorated as "sensitive" in the API will not
  8783  // be included in the string output. The member name will be present, but the
  8784  // value will be replaced with "sensitive".
  8785  func (s LogSetup) String() string {
  8786  	return awsutil.Prettify(s)
  8787  }
  8788  
  8789  // GoString returns the string representation.
  8790  //
  8791  // API parameter values that are decorated as "sensitive" in the API will not
  8792  // be included in the string output. The member name will be present, but the
  8793  // value will be replaced with "sensitive".
  8794  func (s LogSetup) GoString() string {
  8795  	return s.String()
  8796  }
  8797  
  8798  // SetEnabled sets the Enabled field's value.
  8799  func (s *LogSetup) SetEnabled(v bool) *LogSetup {
  8800  	s.Enabled = &v
  8801  	return s
  8802  }
  8803  
  8804  // SetTypes sets the Types field's value.
  8805  func (s *LogSetup) SetTypes(v []*string) *LogSetup {
  8806  	s.Types = v
  8807  	return s
  8808  }
  8809  
  8810  // An object representing the logging configuration for resources in your cluster.
  8811  type Logging struct {
  8812  	_ struct{} `type:"structure"`
  8813  
  8814  	// The cluster control plane logging configuration for your cluster.
  8815  	ClusterLogging []*LogSetup `locationName:"clusterLogging" type:"list"`
  8816  }
  8817  
  8818  // String returns the string representation.
  8819  //
  8820  // API parameter values that are decorated as "sensitive" in the API will not
  8821  // be included in the string output. The member name will be present, but the
  8822  // value will be replaced with "sensitive".
  8823  func (s Logging) String() string {
  8824  	return awsutil.Prettify(s)
  8825  }
  8826  
  8827  // GoString returns the string representation.
  8828  //
  8829  // API parameter values that are decorated as "sensitive" in the API will not
  8830  // be included in the string output. The member name will be present, but the
  8831  // value will be replaced with "sensitive".
  8832  func (s Logging) GoString() string {
  8833  	return s.String()
  8834  }
  8835  
  8836  // SetClusterLogging sets the ClusterLogging field's value.
  8837  func (s *Logging) SetClusterLogging(v []*LogSetup) *Logging {
  8838  	s.ClusterLogging = v
  8839  	return s
  8840  }
  8841  
  8842  // An object representing an Amazon EKS managed node group.
  8843  type Nodegroup struct {
  8844  	_ struct{} `type:"structure"`
  8845  
  8846  	// If the node group was deployed using a launch template with a custom AMI,
  8847  	// then this is CUSTOM. For node groups that weren't deployed using a launch
  8848  	// template, this is the AMI type that was specified in the node group configuration.
  8849  	AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"`
  8850  
  8851  	// The capacity type of your managed node group.
  8852  	CapacityType *string `locationName:"capacityType" type:"string" enum:"CapacityTypes"`
  8853  
  8854  	// The name of the cluster that the managed node group resides in.
  8855  	ClusterName *string `locationName:"clusterName" type:"string"`
  8856  
  8857  	// The Unix epoch timestamp in seconds for when the managed node group was created.
  8858  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
  8859  
  8860  	// If the node group wasn't deployed with a launch template, then this is the
  8861  	// disk size in the node group configuration. If the node group was deployed
  8862  	// with a launch template, then this is null.
  8863  	DiskSize *int64 `locationName:"diskSize" type:"integer"`
  8864  
  8865  	// The health status of the node group. If there are issues with your node group's
  8866  	// health, they are listed here.
  8867  	Health *NodegroupHealth `locationName:"health" type:"structure"`
  8868  
  8869  	// If the node group wasn't deployed with a launch template, then this is the
  8870  	// instance type that is associated with the node group. If the node group was
  8871  	// deployed with a launch template, then this is null.
  8872  	InstanceTypes []*string `locationName:"instanceTypes" type:"list"`
  8873  
  8874  	// The Kubernetes labels applied to the nodes in the node group.
  8875  	//
  8876  	// Only labels that are applied with the Amazon EKS API are shown here. There
  8877  	// may be other Kubernetes labels applied to the nodes in this group.
  8878  	Labels map[string]*string `locationName:"labels" type:"map"`
  8879  
  8880  	// If a launch template was used to create the node group, then this is the
  8881  	// launch template that was used.
  8882  	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
  8883  
  8884  	// The Unix epoch timestamp in seconds for when the managed node group was last
  8885  	// modified.
  8886  	ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"`
  8887  
  8888  	// The IAM role associated with your node group. The Amazon EKS node kubelet
  8889  	// daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive
  8890  	// permissions for these API calls through an IAM instance profile and associated
  8891  	// policies.
  8892  	NodeRole *string `locationName:"nodeRole" type:"string"`
  8893  
  8894  	// The Amazon Resource Name (ARN) associated with the managed node group.
  8895  	NodegroupArn *string `locationName:"nodegroupArn" type:"string"`
  8896  
  8897  	// The name associated with an Amazon EKS managed node group.
  8898  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
  8899  
  8900  	// If the node group was deployed using a launch template with a custom AMI,
  8901  	// then this is the AMI ID that was specified in the launch template. For node
  8902  	// groups that weren't deployed using a launch template, this is the version
  8903  	// of the Amazon EKS optimized AMI that the node group was deployed with.
  8904  	ReleaseVersion *string `locationName:"releaseVersion" type:"string"`
  8905  
  8906  	// If the node group wasn't deployed with a launch template, then this is the
  8907  	// remote access configuration that is associated with the node group. If the
  8908  	// node group was deployed with a launch template, then this is null.
  8909  	RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"`
  8910  
  8911  	// The resources associated with the node group, such as Auto Scaling groups
  8912  	// and security groups for remote access.
  8913  	Resources *NodegroupResources `locationName:"resources" type:"structure"`
  8914  
  8915  	// The scaling configuration details for the Auto Scaling group that is associated
  8916  	// with your node group.
  8917  	ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"`
  8918  
  8919  	// The current status of the managed node group.
  8920  	Status *string `locationName:"status" type:"string" enum:"NodegroupStatus"`
  8921  
  8922  	// The subnets that were specified for the Auto Scaling group that is associated
  8923  	// with your node group.
  8924  	Subnets []*string `locationName:"subnets" type:"list"`
  8925  
  8926  	// The metadata applied to the node group to assist with categorization and
  8927  	// organization. Each tag consists of a key and an optional value, both of which
  8928  	// you define. Node group tags do not propagate to any other resources associated
  8929  	// with the node group, such as the Amazon EC2 instances or subnets.
  8930  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  8931  
  8932  	// The Kubernetes taints to be applied to the nodes in the node group when they
  8933  	// are created. Effect is one of No_Schedule, Prefer_No_Schedule, or No_Execute.
  8934  	// Kubernetes taints can be used together with tolerations to control how workloads
  8935  	// are scheduled to your nodes.
  8936  	Taints []*Taint `locationName:"taints" type:"list"`
  8937  
  8938  	// The node group update configuration.
  8939  	UpdateConfig *NodegroupUpdateConfig `locationName:"updateConfig" type:"structure"`
  8940  
  8941  	// The Kubernetes version of the managed node group.
  8942  	Version *string `locationName:"version" type:"string"`
  8943  }
  8944  
  8945  // String returns the string representation.
  8946  //
  8947  // API parameter values that are decorated as "sensitive" in the API will not
  8948  // be included in the string output. The member name will be present, but the
  8949  // value will be replaced with "sensitive".
  8950  func (s Nodegroup) String() string {
  8951  	return awsutil.Prettify(s)
  8952  }
  8953  
  8954  // GoString returns the string representation.
  8955  //
  8956  // API parameter values that are decorated as "sensitive" in the API will not
  8957  // be included in the string output. The member name will be present, but the
  8958  // value will be replaced with "sensitive".
  8959  func (s Nodegroup) GoString() string {
  8960  	return s.String()
  8961  }
  8962  
  8963  // SetAmiType sets the AmiType field's value.
  8964  func (s *Nodegroup) SetAmiType(v string) *Nodegroup {
  8965  	s.AmiType = &v
  8966  	return s
  8967  }
  8968  
  8969  // SetCapacityType sets the CapacityType field's value.
  8970  func (s *Nodegroup) SetCapacityType(v string) *Nodegroup {
  8971  	s.CapacityType = &v
  8972  	return s
  8973  }
  8974  
  8975  // SetClusterName sets the ClusterName field's value.
  8976  func (s *Nodegroup) SetClusterName(v string) *Nodegroup {
  8977  	s.ClusterName = &v
  8978  	return s
  8979  }
  8980  
  8981  // SetCreatedAt sets the CreatedAt field's value.
  8982  func (s *Nodegroup) SetCreatedAt(v time.Time) *Nodegroup {
  8983  	s.CreatedAt = &v
  8984  	return s
  8985  }
  8986  
  8987  // SetDiskSize sets the DiskSize field's value.
  8988  func (s *Nodegroup) SetDiskSize(v int64) *Nodegroup {
  8989  	s.DiskSize = &v
  8990  	return s
  8991  }
  8992  
  8993  // SetHealth sets the Health field's value.
  8994  func (s *Nodegroup) SetHealth(v *NodegroupHealth) *Nodegroup {
  8995  	s.Health = v
  8996  	return s
  8997  }
  8998  
  8999  // SetInstanceTypes sets the InstanceTypes field's value.
  9000  func (s *Nodegroup) SetInstanceTypes(v []*string) *Nodegroup {
  9001  	s.InstanceTypes = v
  9002  	return s
  9003  }
  9004  
  9005  // SetLabels sets the Labels field's value.
  9006  func (s *Nodegroup) SetLabels(v map[string]*string) *Nodegroup {
  9007  	s.Labels = v
  9008  	return s
  9009  }
  9010  
  9011  // SetLaunchTemplate sets the LaunchTemplate field's value.
  9012  func (s *Nodegroup) SetLaunchTemplate(v *LaunchTemplateSpecification) *Nodegroup {
  9013  	s.LaunchTemplate = v
  9014  	return s
  9015  }
  9016  
  9017  // SetModifiedAt sets the ModifiedAt field's value.
  9018  func (s *Nodegroup) SetModifiedAt(v time.Time) *Nodegroup {
  9019  	s.ModifiedAt = &v
  9020  	return s
  9021  }
  9022  
  9023  // SetNodeRole sets the NodeRole field's value.
  9024  func (s *Nodegroup) SetNodeRole(v string) *Nodegroup {
  9025  	s.NodeRole = &v
  9026  	return s
  9027  }
  9028  
  9029  // SetNodegroupArn sets the NodegroupArn field's value.
  9030  func (s *Nodegroup) SetNodegroupArn(v string) *Nodegroup {
  9031  	s.NodegroupArn = &v
  9032  	return s
  9033  }
  9034  
  9035  // SetNodegroupName sets the NodegroupName field's value.
  9036  func (s *Nodegroup) SetNodegroupName(v string) *Nodegroup {
  9037  	s.NodegroupName = &v
  9038  	return s
  9039  }
  9040  
  9041  // SetReleaseVersion sets the ReleaseVersion field's value.
  9042  func (s *Nodegroup) SetReleaseVersion(v string) *Nodegroup {
  9043  	s.ReleaseVersion = &v
  9044  	return s
  9045  }
  9046  
  9047  // SetRemoteAccess sets the RemoteAccess field's value.
  9048  func (s *Nodegroup) SetRemoteAccess(v *RemoteAccessConfig) *Nodegroup {
  9049  	s.RemoteAccess = v
  9050  	return s
  9051  }
  9052  
  9053  // SetResources sets the Resources field's value.
  9054  func (s *Nodegroup) SetResources(v *NodegroupResources) *Nodegroup {
  9055  	s.Resources = v
  9056  	return s
  9057  }
  9058  
  9059  // SetScalingConfig sets the ScalingConfig field's value.
  9060  func (s *Nodegroup) SetScalingConfig(v *NodegroupScalingConfig) *Nodegroup {
  9061  	s.ScalingConfig = v
  9062  	return s
  9063  }
  9064  
  9065  // SetStatus sets the Status field's value.
  9066  func (s *Nodegroup) SetStatus(v string) *Nodegroup {
  9067  	s.Status = &v
  9068  	return s
  9069  }
  9070  
  9071  // SetSubnets sets the Subnets field's value.
  9072  func (s *Nodegroup) SetSubnets(v []*string) *Nodegroup {
  9073  	s.Subnets = v
  9074  	return s
  9075  }
  9076  
  9077  // SetTags sets the Tags field's value.
  9078  func (s *Nodegroup) SetTags(v map[string]*string) *Nodegroup {
  9079  	s.Tags = v
  9080  	return s
  9081  }
  9082  
  9083  // SetTaints sets the Taints field's value.
  9084  func (s *Nodegroup) SetTaints(v []*Taint) *Nodegroup {
  9085  	s.Taints = v
  9086  	return s
  9087  }
  9088  
  9089  // SetUpdateConfig sets the UpdateConfig field's value.
  9090  func (s *Nodegroup) SetUpdateConfig(v *NodegroupUpdateConfig) *Nodegroup {
  9091  	s.UpdateConfig = v
  9092  	return s
  9093  }
  9094  
  9095  // SetVersion sets the Version field's value.
  9096  func (s *Nodegroup) SetVersion(v string) *Nodegroup {
  9097  	s.Version = &v
  9098  	return s
  9099  }
  9100  
  9101  // An object representing the health status of the node group.
  9102  type NodegroupHealth struct {
  9103  	_ struct{} `type:"structure"`
  9104  
  9105  	// Any issues that are associated with the node group.
  9106  	Issues []*Issue `locationName:"issues" type:"list"`
  9107  }
  9108  
  9109  // String returns the string representation.
  9110  //
  9111  // API parameter values that are decorated as "sensitive" in the API will not
  9112  // be included in the string output. The member name will be present, but the
  9113  // value will be replaced with "sensitive".
  9114  func (s NodegroupHealth) String() string {
  9115  	return awsutil.Prettify(s)
  9116  }
  9117  
  9118  // GoString returns the string representation.
  9119  //
  9120  // API parameter values that are decorated as "sensitive" in the API will not
  9121  // be included in the string output. The member name will be present, but the
  9122  // value will be replaced with "sensitive".
  9123  func (s NodegroupHealth) GoString() string {
  9124  	return s.String()
  9125  }
  9126  
  9127  // SetIssues sets the Issues field's value.
  9128  func (s *NodegroupHealth) SetIssues(v []*Issue) *NodegroupHealth {
  9129  	s.Issues = v
  9130  	return s
  9131  }
  9132  
  9133  // An object representing the resources associated with the node group, such
  9134  // as Auto Scaling groups and security groups for remote access.
  9135  type NodegroupResources struct {
  9136  	_ struct{} `type:"structure"`
  9137  
  9138  	// The Auto Scaling groups associated with the node group.
  9139  	AutoScalingGroups []*AutoScalingGroup `locationName:"autoScalingGroups" type:"list"`
  9140  
  9141  	// The remote access security group associated with the node group. This security
  9142  	// group controls SSH access to the nodes.
  9143  	RemoteAccessSecurityGroup *string `locationName:"remoteAccessSecurityGroup" type:"string"`
  9144  }
  9145  
  9146  // String returns the string representation.
  9147  //
  9148  // API parameter values that are decorated as "sensitive" in the API will not
  9149  // be included in the string output. The member name will be present, but the
  9150  // value will be replaced with "sensitive".
  9151  func (s NodegroupResources) String() string {
  9152  	return awsutil.Prettify(s)
  9153  }
  9154  
  9155  // GoString returns the string representation.
  9156  //
  9157  // API parameter values that are decorated as "sensitive" in the API will not
  9158  // be included in the string output. The member name will be present, but the
  9159  // value will be replaced with "sensitive".
  9160  func (s NodegroupResources) GoString() string {
  9161  	return s.String()
  9162  }
  9163  
  9164  // SetAutoScalingGroups sets the AutoScalingGroups field's value.
  9165  func (s *NodegroupResources) SetAutoScalingGroups(v []*AutoScalingGroup) *NodegroupResources {
  9166  	s.AutoScalingGroups = v
  9167  	return s
  9168  }
  9169  
  9170  // SetRemoteAccessSecurityGroup sets the RemoteAccessSecurityGroup field's value.
  9171  func (s *NodegroupResources) SetRemoteAccessSecurityGroup(v string) *NodegroupResources {
  9172  	s.RemoteAccessSecurityGroup = &v
  9173  	return s
  9174  }
  9175  
  9176  // An object representing the scaling configuration details for the Auto Scaling
  9177  // group that is associated with your node group. When creating a node group,
  9178  // you must specify all or none of the properties. When updating a node group,
  9179  // you can specify any or none of the properties.
  9180  type NodegroupScalingConfig struct {
  9181  	_ struct{} `type:"structure"`
  9182  
  9183  	// The current number of nodes that the managed node group should maintain.
  9184  	DesiredSize *int64 `locationName:"desiredSize" type:"integer"`
  9185  
  9186  	// The maximum number of nodes that the managed node group can scale out to.
  9187  	// For information about the maximum number that you can specify, see Amazon
  9188  	// EKS service quotas (https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html)
  9189  	// in the Amazon EKS User Guide.
  9190  	MaxSize *int64 `locationName:"maxSize" min:"1" type:"integer"`
  9191  
  9192  	// The minimum number of nodes that the managed node group can scale in to.
  9193  	MinSize *int64 `locationName:"minSize" type:"integer"`
  9194  }
  9195  
  9196  // String returns the string representation.
  9197  //
  9198  // API parameter values that are decorated as "sensitive" in the API will not
  9199  // be included in the string output. The member name will be present, but the
  9200  // value will be replaced with "sensitive".
  9201  func (s NodegroupScalingConfig) String() string {
  9202  	return awsutil.Prettify(s)
  9203  }
  9204  
  9205  // GoString returns the string representation.
  9206  //
  9207  // API parameter values that are decorated as "sensitive" in the API will not
  9208  // be included in the string output. The member name will be present, but the
  9209  // value will be replaced with "sensitive".
  9210  func (s NodegroupScalingConfig) GoString() string {
  9211  	return s.String()
  9212  }
  9213  
  9214  // Validate inspects the fields of the type to determine if they are valid.
  9215  func (s *NodegroupScalingConfig) Validate() error {
  9216  	invalidParams := request.ErrInvalidParams{Context: "NodegroupScalingConfig"}
  9217  	if s.MaxSize != nil && *s.MaxSize < 1 {
  9218  		invalidParams.Add(request.NewErrParamMinValue("MaxSize", 1))
  9219  	}
  9220  
  9221  	if invalidParams.Len() > 0 {
  9222  		return invalidParams
  9223  	}
  9224  	return nil
  9225  }
  9226  
  9227  // SetDesiredSize sets the DesiredSize field's value.
  9228  func (s *NodegroupScalingConfig) SetDesiredSize(v int64) *NodegroupScalingConfig {
  9229  	s.DesiredSize = &v
  9230  	return s
  9231  }
  9232  
  9233  // SetMaxSize sets the MaxSize field's value.
  9234  func (s *NodegroupScalingConfig) SetMaxSize(v int64) *NodegroupScalingConfig {
  9235  	s.MaxSize = &v
  9236  	return s
  9237  }
  9238  
  9239  // SetMinSize sets the MinSize field's value.
  9240  func (s *NodegroupScalingConfig) SetMinSize(v int64) *NodegroupScalingConfig {
  9241  	s.MinSize = &v
  9242  	return s
  9243  }
  9244  
  9245  // The node group update configuration.
  9246  type NodegroupUpdateConfig struct {
  9247  	_ struct{} `type:"structure"`
  9248  
  9249  	// The maximum number of nodes unavailable at once during a version update.
  9250  	// Nodes will be updated in parallel. This value or maxUnavailablePercentage
  9251  	// is required to have a value.The maximum number is 100.
  9252  	MaxUnavailable *int64 `locationName:"maxUnavailable" min:"1" type:"integer"`
  9253  
  9254  	// The maximum percentage of nodes unavailable during a version update. This
  9255  	// percentage of nodes will be updated in parallel, up to 100 nodes at once.
  9256  	// This value or maxUnavailable is required to have a value.
  9257  	MaxUnavailablePercentage *int64 `locationName:"maxUnavailablePercentage" min:"1" type:"integer"`
  9258  }
  9259  
  9260  // String returns the string representation.
  9261  //
  9262  // API parameter values that are decorated as "sensitive" in the API will not
  9263  // be included in the string output. The member name will be present, but the
  9264  // value will be replaced with "sensitive".
  9265  func (s NodegroupUpdateConfig) String() string {
  9266  	return awsutil.Prettify(s)
  9267  }
  9268  
  9269  // GoString returns the string representation.
  9270  //
  9271  // API parameter values that are decorated as "sensitive" in the API will not
  9272  // be included in the string output. The member name will be present, but the
  9273  // value will be replaced with "sensitive".
  9274  func (s NodegroupUpdateConfig) GoString() string {
  9275  	return s.String()
  9276  }
  9277  
  9278  // Validate inspects the fields of the type to determine if they are valid.
  9279  func (s *NodegroupUpdateConfig) Validate() error {
  9280  	invalidParams := request.ErrInvalidParams{Context: "NodegroupUpdateConfig"}
  9281  	if s.MaxUnavailable != nil && *s.MaxUnavailable < 1 {
  9282  		invalidParams.Add(request.NewErrParamMinValue("MaxUnavailable", 1))
  9283  	}
  9284  	if s.MaxUnavailablePercentage != nil && *s.MaxUnavailablePercentage < 1 {
  9285  		invalidParams.Add(request.NewErrParamMinValue("MaxUnavailablePercentage", 1))
  9286  	}
  9287  
  9288  	if invalidParams.Len() > 0 {
  9289  		return invalidParams
  9290  	}
  9291  	return nil
  9292  }
  9293  
  9294  // SetMaxUnavailable sets the MaxUnavailable field's value.
  9295  func (s *NodegroupUpdateConfig) SetMaxUnavailable(v int64) *NodegroupUpdateConfig {
  9296  	s.MaxUnavailable = &v
  9297  	return s
  9298  }
  9299  
  9300  // SetMaxUnavailablePercentage sets the MaxUnavailablePercentage field's value.
  9301  func (s *NodegroupUpdateConfig) SetMaxUnavailablePercentage(v int64) *NodegroupUpdateConfig {
  9302  	s.MaxUnavailablePercentage = &v
  9303  	return s
  9304  }
  9305  
  9306  // A service resource associated with the request could not be found. Clients
  9307  // should not retry such requests.
  9308  type NotFoundException struct {
  9309  	_            struct{}                  `type:"structure"`
  9310  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9311  
  9312  	Message_ *string `locationName:"message" type:"string"`
  9313  }
  9314  
  9315  // String returns the string representation.
  9316  //
  9317  // API parameter values that are decorated as "sensitive" in the API will not
  9318  // be included in the string output. The member name will be present, but the
  9319  // value will be replaced with "sensitive".
  9320  func (s NotFoundException) String() string {
  9321  	return awsutil.Prettify(s)
  9322  }
  9323  
  9324  // GoString returns the string representation.
  9325  //
  9326  // API parameter values that are decorated as "sensitive" in the API will not
  9327  // be included in the string output. The member name will be present, but the
  9328  // value will be replaced with "sensitive".
  9329  func (s NotFoundException) GoString() string {
  9330  	return s.String()
  9331  }
  9332  
  9333  func newErrorNotFoundException(v protocol.ResponseMetadata) error {
  9334  	return &NotFoundException{
  9335  		RespMetadata: v,
  9336  	}
  9337  }
  9338  
  9339  // Code returns the exception type name.
  9340  func (s *NotFoundException) Code() string {
  9341  	return "NotFoundException"
  9342  }
  9343  
  9344  // Message returns the exception's message.
  9345  func (s *NotFoundException) Message() string {
  9346  	if s.Message_ != nil {
  9347  		return *s.Message_
  9348  	}
  9349  	return ""
  9350  }
  9351  
  9352  // OrigErr always returns nil, satisfies awserr.Error interface.
  9353  func (s *NotFoundException) OrigErr() error {
  9354  	return nil
  9355  }
  9356  
  9357  func (s *NotFoundException) Error() string {
  9358  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  9359  }
  9360  
  9361  // Status code returns the HTTP status code for the request's response error.
  9362  func (s *NotFoundException) StatusCode() int {
  9363  	return s.RespMetadata.StatusCode
  9364  }
  9365  
  9366  // RequestID returns the service's response RequestID for request.
  9367  func (s *NotFoundException) RequestID() string {
  9368  	return s.RespMetadata.RequestID
  9369  }
  9370  
  9371  // An object representing the OpenID Connect (https://openid.net/connect/) (OIDC)
  9372  // identity provider information for the cluster.
  9373  type OIDC struct {
  9374  	_ struct{} `type:"structure"`
  9375  
  9376  	// The issuer URL for the OIDC identity provider.
  9377  	Issuer *string `locationName:"issuer" type:"string"`
  9378  }
  9379  
  9380  // String returns the string representation.
  9381  //
  9382  // API parameter values that are decorated as "sensitive" in the API will not
  9383  // be included in the string output. The member name will be present, but the
  9384  // value will be replaced with "sensitive".
  9385  func (s OIDC) String() string {
  9386  	return awsutil.Prettify(s)
  9387  }
  9388  
  9389  // GoString returns the string representation.
  9390  //
  9391  // API parameter values that are decorated as "sensitive" in the API will not
  9392  // be included in the string output. The member name will be present, but the
  9393  // value will be replaced with "sensitive".
  9394  func (s OIDC) GoString() string {
  9395  	return s.String()
  9396  }
  9397  
  9398  // SetIssuer sets the Issuer field's value.
  9399  func (s *OIDC) SetIssuer(v string) *OIDC {
  9400  	s.Issuer = &v
  9401  	return s
  9402  }
  9403  
  9404  // An object that represents the configuration for an OpenID Connect (OIDC)
  9405  // identity provider.
  9406  type OidcIdentityProviderConfig struct {
  9407  	_ struct{} `type:"structure"`
  9408  
  9409  	// This is also known as audience. The ID of the client application that makes
  9410  	// authentication requests to the OIDC identity provider.
  9411  	ClientId *string `locationName:"clientId" type:"string"`
  9412  
  9413  	// The cluster that the configuration is associated to.
  9414  	ClusterName *string `locationName:"clusterName" type:"string"`
  9415  
  9416  	// The JSON web token (JWT) claim that the provider uses to return your groups.
  9417  	GroupsClaim *string `locationName:"groupsClaim" type:"string"`
  9418  
  9419  	// The prefix that is prepended to group claims to prevent clashes with existing
  9420  	// names (such as system: groups). For example, the valueoidc: creates group
  9421  	// names like oidc:engineering and oidc:infra. The prefix can't contain system:
  9422  	GroupsPrefix *string `locationName:"groupsPrefix" type:"string"`
  9423  
  9424  	// The ARN of the configuration.
  9425  	IdentityProviderConfigArn *string `locationName:"identityProviderConfigArn" type:"string"`
  9426  
  9427  	// The name of the configuration.
  9428  	IdentityProviderConfigName *string `locationName:"identityProviderConfigName" type:"string"`
  9429  
  9430  	// The URL of the OIDC identity provider that allows the API server to discover
  9431  	// public signing keys for verifying tokens.
  9432  	IssuerUrl *string `locationName:"issuerUrl" type:"string"`
  9433  
  9434  	// The key-value pairs that describe required claims in the identity token.
  9435  	// If set, each claim is verified to be present in the token with a matching
  9436  	// value.
  9437  	RequiredClaims map[string]*string `locationName:"requiredClaims" type:"map"`
  9438  
  9439  	// The status of the OIDC identity provider.
  9440  	Status *string `locationName:"status" type:"string" enum:"ConfigStatus"`
  9441  
  9442  	// The metadata to apply to the provider configuration to assist with categorization
  9443  	// and organization. Each tag consists of a key and an optional value, both
  9444  	// of which you defined.
  9445  	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
  9446  
  9447  	// The JSON Web token (JWT) claim that is used as the username.
  9448  	UsernameClaim *string `locationName:"usernameClaim" type:"string"`
  9449  
  9450  	// The prefix that is prepended to username claims to prevent clashes with existing
  9451  	// names. The prefix can't contain system:
  9452  	UsernamePrefix *string `locationName:"usernamePrefix" type:"string"`
  9453  }
  9454  
  9455  // String returns the string representation.
  9456  //
  9457  // API parameter values that are decorated as "sensitive" in the API will not
  9458  // be included in the string output. The member name will be present, but the
  9459  // value will be replaced with "sensitive".
  9460  func (s OidcIdentityProviderConfig) String() string {
  9461  	return awsutil.Prettify(s)
  9462  }
  9463  
  9464  // GoString returns the string representation.
  9465  //
  9466  // API parameter values that are decorated as "sensitive" in the API will not
  9467  // be included in the string output. The member name will be present, but the
  9468  // value will be replaced with "sensitive".
  9469  func (s OidcIdentityProviderConfig) GoString() string {
  9470  	return s.String()
  9471  }
  9472  
  9473  // SetClientId sets the ClientId field's value.
  9474  func (s *OidcIdentityProviderConfig) SetClientId(v string) *OidcIdentityProviderConfig {
  9475  	s.ClientId = &v
  9476  	return s
  9477  }
  9478  
  9479  // SetClusterName sets the ClusterName field's value.
  9480  func (s *OidcIdentityProviderConfig) SetClusterName(v string) *OidcIdentityProviderConfig {
  9481  	s.ClusterName = &v
  9482  	return s
  9483  }
  9484  
  9485  // SetGroupsClaim sets the GroupsClaim field's value.
  9486  func (s *OidcIdentityProviderConfig) SetGroupsClaim(v string) *OidcIdentityProviderConfig {
  9487  	s.GroupsClaim = &v
  9488  	return s
  9489  }
  9490  
  9491  // SetGroupsPrefix sets the GroupsPrefix field's value.
  9492  func (s *OidcIdentityProviderConfig) SetGroupsPrefix(v string) *OidcIdentityProviderConfig {
  9493  	s.GroupsPrefix = &v
  9494  	return s
  9495  }
  9496  
  9497  // SetIdentityProviderConfigArn sets the IdentityProviderConfigArn field's value.
  9498  func (s *OidcIdentityProviderConfig) SetIdentityProviderConfigArn(v string) *OidcIdentityProviderConfig {
  9499  	s.IdentityProviderConfigArn = &v
  9500  	return s
  9501  }
  9502  
  9503  // SetIdentityProviderConfigName sets the IdentityProviderConfigName field's value.
  9504  func (s *OidcIdentityProviderConfig) SetIdentityProviderConfigName(v string) *OidcIdentityProviderConfig {
  9505  	s.IdentityProviderConfigName = &v
  9506  	return s
  9507  }
  9508  
  9509  // SetIssuerUrl sets the IssuerUrl field's value.
  9510  func (s *OidcIdentityProviderConfig) SetIssuerUrl(v string) *OidcIdentityProviderConfig {
  9511  	s.IssuerUrl = &v
  9512  	return s
  9513  }
  9514  
  9515  // SetRequiredClaims sets the RequiredClaims field's value.
  9516  func (s *OidcIdentityProviderConfig) SetRequiredClaims(v map[string]*string) *OidcIdentityProviderConfig {
  9517  	s.RequiredClaims = v
  9518  	return s
  9519  }
  9520  
  9521  // SetStatus sets the Status field's value.
  9522  func (s *OidcIdentityProviderConfig) SetStatus(v string) *OidcIdentityProviderConfig {
  9523  	s.Status = &v
  9524  	return s
  9525  }
  9526  
  9527  // SetTags sets the Tags field's value.
  9528  func (s *OidcIdentityProviderConfig) SetTags(v map[string]*string) *OidcIdentityProviderConfig {
  9529  	s.Tags = v
  9530  	return s
  9531  }
  9532  
  9533  // SetUsernameClaim sets the UsernameClaim field's value.
  9534  func (s *OidcIdentityProviderConfig) SetUsernameClaim(v string) *OidcIdentityProviderConfig {
  9535  	s.UsernameClaim = &v
  9536  	return s
  9537  }
  9538  
  9539  // SetUsernamePrefix sets the UsernamePrefix field's value.
  9540  func (s *OidcIdentityProviderConfig) SetUsernamePrefix(v string) *OidcIdentityProviderConfig {
  9541  	s.UsernamePrefix = &v
  9542  	return s
  9543  }
  9544  
  9545  // An object representing an OpenID Connect (OIDC) configuration. Before associating
  9546  // an OIDC identity provider to your cluster, review the considerations in Authenticating
  9547  // users for your cluster from an OpenID Connect identity provider (https://docs.aws.amazon.com/eks/latest/userguide/authenticate-oidc-identity-provider.html)
  9548  // in the Amazon EKS User Guide.
  9549  type OidcIdentityProviderConfigRequest struct {
  9550  	_ struct{} `type:"structure"`
  9551  
  9552  	// This is also known as audience. The ID for the client application that makes
  9553  	// authentication requests to the OpenID identity provider.
  9554  	//
  9555  	// ClientId is a required field
  9556  	ClientId *string `locationName:"clientId" type:"string" required:"true"`
  9557  
  9558  	// The JWT claim that the provider uses to return your groups.
  9559  	GroupsClaim *string `locationName:"groupsClaim" type:"string"`
  9560  
  9561  	// The prefix that is prepended to group claims to prevent clashes with existing
  9562  	// names (such as system: groups). For example, the valueoidc: will create group
  9563  	// names like oidc:engineering and oidc:infra.
  9564  	GroupsPrefix *string `locationName:"groupsPrefix" type:"string"`
  9565  
  9566  	// The name of the OIDC provider configuration.
  9567  	//
  9568  	// IdentityProviderConfigName is a required field
  9569  	IdentityProviderConfigName *string `locationName:"identityProviderConfigName" type:"string" required:"true"`
  9570  
  9571  	// The URL of the OpenID identity provider that allows the API server to discover
  9572  	// public signing keys for verifying tokens. The URL must begin with https://
  9573  	// and should correspond to the iss claim in the provider's OIDC ID tokens.
  9574  	// Per the OIDC standard, path components are allowed but query parameters are
  9575  	// not. Typically the URL consists of only a hostname, like https://server.example.org
  9576  	// or https://example.com. This URL should point to the level below .well-known/openid-configuration
  9577  	// and must be publicly accessible over the internet.
  9578  	//
  9579  	// IssuerUrl is a required field
  9580  	IssuerUrl *string `locationName:"issuerUrl" type:"string" required:"true"`
  9581  
  9582  	// The key value pairs that describe required claims in the identity token.
  9583  	// If set, each claim is verified to be present in the token with a matching
  9584  	// value. For the maximum number of claims that you can require, see Amazon
  9585  	// EKS service quotas (https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html)
  9586  	// in the Amazon EKS User Guide.
  9587  	RequiredClaims map[string]*string `locationName:"requiredClaims" type:"map"`
  9588  
  9589  	// The JSON Web Token (JWT) claim to use as the username. The default is sub,
  9590  	// which is expected to be a unique identifier of the end user. You can choose
  9591  	// other claims, such as email or name, depending on the OpenID identity provider.
  9592  	// Claims other than email are prefixed with the issuer URL to prevent naming
  9593  	// clashes with other plug-ins.
  9594  	UsernameClaim *string `locationName:"usernameClaim" type:"string"`
  9595  
  9596  	// The prefix that is prepended to username claims to prevent clashes with existing
  9597  	// names. If you do not provide this field, and username is a value other than
  9598  	// email, the prefix defaults to issuerurl#. You can use the value - to disable
  9599  	// all prefixing.
  9600  	UsernamePrefix *string `locationName:"usernamePrefix" type:"string"`
  9601  }
  9602  
  9603  // String returns the string representation.
  9604  //
  9605  // API parameter values that are decorated as "sensitive" in the API will not
  9606  // be included in the string output. The member name will be present, but the
  9607  // value will be replaced with "sensitive".
  9608  func (s OidcIdentityProviderConfigRequest) String() string {
  9609  	return awsutil.Prettify(s)
  9610  }
  9611  
  9612  // GoString returns the string representation.
  9613  //
  9614  // API parameter values that are decorated as "sensitive" in the API will not
  9615  // be included in the string output. The member name will be present, but the
  9616  // value will be replaced with "sensitive".
  9617  func (s OidcIdentityProviderConfigRequest) GoString() string {
  9618  	return s.String()
  9619  }
  9620  
  9621  // Validate inspects the fields of the type to determine if they are valid.
  9622  func (s *OidcIdentityProviderConfigRequest) Validate() error {
  9623  	invalidParams := request.ErrInvalidParams{Context: "OidcIdentityProviderConfigRequest"}
  9624  	if s.ClientId == nil {
  9625  		invalidParams.Add(request.NewErrParamRequired("ClientId"))
  9626  	}
  9627  	if s.IdentityProviderConfigName == nil {
  9628  		invalidParams.Add(request.NewErrParamRequired("IdentityProviderConfigName"))
  9629  	}
  9630  	if s.IssuerUrl == nil {
  9631  		invalidParams.Add(request.NewErrParamRequired("IssuerUrl"))
  9632  	}
  9633  
  9634  	if invalidParams.Len() > 0 {
  9635  		return invalidParams
  9636  	}
  9637  	return nil
  9638  }
  9639  
  9640  // SetClientId sets the ClientId field's value.
  9641  func (s *OidcIdentityProviderConfigRequest) SetClientId(v string) *OidcIdentityProviderConfigRequest {
  9642  	s.ClientId = &v
  9643  	return s
  9644  }
  9645  
  9646  // SetGroupsClaim sets the GroupsClaim field's value.
  9647  func (s *OidcIdentityProviderConfigRequest) SetGroupsClaim(v string) *OidcIdentityProviderConfigRequest {
  9648  	s.GroupsClaim = &v
  9649  	return s
  9650  }
  9651  
  9652  // SetGroupsPrefix sets the GroupsPrefix field's value.
  9653  func (s *OidcIdentityProviderConfigRequest) SetGroupsPrefix(v string) *OidcIdentityProviderConfigRequest {
  9654  	s.GroupsPrefix = &v
  9655  	return s
  9656  }
  9657  
  9658  // SetIdentityProviderConfigName sets the IdentityProviderConfigName field's value.
  9659  func (s *OidcIdentityProviderConfigRequest) SetIdentityProviderConfigName(v string) *OidcIdentityProviderConfigRequest {
  9660  	s.IdentityProviderConfigName = &v
  9661  	return s
  9662  }
  9663  
  9664  // SetIssuerUrl sets the IssuerUrl field's value.
  9665  func (s *OidcIdentityProviderConfigRequest) SetIssuerUrl(v string) *OidcIdentityProviderConfigRequest {
  9666  	s.IssuerUrl = &v
  9667  	return s
  9668  }
  9669  
  9670  // SetRequiredClaims sets the RequiredClaims field's value.
  9671  func (s *OidcIdentityProviderConfigRequest) SetRequiredClaims(v map[string]*string) *OidcIdentityProviderConfigRequest {
  9672  	s.RequiredClaims = v
  9673  	return s
  9674  }
  9675  
  9676  // SetUsernameClaim sets the UsernameClaim field's value.
  9677  func (s *OidcIdentityProviderConfigRequest) SetUsernameClaim(v string) *OidcIdentityProviderConfigRequest {
  9678  	s.UsernameClaim = &v
  9679  	return s
  9680  }
  9681  
  9682  // SetUsernamePrefix sets the UsernamePrefix field's value.
  9683  func (s *OidcIdentityProviderConfigRequest) SetUsernamePrefix(v string) *OidcIdentityProviderConfigRequest {
  9684  	s.UsernamePrefix = &v
  9685  	return s
  9686  }
  9687  
  9688  // Identifies the Key Management Service (KMS) key used to encrypt the secrets.
  9689  type Provider struct {
  9690  	_ struct{} `type:"structure"`
  9691  
  9692  	// Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric,
  9693  	// created in the same region as the cluster, and if the KMS key was created
  9694  	// in a different account, the user must have access to the KMS key. For more
  9695  	// information, see Allowing Users in Other Accounts to Use a KMS key (https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)
  9696  	// in the Key Management Service Developer Guide.
  9697  	KeyArn *string `locationName:"keyArn" type:"string"`
  9698  }
  9699  
  9700  // String returns the string representation.
  9701  //
  9702  // API parameter values that are decorated as "sensitive" in the API will not
  9703  // be included in the string output. The member name will be present, but the
  9704  // value will be replaced with "sensitive".
  9705  func (s Provider) String() string {
  9706  	return awsutil.Prettify(s)
  9707  }
  9708  
  9709  // GoString returns the string representation.
  9710  //
  9711  // API parameter values that are decorated as "sensitive" in the API will not
  9712  // be included in the string output. The member name will be present, but the
  9713  // value will be replaced with "sensitive".
  9714  func (s Provider) GoString() string {
  9715  	return s.String()
  9716  }
  9717  
  9718  // SetKeyArn sets the KeyArn field's value.
  9719  func (s *Provider) SetKeyArn(v string) *Provider {
  9720  	s.KeyArn = &v
  9721  	return s
  9722  }
  9723  
  9724  type RegisterClusterInput struct {
  9725  	_ struct{} `type:"structure"`
  9726  
  9727  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  9728  	// of the request.
  9729  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
  9730  
  9731  	// The configuration settings required to connect the Kubernetes cluster to
  9732  	// the Amazon EKS control plane.
  9733  	//
  9734  	// ConnectorConfig is a required field
  9735  	ConnectorConfig *ConnectorConfigRequest `locationName:"connectorConfig" type:"structure" required:"true"`
  9736  
  9737  	// Define a unique name for this cluster within your AWS account.
  9738  	//
  9739  	// Name is a required field
  9740  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
  9741  }
  9742  
  9743  // String returns the string representation.
  9744  //
  9745  // API parameter values that are decorated as "sensitive" in the API will not
  9746  // be included in the string output. The member name will be present, but the
  9747  // value will be replaced with "sensitive".
  9748  func (s RegisterClusterInput) String() string {
  9749  	return awsutil.Prettify(s)
  9750  }
  9751  
  9752  // GoString returns the string representation.
  9753  //
  9754  // API parameter values that are decorated as "sensitive" in the API will not
  9755  // be included in the string output. The member name will be present, but the
  9756  // value will be replaced with "sensitive".
  9757  func (s RegisterClusterInput) GoString() string {
  9758  	return s.String()
  9759  }
  9760  
  9761  // Validate inspects the fields of the type to determine if they are valid.
  9762  func (s *RegisterClusterInput) Validate() error {
  9763  	invalidParams := request.ErrInvalidParams{Context: "RegisterClusterInput"}
  9764  	if s.ConnectorConfig == nil {
  9765  		invalidParams.Add(request.NewErrParamRequired("ConnectorConfig"))
  9766  	}
  9767  	if s.Name == nil {
  9768  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9769  	}
  9770  	if s.Name != nil && len(*s.Name) < 1 {
  9771  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  9772  	}
  9773  	if s.ConnectorConfig != nil {
  9774  		if err := s.ConnectorConfig.Validate(); err != nil {
  9775  			invalidParams.AddNested("ConnectorConfig", err.(request.ErrInvalidParams))
  9776  		}
  9777  	}
  9778  
  9779  	if invalidParams.Len() > 0 {
  9780  		return invalidParams
  9781  	}
  9782  	return nil
  9783  }
  9784  
  9785  // SetClientRequestToken sets the ClientRequestToken field's value.
  9786  func (s *RegisterClusterInput) SetClientRequestToken(v string) *RegisterClusterInput {
  9787  	s.ClientRequestToken = &v
  9788  	return s
  9789  }
  9790  
  9791  // SetConnectorConfig sets the ConnectorConfig field's value.
  9792  func (s *RegisterClusterInput) SetConnectorConfig(v *ConnectorConfigRequest) *RegisterClusterInput {
  9793  	s.ConnectorConfig = v
  9794  	return s
  9795  }
  9796  
  9797  // SetName sets the Name field's value.
  9798  func (s *RegisterClusterInput) SetName(v string) *RegisterClusterInput {
  9799  	s.Name = &v
  9800  	return s
  9801  }
  9802  
  9803  type RegisterClusterOutput struct {
  9804  	_ struct{} `type:"structure"`
  9805  
  9806  	// An object representing an Amazon EKS cluster.
  9807  	Cluster *Cluster `locationName:"cluster" type:"structure"`
  9808  }
  9809  
  9810  // String returns the string representation.
  9811  //
  9812  // API parameter values that are decorated as "sensitive" in the API will not
  9813  // be included in the string output. The member name will be present, but the
  9814  // value will be replaced with "sensitive".
  9815  func (s RegisterClusterOutput) String() string {
  9816  	return awsutil.Prettify(s)
  9817  }
  9818  
  9819  // GoString returns the string representation.
  9820  //
  9821  // API parameter values that are decorated as "sensitive" in the API will not
  9822  // be included in the string output. The member name will be present, but the
  9823  // value will be replaced with "sensitive".
  9824  func (s RegisterClusterOutput) GoString() string {
  9825  	return s.String()
  9826  }
  9827  
  9828  // SetCluster sets the Cluster field's value.
  9829  func (s *RegisterClusterOutput) SetCluster(v *Cluster) *RegisterClusterOutput {
  9830  	s.Cluster = v
  9831  	return s
  9832  }
  9833  
  9834  // An object representing the remote access configuration for the managed node
  9835  // group.
  9836  type RemoteAccessConfig struct {
  9837  	_ struct{} `type:"structure"`
  9838  
  9839  	// The Amazon EC2 SSH key that provides access for SSH communication with the
  9840  	// nodes in the managed node group. For more information, see Amazon EC2 key
  9841  	// pairs and Linux instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)
  9842  	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances.
  9843  	Ec2SshKey *string `locationName:"ec2SshKey" type:"string"`
  9844  
  9845  	// The security groups that are allowed SSH access (port 22) to the nodes. If
  9846  	// you specify an Amazon EC2 SSH key but do not specify a source security group
  9847  	// when you create a managed node group, then port 22 on the nodes is opened
  9848  	// to the internet (0.0.0.0/0). For more information, see Security Groups for
  9849  	// Your VPC (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)
  9850  	// in the Amazon Virtual Private Cloud User Guide.
  9851  	SourceSecurityGroups []*string `locationName:"sourceSecurityGroups" type:"list"`
  9852  }
  9853  
  9854  // String returns the string representation.
  9855  //
  9856  // API parameter values that are decorated as "sensitive" in the API will not
  9857  // be included in the string output. The member name will be present, but the
  9858  // value will be replaced with "sensitive".
  9859  func (s RemoteAccessConfig) String() string {
  9860  	return awsutil.Prettify(s)
  9861  }
  9862  
  9863  // GoString returns the string representation.
  9864  //
  9865  // API parameter values that are decorated as "sensitive" in the API will not
  9866  // be included in the string output. The member name will be present, but the
  9867  // value will be replaced with "sensitive".
  9868  func (s RemoteAccessConfig) GoString() string {
  9869  	return s.String()
  9870  }
  9871  
  9872  // SetEc2SshKey sets the Ec2SshKey field's value.
  9873  func (s *RemoteAccessConfig) SetEc2SshKey(v string) *RemoteAccessConfig {
  9874  	s.Ec2SshKey = &v
  9875  	return s
  9876  }
  9877  
  9878  // SetSourceSecurityGroups sets the SourceSecurityGroups field's value.
  9879  func (s *RemoteAccessConfig) SetSourceSecurityGroups(v []*string) *RemoteAccessConfig {
  9880  	s.SourceSecurityGroups = v
  9881  	return s
  9882  }
  9883  
  9884  // The specified resource is in use.
  9885  type ResourceInUseException struct {
  9886  	_            struct{}                  `type:"structure"`
  9887  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9888  
  9889  	AddonName *string `locationName:"addonName" type:"string"`
  9890  
  9891  	// The Amazon EKS cluster associated with the exception.
  9892  	ClusterName *string `locationName:"clusterName" type:"string"`
  9893  
  9894  	Message_ *string `locationName:"message" type:"string"`
  9895  
  9896  	// The Amazon EKS managed node group associated with the exception.
  9897  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
  9898  }
  9899  
  9900  // String returns the string representation.
  9901  //
  9902  // API parameter values that are decorated as "sensitive" in the API will not
  9903  // be included in the string output. The member name will be present, but the
  9904  // value will be replaced with "sensitive".
  9905  func (s ResourceInUseException) String() string {
  9906  	return awsutil.Prettify(s)
  9907  }
  9908  
  9909  // GoString returns the string representation.
  9910  //
  9911  // API parameter values that are decorated as "sensitive" in the API will not
  9912  // be included in the string output. The member name will be present, but the
  9913  // value will be replaced with "sensitive".
  9914  func (s ResourceInUseException) GoString() string {
  9915  	return s.String()
  9916  }
  9917  
  9918  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
  9919  	return &ResourceInUseException{
  9920  		RespMetadata: v,
  9921  	}
  9922  }
  9923  
  9924  // Code returns the exception type name.
  9925  func (s *ResourceInUseException) Code() string {
  9926  	return "ResourceInUseException"
  9927  }
  9928  
  9929  // Message returns the exception's message.
  9930  func (s *ResourceInUseException) Message() string {
  9931  	if s.Message_ != nil {
  9932  		return *s.Message_
  9933  	}
  9934  	return ""
  9935  }
  9936  
  9937  // OrigErr always returns nil, satisfies awserr.Error interface.
  9938  func (s *ResourceInUseException) OrigErr() error {
  9939  	return nil
  9940  }
  9941  
  9942  func (s *ResourceInUseException) Error() string {
  9943  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  9944  }
  9945  
  9946  // Status code returns the HTTP status code for the request's response error.
  9947  func (s *ResourceInUseException) StatusCode() int {
  9948  	return s.RespMetadata.StatusCode
  9949  }
  9950  
  9951  // RequestID returns the service's response RequestID for request.
  9952  func (s *ResourceInUseException) RequestID() string {
  9953  	return s.RespMetadata.RequestID
  9954  }
  9955  
  9956  // You have encountered a service limit on the specified resource.
  9957  type ResourceLimitExceededException struct {
  9958  	_            struct{}                  `type:"structure"`
  9959  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9960  
  9961  	// The Amazon EKS cluster associated with the exception.
  9962  	ClusterName *string `locationName:"clusterName" type:"string"`
  9963  
  9964  	Message_ *string `locationName:"message" type:"string"`
  9965  
  9966  	// The Amazon EKS managed node group associated with the exception.
  9967  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
  9968  }
  9969  
  9970  // String returns the string representation.
  9971  //
  9972  // API parameter values that are decorated as "sensitive" in the API will not
  9973  // be included in the string output. The member name will be present, but the
  9974  // value will be replaced with "sensitive".
  9975  func (s ResourceLimitExceededException) String() string {
  9976  	return awsutil.Prettify(s)
  9977  }
  9978  
  9979  // GoString returns the string representation.
  9980  //
  9981  // API parameter values that are decorated as "sensitive" in the API will not
  9982  // be included in the string output. The member name will be present, but the
  9983  // value will be replaced with "sensitive".
  9984  func (s ResourceLimitExceededException) GoString() string {
  9985  	return s.String()
  9986  }
  9987  
  9988  func newErrorResourceLimitExceededException(v protocol.ResponseMetadata) error {
  9989  	return &ResourceLimitExceededException{
  9990  		RespMetadata: v,
  9991  	}
  9992  }
  9993  
  9994  // Code returns the exception type name.
  9995  func (s *ResourceLimitExceededException) Code() string {
  9996  	return "ResourceLimitExceededException"
  9997  }
  9998  
  9999  // Message returns the exception's message.
 10000  func (s *ResourceLimitExceededException) Message() string {
 10001  	if s.Message_ != nil {
 10002  		return *s.Message_
 10003  	}
 10004  	return ""
 10005  }
 10006  
 10007  // OrigErr always returns nil, satisfies awserr.Error interface.
 10008  func (s *ResourceLimitExceededException) OrigErr() error {
 10009  	return nil
 10010  }
 10011  
 10012  func (s *ResourceLimitExceededException) Error() string {
 10013  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 10014  }
 10015  
 10016  // Status code returns the HTTP status code for the request's response error.
 10017  func (s *ResourceLimitExceededException) StatusCode() int {
 10018  	return s.RespMetadata.StatusCode
 10019  }
 10020  
 10021  // RequestID returns the service's response RequestID for request.
 10022  func (s *ResourceLimitExceededException) RequestID() string {
 10023  	return s.RespMetadata.RequestID
 10024  }
 10025  
 10026  // The specified resource could not be found. You can view your available clusters
 10027  // with ListClusters. You can view your available managed node groups with ListNodegroups.
 10028  // Amazon EKS clusters and node groups are Region-specific.
 10029  type ResourceNotFoundException struct {
 10030  	_            struct{}                  `type:"structure"`
 10031  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10032  
 10033  	AddonName *string `locationName:"addonName" type:"string"`
 10034  
 10035  	// The Amazon EKS cluster associated with the exception.
 10036  	ClusterName *string `locationName:"clusterName" type:"string"`
 10037  
 10038  	// The Fargate profile associated with the exception.
 10039  	FargateProfileName *string `locationName:"fargateProfileName" type:"string"`
 10040  
 10041  	Message_ *string `locationName:"message" type:"string"`
 10042  
 10043  	// The Amazon EKS managed node group associated with the exception.
 10044  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
 10045  }
 10046  
 10047  // String returns the string representation.
 10048  //
 10049  // API parameter values that are decorated as "sensitive" in the API will not
 10050  // be included in the string output. The member name will be present, but the
 10051  // value will be replaced with "sensitive".
 10052  func (s ResourceNotFoundException) String() string {
 10053  	return awsutil.Prettify(s)
 10054  }
 10055  
 10056  // GoString returns the string representation.
 10057  //
 10058  // API parameter values that are decorated as "sensitive" in the API will not
 10059  // be included in the string output. The member name will be present, but the
 10060  // value will be replaced with "sensitive".
 10061  func (s ResourceNotFoundException) GoString() string {
 10062  	return s.String()
 10063  }
 10064  
 10065  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 10066  	return &ResourceNotFoundException{
 10067  		RespMetadata: v,
 10068  	}
 10069  }
 10070  
 10071  // Code returns the exception type name.
 10072  func (s *ResourceNotFoundException) Code() string {
 10073  	return "ResourceNotFoundException"
 10074  }
 10075  
 10076  // Message returns the exception's message.
 10077  func (s *ResourceNotFoundException) Message() string {
 10078  	if s.Message_ != nil {
 10079  		return *s.Message_
 10080  	}
 10081  	return ""
 10082  }
 10083  
 10084  // OrigErr always returns nil, satisfies awserr.Error interface.
 10085  func (s *ResourceNotFoundException) OrigErr() error {
 10086  	return nil
 10087  }
 10088  
 10089  func (s *ResourceNotFoundException) Error() string {
 10090  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 10091  }
 10092  
 10093  // Status code returns the HTTP status code for the request's response error.
 10094  func (s *ResourceNotFoundException) StatusCode() int {
 10095  	return s.RespMetadata.StatusCode
 10096  }
 10097  
 10098  // RequestID returns the service's response RequestID for request.
 10099  func (s *ResourceNotFoundException) RequestID() string {
 10100  	return s.RespMetadata.RequestID
 10101  }
 10102  
 10103  // These errors are usually caused by a server-side issue.
 10104  type ServerException struct {
 10105  	_            struct{}                  `type:"structure"`
 10106  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10107  
 10108  	AddonName *string `locationName:"addonName" type:"string"`
 10109  
 10110  	// The Amazon EKS cluster associated with the exception.
 10111  	ClusterName *string `locationName:"clusterName" type:"string"`
 10112  
 10113  	Message_ *string `locationName:"message" type:"string"`
 10114  
 10115  	// The Amazon EKS managed node group associated with the exception.
 10116  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
 10117  }
 10118  
 10119  // String returns the string representation.
 10120  //
 10121  // API parameter values that are decorated as "sensitive" in the API will not
 10122  // be included in the string output. The member name will be present, but the
 10123  // value will be replaced with "sensitive".
 10124  func (s ServerException) String() string {
 10125  	return awsutil.Prettify(s)
 10126  }
 10127  
 10128  // GoString returns the string representation.
 10129  //
 10130  // API parameter values that are decorated as "sensitive" in the API will not
 10131  // be included in the string output. The member name will be present, but the
 10132  // value will be replaced with "sensitive".
 10133  func (s ServerException) GoString() string {
 10134  	return s.String()
 10135  }
 10136  
 10137  func newErrorServerException(v protocol.ResponseMetadata) error {
 10138  	return &ServerException{
 10139  		RespMetadata: v,
 10140  	}
 10141  }
 10142  
 10143  // Code returns the exception type name.
 10144  func (s *ServerException) Code() string {
 10145  	return "ServerException"
 10146  }
 10147  
 10148  // Message returns the exception's message.
 10149  func (s *ServerException) Message() string {
 10150  	if s.Message_ != nil {
 10151  		return *s.Message_
 10152  	}
 10153  	return ""
 10154  }
 10155  
 10156  // OrigErr always returns nil, satisfies awserr.Error interface.
 10157  func (s *ServerException) OrigErr() error {
 10158  	return nil
 10159  }
 10160  
 10161  func (s *ServerException) Error() string {
 10162  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 10163  }
 10164  
 10165  // Status code returns the HTTP status code for the request's response error.
 10166  func (s *ServerException) StatusCode() int {
 10167  	return s.RespMetadata.StatusCode
 10168  }
 10169  
 10170  // RequestID returns the service's response RequestID for request.
 10171  func (s *ServerException) RequestID() string {
 10172  	return s.RespMetadata.RequestID
 10173  }
 10174  
 10175  // The service is unavailable. Back off and retry the operation.
 10176  type ServiceUnavailableException struct {
 10177  	_            struct{}                  `type:"structure"`
 10178  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10179  
 10180  	Message_ *string `locationName:"message" type:"string"`
 10181  }
 10182  
 10183  // String returns the string representation.
 10184  //
 10185  // API parameter values that are decorated as "sensitive" in the API will not
 10186  // be included in the string output. The member name will be present, but the
 10187  // value will be replaced with "sensitive".
 10188  func (s ServiceUnavailableException) String() string {
 10189  	return awsutil.Prettify(s)
 10190  }
 10191  
 10192  // GoString returns the string representation.
 10193  //
 10194  // API parameter values that are decorated as "sensitive" in the API will not
 10195  // be included in the string output. The member name will be present, but the
 10196  // value will be replaced with "sensitive".
 10197  func (s ServiceUnavailableException) GoString() string {
 10198  	return s.String()
 10199  }
 10200  
 10201  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
 10202  	return &ServiceUnavailableException{
 10203  		RespMetadata: v,
 10204  	}
 10205  }
 10206  
 10207  // Code returns the exception type name.
 10208  func (s *ServiceUnavailableException) Code() string {
 10209  	return "ServiceUnavailableException"
 10210  }
 10211  
 10212  // Message returns the exception's message.
 10213  func (s *ServiceUnavailableException) Message() string {
 10214  	if s.Message_ != nil {
 10215  		return *s.Message_
 10216  	}
 10217  	return ""
 10218  }
 10219  
 10220  // OrigErr always returns nil, satisfies awserr.Error interface.
 10221  func (s *ServiceUnavailableException) OrigErr() error {
 10222  	return nil
 10223  }
 10224  
 10225  func (s *ServiceUnavailableException) Error() string {
 10226  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 10227  }
 10228  
 10229  // Status code returns the HTTP status code for the request's response error.
 10230  func (s *ServiceUnavailableException) StatusCode() int {
 10231  	return s.RespMetadata.StatusCode
 10232  }
 10233  
 10234  // RequestID returns the service's response RequestID for request.
 10235  func (s *ServiceUnavailableException) RequestID() string {
 10236  	return s.RespMetadata.RequestID
 10237  }
 10238  
 10239  type TagResourceInput struct {
 10240  	_ struct{} `type:"structure"`
 10241  
 10242  	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
 10243  	// the supported resources are Amazon EKS clusters and managed node groups.
 10244  	//
 10245  	// ResourceArn is a required field
 10246  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
 10247  
 10248  	// The tags to add to the resource. A tag is an array of key-value pairs.
 10249  	//
 10250  	// Tags is a required field
 10251  	Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"`
 10252  }
 10253  
 10254  // String returns the string representation.
 10255  //
 10256  // API parameter values that are decorated as "sensitive" in the API will not
 10257  // be included in the string output. The member name will be present, but the
 10258  // value will be replaced with "sensitive".
 10259  func (s TagResourceInput) String() string {
 10260  	return awsutil.Prettify(s)
 10261  }
 10262  
 10263  // GoString returns the string representation.
 10264  //
 10265  // API parameter values that are decorated as "sensitive" in the API will not
 10266  // be included in the string output. The member name will be present, but the
 10267  // value will be replaced with "sensitive".
 10268  func (s TagResourceInput) GoString() string {
 10269  	return s.String()
 10270  }
 10271  
 10272  // Validate inspects the fields of the type to determine if they are valid.
 10273  func (s *TagResourceInput) Validate() error {
 10274  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 10275  	if s.ResourceArn == nil {
 10276  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 10277  	}
 10278  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 10279  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 10280  	}
 10281  	if s.Tags == nil {
 10282  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 10283  	}
 10284  	if s.Tags != nil && len(s.Tags) < 1 {
 10285  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
 10286  	}
 10287  
 10288  	if invalidParams.Len() > 0 {
 10289  		return invalidParams
 10290  	}
 10291  	return nil
 10292  }
 10293  
 10294  // SetResourceArn sets the ResourceArn field's value.
 10295  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 10296  	s.ResourceArn = &v
 10297  	return s
 10298  }
 10299  
 10300  // SetTags sets the Tags field's value.
 10301  func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
 10302  	s.Tags = v
 10303  	return s
 10304  }
 10305  
 10306  type TagResourceOutput struct {
 10307  	_ struct{} `type:"structure" nopayload:"true"`
 10308  }
 10309  
 10310  // String returns the string representation.
 10311  //
 10312  // API parameter values that are decorated as "sensitive" in the API will not
 10313  // be included in the string output. The member name will be present, but the
 10314  // value will be replaced with "sensitive".
 10315  func (s TagResourceOutput) String() string {
 10316  	return awsutil.Prettify(s)
 10317  }
 10318  
 10319  // GoString returns the string representation.
 10320  //
 10321  // API parameter values that are decorated as "sensitive" in the API will not
 10322  // be included in the string output. The member name will be present, but the
 10323  // value will be replaced with "sensitive".
 10324  func (s TagResourceOutput) GoString() string {
 10325  	return s.String()
 10326  }
 10327  
 10328  // A property that allows a node to repel a set of pods.
 10329  type Taint struct {
 10330  	_ struct{} `type:"structure"`
 10331  
 10332  	// The effect of the taint.
 10333  	Effect *string `locationName:"effect" type:"string" enum:"TaintEffect"`
 10334  
 10335  	// The key of the taint.
 10336  	Key *string `locationName:"key" min:"1" type:"string"`
 10337  
 10338  	// The value of the taint.
 10339  	Value *string `locationName:"value" type:"string"`
 10340  }
 10341  
 10342  // String returns the string representation.
 10343  //
 10344  // API parameter values that are decorated as "sensitive" in the API will not
 10345  // be included in the string output. The member name will be present, but the
 10346  // value will be replaced with "sensitive".
 10347  func (s Taint) String() string {
 10348  	return awsutil.Prettify(s)
 10349  }
 10350  
 10351  // GoString returns the string representation.
 10352  //
 10353  // API parameter values that are decorated as "sensitive" in the API will not
 10354  // be included in the string output. The member name will be present, but the
 10355  // value will be replaced with "sensitive".
 10356  func (s Taint) GoString() string {
 10357  	return s.String()
 10358  }
 10359  
 10360  // Validate inspects the fields of the type to determine if they are valid.
 10361  func (s *Taint) Validate() error {
 10362  	invalidParams := request.ErrInvalidParams{Context: "Taint"}
 10363  	if s.Key != nil && len(*s.Key) < 1 {
 10364  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 10365  	}
 10366  
 10367  	if invalidParams.Len() > 0 {
 10368  		return invalidParams
 10369  	}
 10370  	return nil
 10371  }
 10372  
 10373  // SetEffect sets the Effect field's value.
 10374  func (s *Taint) SetEffect(v string) *Taint {
 10375  	s.Effect = &v
 10376  	return s
 10377  }
 10378  
 10379  // SetKey sets the Key field's value.
 10380  func (s *Taint) SetKey(v string) *Taint {
 10381  	s.Key = &v
 10382  	return s
 10383  }
 10384  
 10385  // SetValue sets the Value field's value.
 10386  func (s *Taint) SetValue(v string) *Taint {
 10387  	s.Value = &v
 10388  	return s
 10389  }
 10390  
 10391  // At least one of your specified cluster subnets is in an Availability Zone
 10392  // that does not support Amazon EKS. The exception output specifies the supported
 10393  // Availability Zones for your account, from which you can choose subnets for
 10394  // your cluster.
 10395  type UnsupportedAvailabilityZoneException struct {
 10396  	_            struct{}                  `type:"structure"`
 10397  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10398  
 10399  	// The Amazon EKS cluster associated with the exception.
 10400  	ClusterName *string `locationName:"clusterName" type:"string"`
 10401  
 10402  	Message_ *string `locationName:"message" type:"string"`
 10403  
 10404  	// The Amazon EKS managed node group associated with the exception.
 10405  	NodegroupName *string `locationName:"nodegroupName" type:"string"`
 10406  
 10407  	// The supported Availability Zones for your account. Choose subnets in these
 10408  	// Availability Zones for your cluster.
 10409  	ValidZones []*string `locationName:"validZones" type:"list"`
 10410  }
 10411  
 10412  // String returns the string representation.
 10413  //
 10414  // API parameter values that are decorated as "sensitive" in the API will not
 10415  // be included in the string output. The member name will be present, but the
 10416  // value will be replaced with "sensitive".
 10417  func (s UnsupportedAvailabilityZoneException) String() string {
 10418  	return awsutil.Prettify(s)
 10419  }
 10420  
 10421  // GoString returns the string representation.
 10422  //
 10423  // API parameter values that are decorated as "sensitive" in the API will not
 10424  // be included in the string output. The member name will be present, but the
 10425  // value will be replaced with "sensitive".
 10426  func (s UnsupportedAvailabilityZoneException) GoString() string {
 10427  	return s.String()
 10428  }
 10429  
 10430  func newErrorUnsupportedAvailabilityZoneException(v protocol.ResponseMetadata) error {
 10431  	return &UnsupportedAvailabilityZoneException{
 10432  		RespMetadata: v,
 10433  	}
 10434  }
 10435  
 10436  // Code returns the exception type name.
 10437  func (s *UnsupportedAvailabilityZoneException) Code() string {
 10438  	return "UnsupportedAvailabilityZoneException"
 10439  }
 10440  
 10441  // Message returns the exception's message.
 10442  func (s *UnsupportedAvailabilityZoneException) Message() string {
 10443  	if s.Message_ != nil {
 10444  		return *s.Message_
 10445  	}
 10446  	return ""
 10447  }
 10448  
 10449  // OrigErr always returns nil, satisfies awserr.Error interface.
 10450  func (s *UnsupportedAvailabilityZoneException) OrigErr() error {
 10451  	return nil
 10452  }
 10453  
 10454  func (s *UnsupportedAvailabilityZoneException) Error() string {
 10455  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 10456  }
 10457  
 10458  // Status code returns the HTTP status code for the request's response error.
 10459  func (s *UnsupportedAvailabilityZoneException) StatusCode() int {
 10460  	return s.RespMetadata.StatusCode
 10461  }
 10462  
 10463  // RequestID returns the service's response RequestID for request.
 10464  func (s *UnsupportedAvailabilityZoneException) RequestID() string {
 10465  	return s.RespMetadata.RequestID
 10466  }
 10467  
 10468  type UntagResourceInput struct {
 10469  	_ struct{} `type:"structure" nopayload:"true"`
 10470  
 10471  	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
 10472  	// Currently, the supported resources are Amazon EKS clusters and managed node
 10473  	// groups.
 10474  	//
 10475  	// ResourceArn is a required field
 10476  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
 10477  
 10478  	// The keys of the tags to be removed.
 10479  	//
 10480  	// TagKeys is a required field
 10481  	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
 10482  }
 10483  
 10484  // String returns the string representation.
 10485  //
 10486  // API parameter values that are decorated as "sensitive" in the API will not
 10487  // be included in the string output. The member name will be present, but the
 10488  // value will be replaced with "sensitive".
 10489  func (s UntagResourceInput) String() string {
 10490  	return awsutil.Prettify(s)
 10491  }
 10492  
 10493  // GoString returns the string representation.
 10494  //
 10495  // API parameter values that are decorated as "sensitive" in the API will not
 10496  // be included in the string output. The member name will be present, but the
 10497  // value will be replaced with "sensitive".
 10498  func (s UntagResourceInput) GoString() string {
 10499  	return s.String()
 10500  }
 10501  
 10502  // Validate inspects the fields of the type to determine if they are valid.
 10503  func (s *UntagResourceInput) Validate() error {
 10504  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 10505  	if s.ResourceArn == nil {
 10506  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 10507  	}
 10508  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 10509  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 10510  	}
 10511  	if s.TagKeys == nil {
 10512  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 10513  	}
 10514  	if s.TagKeys != nil && len(s.TagKeys) < 1 {
 10515  		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
 10516  	}
 10517  
 10518  	if invalidParams.Len() > 0 {
 10519  		return invalidParams
 10520  	}
 10521  	return nil
 10522  }
 10523  
 10524  // SetResourceArn sets the ResourceArn field's value.
 10525  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 10526  	s.ResourceArn = &v
 10527  	return s
 10528  }
 10529  
 10530  // SetTagKeys sets the TagKeys field's value.
 10531  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 10532  	s.TagKeys = v
 10533  	return s
 10534  }
 10535  
 10536  type UntagResourceOutput struct {
 10537  	_ struct{} `type:"structure" nopayload:"true"`
 10538  }
 10539  
 10540  // String returns the string representation.
 10541  //
 10542  // API parameter values that are decorated as "sensitive" in the API will not
 10543  // be included in the string output. The member name will be present, but the
 10544  // value will be replaced with "sensitive".
 10545  func (s UntagResourceOutput) String() string {
 10546  	return awsutil.Prettify(s)
 10547  }
 10548  
 10549  // GoString returns the string representation.
 10550  //
 10551  // API parameter values that are decorated as "sensitive" in the API will not
 10552  // be included in the string output. The member name will be present, but the
 10553  // value will be replaced with "sensitive".
 10554  func (s UntagResourceOutput) GoString() string {
 10555  	return s.String()
 10556  }
 10557  
 10558  // An object representing an asynchronous update.
 10559  type Update struct {
 10560  	_ struct{} `type:"structure"`
 10561  
 10562  	// The Unix epoch timestamp in seconds for when the update was created.
 10563  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 10564  
 10565  	// Any errors associated with a Failed update.
 10566  	Errors []*ErrorDetail `locationName:"errors" type:"list"`
 10567  
 10568  	// A UUID that is used to track the update.
 10569  	Id *string `locationName:"id" type:"string"`
 10570  
 10571  	// A key-value map that contains the parameters associated with the update.
 10572  	Params []*UpdateParam `locationName:"params" type:"list"`
 10573  
 10574  	// The current status of the update.
 10575  	Status *string `locationName:"status" type:"string" enum:"UpdateStatus"`
 10576  
 10577  	// The type of the update.
 10578  	Type *string `locationName:"type" type:"string" enum:"UpdateType"`
 10579  }
 10580  
 10581  // String returns the string representation.
 10582  //
 10583  // API parameter values that are decorated as "sensitive" in the API will not
 10584  // be included in the string output. The member name will be present, but the
 10585  // value will be replaced with "sensitive".
 10586  func (s Update) String() string {
 10587  	return awsutil.Prettify(s)
 10588  }
 10589  
 10590  // GoString returns the string representation.
 10591  //
 10592  // API parameter values that are decorated as "sensitive" in the API will not
 10593  // be included in the string output. The member name will be present, but the
 10594  // value will be replaced with "sensitive".
 10595  func (s Update) GoString() string {
 10596  	return s.String()
 10597  }
 10598  
 10599  // SetCreatedAt sets the CreatedAt field's value.
 10600  func (s *Update) SetCreatedAt(v time.Time) *Update {
 10601  	s.CreatedAt = &v
 10602  	return s
 10603  }
 10604  
 10605  // SetErrors sets the Errors field's value.
 10606  func (s *Update) SetErrors(v []*ErrorDetail) *Update {
 10607  	s.Errors = v
 10608  	return s
 10609  }
 10610  
 10611  // SetId sets the Id field's value.
 10612  func (s *Update) SetId(v string) *Update {
 10613  	s.Id = &v
 10614  	return s
 10615  }
 10616  
 10617  // SetParams sets the Params field's value.
 10618  func (s *Update) SetParams(v []*UpdateParam) *Update {
 10619  	s.Params = v
 10620  	return s
 10621  }
 10622  
 10623  // SetStatus sets the Status field's value.
 10624  func (s *Update) SetStatus(v string) *Update {
 10625  	s.Status = &v
 10626  	return s
 10627  }
 10628  
 10629  // SetType sets the Type field's value.
 10630  func (s *Update) SetType(v string) *Update {
 10631  	s.Type = &v
 10632  	return s
 10633  }
 10634  
 10635  type UpdateAddonInput struct {
 10636  	_ struct{} `type:"structure"`
 10637  
 10638  	// The name of the add-on. The name must match one of the names returned by
 10639  	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
 10640  	//
 10641  	// AddonName is a required field
 10642  	AddonName *string `location:"uri" locationName:"addonName" type:"string" required:"true"`
 10643  
 10644  	// The version of the add-on. The version must match one of the versions returned
 10645  	// by DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html).
 10646  	AddonVersion *string `locationName:"addonVersion" type:"string"`
 10647  
 10648  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
 10649  	// of the request.
 10650  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
 10651  
 10652  	// The name of the cluster.
 10653  	//
 10654  	// ClusterName is a required field
 10655  	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
 10656  
 10657  	// How to resolve parameter value conflicts when applying the new version of
 10658  	// the add-on to the cluster.
 10659  	ResolveConflicts *string `locationName:"resolveConflicts" type:"string" enum:"ResolveConflicts"`
 10660  
 10661  	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's
 10662  	// service account. The role must be assigned the IAM permissions required by
 10663  	// the add-on. If you don't specify an existing IAM role, then the add-on uses
 10664  	// the permissions assigned to the node IAM role. For more information, see
 10665  	// Amazon EKS node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html)
 10666  	// in the Amazon EKS User Guide.
 10667  	//
 10668  	// To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC)
 10669  	// provider created for your cluster. For more information, see Enabling IAM
 10670  	// roles for service accounts on your cluster (https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)
 10671  	// in the Amazon EKS User Guide.
 10672  	ServiceAccountRoleArn *string `locationName:"serviceAccountRoleArn" min:"1" type:"string"`
 10673  }
 10674  
 10675  // String returns the string representation.
 10676  //
 10677  // API parameter values that are decorated as "sensitive" in the API will not
 10678  // be included in the string output. The member name will be present, but the
 10679  // value will be replaced with "sensitive".
 10680  func (s UpdateAddonInput) String() string {
 10681  	return awsutil.Prettify(s)
 10682  }
 10683  
 10684  // GoString returns the string representation.
 10685  //
 10686  // API parameter values that are decorated as "sensitive" in the API will not
 10687  // be included in the string output. The member name will be present, but the
 10688  // value will be replaced with "sensitive".
 10689  func (s UpdateAddonInput) GoString() string {
 10690  	return s.String()
 10691  }
 10692  
 10693  // Validate inspects the fields of the type to determine if they are valid.
 10694  func (s *UpdateAddonInput) Validate() error {
 10695  	invalidParams := request.ErrInvalidParams{Context: "UpdateAddonInput"}
 10696  	if s.AddonName == nil {
 10697  		invalidParams.Add(request.NewErrParamRequired("AddonName"))
 10698  	}
 10699  	if s.AddonName != nil && len(*s.AddonName) < 1 {
 10700  		invalidParams.Add(request.NewErrParamMinLen("AddonName", 1))
 10701  	}
 10702  	if s.ClusterName == nil {
 10703  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
 10704  	}
 10705  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
 10706  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
 10707  	}
 10708  	if s.ServiceAccountRoleArn != nil && len(*s.ServiceAccountRoleArn) < 1 {
 10709  		invalidParams.Add(request.NewErrParamMinLen("ServiceAccountRoleArn", 1))
 10710  	}
 10711  
 10712  	if invalidParams.Len() > 0 {
 10713  		return invalidParams
 10714  	}
 10715  	return nil
 10716  }
 10717  
 10718  // SetAddonName sets the AddonName field's value.
 10719  func (s *UpdateAddonInput) SetAddonName(v string) *UpdateAddonInput {
 10720  	s.AddonName = &v
 10721  	return s
 10722  }
 10723  
 10724  // SetAddonVersion sets the AddonVersion field's value.
 10725  func (s *UpdateAddonInput) SetAddonVersion(v string) *UpdateAddonInput {
 10726  	s.AddonVersion = &v
 10727  	return s
 10728  }
 10729  
 10730  // SetClientRequestToken sets the ClientRequestToken field's value.
 10731  func (s *UpdateAddonInput) SetClientRequestToken(v string) *UpdateAddonInput {
 10732  	s.ClientRequestToken = &v
 10733  	return s
 10734  }
 10735  
 10736  // SetClusterName sets the ClusterName field's value.
 10737  func (s *UpdateAddonInput) SetClusterName(v string) *UpdateAddonInput {
 10738  	s.ClusterName = &v
 10739  	return s
 10740  }
 10741  
 10742  // SetResolveConflicts sets the ResolveConflicts field's value.
 10743  func (s *UpdateAddonInput) SetResolveConflicts(v string) *UpdateAddonInput {
 10744  	s.ResolveConflicts = &v
 10745  	return s
 10746  }
 10747  
 10748  // SetServiceAccountRoleArn sets the ServiceAccountRoleArn field's value.
 10749  func (s *UpdateAddonInput) SetServiceAccountRoleArn(v string) *UpdateAddonInput {
 10750  	s.ServiceAccountRoleArn = &v
 10751  	return s
 10752  }
 10753  
 10754  type UpdateAddonOutput struct {
 10755  	_ struct{} `type:"structure"`
 10756  
 10757  	// An object representing an asynchronous update.
 10758  	Update *Update `locationName:"update" type:"structure"`
 10759  }
 10760  
 10761  // String returns the string representation.
 10762  //
 10763  // API parameter values that are decorated as "sensitive" in the API will not
 10764  // be included in the string output. The member name will be present, but the
 10765  // value will be replaced with "sensitive".
 10766  func (s UpdateAddonOutput) String() string {
 10767  	return awsutil.Prettify(s)
 10768  }
 10769  
 10770  // GoString returns the string representation.
 10771  //
 10772  // API parameter values that are decorated as "sensitive" in the API will not
 10773  // be included in the string output. The member name will be present, but the
 10774  // value will be replaced with "sensitive".
 10775  func (s UpdateAddonOutput) GoString() string {
 10776  	return s.String()
 10777  }
 10778  
 10779  // SetUpdate sets the Update field's value.
 10780  func (s *UpdateAddonOutput) SetUpdate(v *Update) *UpdateAddonOutput {
 10781  	s.Update = v
 10782  	return s
 10783  }
 10784  
 10785  type UpdateClusterConfigInput struct {
 10786  	_ struct{} `type:"structure"`
 10787  
 10788  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
 10789  	// of the request.
 10790  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
 10791  
 10792  	// Enable or disable exporting the Kubernetes control plane logs for your cluster
 10793  	// to CloudWatch Logs. By default, cluster control plane logs aren't exported
 10794  	// to CloudWatch Logs. For more information, see Amazon EKS cluster control
 10795  	// plane logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
 10796  	// in the Amazon EKS User Guide .
 10797  	//
 10798  	// CloudWatch Logs ingestion, archive storage, and data scanning rates apply
 10799  	// to exported control plane logs. For more information, see CloudWatch Pricing
 10800  	// (http://aws.amazon.com/cloudwatch/pricing/).
 10801  	Logging *Logging `locationName:"logging" type:"structure"`
 10802  
 10803  	// The name of the Amazon EKS cluster to update.
 10804  	//
 10805  	// Name is a required field
 10806  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
 10807  
 10808  	// An object representing the VPC configuration to use for an Amazon EKS cluster.
 10809  	ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure"`
 10810  }
 10811  
 10812  // String returns the string representation.
 10813  //
 10814  // API parameter values that are decorated as "sensitive" in the API will not
 10815  // be included in the string output. The member name will be present, but the
 10816  // value will be replaced with "sensitive".
 10817  func (s UpdateClusterConfigInput) String() string {
 10818  	return awsutil.Prettify(s)
 10819  }
 10820  
 10821  // GoString returns the string representation.
 10822  //
 10823  // API parameter values that are decorated as "sensitive" in the API will not
 10824  // be included in the string output. The member name will be present, but the
 10825  // value will be replaced with "sensitive".
 10826  func (s UpdateClusterConfigInput) GoString() string {
 10827  	return s.String()
 10828  }
 10829  
 10830  // Validate inspects the fields of the type to determine if they are valid.
 10831  func (s *UpdateClusterConfigInput) Validate() error {
 10832  	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterConfigInput"}
 10833  	if s.Name == nil {
 10834  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10835  	}
 10836  	if s.Name != nil && len(*s.Name) < 1 {
 10837  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10838  	}
 10839  
 10840  	if invalidParams.Len() > 0 {
 10841  		return invalidParams
 10842  	}
 10843  	return nil
 10844  }
 10845  
 10846  // SetClientRequestToken sets the ClientRequestToken field's value.
 10847  func (s *UpdateClusterConfigInput) SetClientRequestToken(v string) *UpdateClusterConfigInput {
 10848  	s.ClientRequestToken = &v
 10849  	return s
 10850  }
 10851  
 10852  // SetLogging sets the Logging field's value.
 10853  func (s *UpdateClusterConfigInput) SetLogging(v *Logging) *UpdateClusterConfigInput {
 10854  	s.Logging = v
 10855  	return s
 10856  }
 10857  
 10858  // SetName sets the Name field's value.
 10859  func (s *UpdateClusterConfigInput) SetName(v string) *UpdateClusterConfigInput {
 10860  	s.Name = &v
 10861  	return s
 10862  }
 10863  
 10864  // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.
 10865  func (s *UpdateClusterConfigInput) SetResourcesVpcConfig(v *VpcConfigRequest) *UpdateClusterConfigInput {
 10866  	s.ResourcesVpcConfig = v
 10867  	return s
 10868  }
 10869  
 10870  type UpdateClusterConfigOutput struct {
 10871  	_ struct{} `type:"structure"`
 10872  
 10873  	// An object representing an asynchronous update.
 10874  	Update *Update `locationName:"update" type:"structure"`
 10875  }
 10876  
 10877  // String returns the string representation.
 10878  //
 10879  // API parameter values that are decorated as "sensitive" in the API will not
 10880  // be included in the string output. The member name will be present, but the
 10881  // value will be replaced with "sensitive".
 10882  func (s UpdateClusterConfigOutput) String() string {
 10883  	return awsutil.Prettify(s)
 10884  }
 10885  
 10886  // GoString returns the string representation.
 10887  //
 10888  // API parameter values that are decorated as "sensitive" in the API will not
 10889  // be included in the string output. The member name will be present, but the
 10890  // value will be replaced with "sensitive".
 10891  func (s UpdateClusterConfigOutput) GoString() string {
 10892  	return s.String()
 10893  }
 10894  
 10895  // SetUpdate sets the Update field's value.
 10896  func (s *UpdateClusterConfigOutput) SetUpdate(v *Update) *UpdateClusterConfigOutput {
 10897  	s.Update = v
 10898  	return s
 10899  }
 10900  
 10901  type UpdateClusterVersionInput struct {
 10902  	_ struct{} `type:"structure"`
 10903  
 10904  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
 10905  	// of the request.
 10906  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
 10907  
 10908  	// The name of the Amazon EKS cluster to update.
 10909  	//
 10910  	// Name is a required field
 10911  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
 10912  
 10913  	// The desired Kubernetes version following a successful update.
 10914  	//
 10915  	// Version is a required field
 10916  	Version *string `locationName:"version" type:"string" required:"true"`
 10917  }
 10918  
 10919  // String returns the string representation.
 10920  //
 10921  // API parameter values that are decorated as "sensitive" in the API will not
 10922  // be included in the string output. The member name will be present, but the
 10923  // value will be replaced with "sensitive".
 10924  func (s UpdateClusterVersionInput) String() string {
 10925  	return awsutil.Prettify(s)
 10926  }
 10927  
 10928  // GoString returns the string representation.
 10929  //
 10930  // API parameter values that are decorated as "sensitive" in the API will not
 10931  // be included in the string output. The member name will be present, but the
 10932  // value will be replaced with "sensitive".
 10933  func (s UpdateClusterVersionInput) GoString() string {
 10934  	return s.String()
 10935  }
 10936  
 10937  // Validate inspects the fields of the type to determine if they are valid.
 10938  func (s *UpdateClusterVersionInput) Validate() error {
 10939  	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterVersionInput"}
 10940  	if s.Name == nil {
 10941  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10942  	}
 10943  	if s.Name != nil && len(*s.Name) < 1 {
 10944  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10945  	}
 10946  	if s.Version == nil {
 10947  		invalidParams.Add(request.NewErrParamRequired("Version"))
 10948  	}
 10949  
 10950  	if invalidParams.Len() > 0 {
 10951  		return invalidParams
 10952  	}
 10953  	return nil
 10954  }
 10955  
 10956  // SetClientRequestToken sets the ClientRequestToken field's value.
 10957  func (s *UpdateClusterVersionInput) SetClientRequestToken(v string) *UpdateClusterVersionInput {
 10958  	s.ClientRequestToken = &v
 10959  	return s
 10960  }
 10961  
 10962  // SetName sets the Name field's value.
 10963  func (s *UpdateClusterVersionInput) SetName(v string) *UpdateClusterVersionInput {
 10964  	s.Name = &v
 10965  	return s
 10966  }
 10967  
 10968  // SetVersion sets the Version field's value.
 10969  func (s *UpdateClusterVersionInput) SetVersion(v string) *UpdateClusterVersionInput {
 10970  	s.Version = &v
 10971  	return s
 10972  }
 10973  
 10974  type UpdateClusterVersionOutput struct {
 10975  	_ struct{} `type:"structure"`
 10976  
 10977  	// The full description of the specified update
 10978  	Update *Update `locationName:"update" type:"structure"`
 10979  }
 10980  
 10981  // String returns the string representation.
 10982  //
 10983  // API parameter values that are decorated as "sensitive" in the API will not
 10984  // be included in the string output. The member name will be present, but the
 10985  // value will be replaced with "sensitive".
 10986  func (s UpdateClusterVersionOutput) String() string {
 10987  	return awsutil.Prettify(s)
 10988  }
 10989  
 10990  // GoString returns the string representation.
 10991  //
 10992  // API parameter values that are decorated as "sensitive" in the API will not
 10993  // be included in the string output. The member name will be present, but the
 10994  // value will be replaced with "sensitive".
 10995  func (s UpdateClusterVersionOutput) GoString() string {
 10996  	return s.String()
 10997  }
 10998  
 10999  // SetUpdate sets the Update field's value.
 11000  func (s *UpdateClusterVersionOutput) SetUpdate(v *Update) *UpdateClusterVersionOutput {
 11001  	s.Update = v
 11002  	return s
 11003  }
 11004  
 11005  // An object representing a Kubernetes label change for a managed node group.
 11006  type UpdateLabelsPayload struct {
 11007  	_ struct{} `type:"structure"`
 11008  
 11009  	// Kubernetes labels to be added or updated.
 11010  	AddOrUpdateLabels map[string]*string `locationName:"addOrUpdateLabels" type:"map"`
 11011  
 11012  	// Kubernetes labels to be removed.
 11013  	RemoveLabels []*string `locationName:"removeLabels" type:"list"`
 11014  }
 11015  
 11016  // String returns the string representation.
 11017  //
 11018  // API parameter values that are decorated as "sensitive" in the API will not
 11019  // be included in the string output. The member name will be present, but the
 11020  // value will be replaced with "sensitive".
 11021  func (s UpdateLabelsPayload) String() string {
 11022  	return awsutil.Prettify(s)
 11023  }
 11024  
 11025  // GoString returns the string representation.
 11026  //
 11027  // API parameter values that are decorated as "sensitive" in the API will not
 11028  // be included in the string output. The member name will be present, but the
 11029  // value will be replaced with "sensitive".
 11030  func (s UpdateLabelsPayload) GoString() string {
 11031  	return s.String()
 11032  }
 11033  
 11034  // SetAddOrUpdateLabels sets the AddOrUpdateLabels field's value.
 11035  func (s *UpdateLabelsPayload) SetAddOrUpdateLabels(v map[string]*string) *UpdateLabelsPayload {
 11036  	s.AddOrUpdateLabels = v
 11037  	return s
 11038  }
 11039  
 11040  // SetRemoveLabels sets the RemoveLabels field's value.
 11041  func (s *UpdateLabelsPayload) SetRemoveLabels(v []*string) *UpdateLabelsPayload {
 11042  	s.RemoveLabels = v
 11043  	return s
 11044  }
 11045  
 11046  type UpdateNodegroupConfigInput struct {
 11047  	_ struct{} `type:"structure"`
 11048  
 11049  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
 11050  	// of the request.
 11051  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
 11052  
 11053  	// The name of the Amazon EKS cluster that the managed node group resides in.
 11054  	//
 11055  	// ClusterName is a required field
 11056  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
 11057  
 11058  	// The Kubernetes labels to be applied to the nodes in the node group after
 11059  	// the update.
 11060  	Labels *UpdateLabelsPayload `locationName:"labels" type:"structure"`
 11061  
 11062  	// The name of the managed node group to update.
 11063  	//
 11064  	// NodegroupName is a required field
 11065  	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
 11066  
 11067  	// The scaling configuration details for the Auto Scaling group after the update.
 11068  	ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"`
 11069  
 11070  	// The Kubernetes taints to be applied to the nodes in the node group after
 11071  	// the update.
 11072  	Taints *UpdateTaintsPayload `locationName:"taints" type:"structure"`
 11073  
 11074  	// The node group update configuration.
 11075  	UpdateConfig *NodegroupUpdateConfig `locationName:"updateConfig" type:"structure"`
 11076  }
 11077  
 11078  // String returns the string representation.
 11079  //
 11080  // API parameter values that are decorated as "sensitive" in the API will not
 11081  // be included in the string output. The member name will be present, but the
 11082  // value will be replaced with "sensitive".
 11083  func (s UpdateNodegroupConfigInput) String() string {
 11084  	return awsutil.Prettify(s)
 11085  }
 11086  
 11087  // GoString returns the string representation.
 11088  //
 11089  // API parameter values that are decorated as "sensitive" in the API will not
 11090  // be included in the string output. The member name will be present, but the
 11091  // value will be replaced with "sensitive".
 11092  func (s UpdateNodegroupConfigInput) GoString() string {
 11093  	return s.String()
 11094  }
 11095  
 11096  // Validate inspects the fields of the type to determine if they are valid.
 11097  func (s *UpdateNodegroupConfigInput) Validate() error {
 11098  	invalidParams := request.ErrInvalidParams{Context: "UpdateNodegroupConfigInput"}
 11099  	if s.ClusterName == nil {
 11100  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
 11101  	}
 11102  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
 11103  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
 11104  	}
 11105  	if s.NodegroupName == nil {
 11106  		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
 11107  	}
 11108  	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
 11109  		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
 11110  	}
 11111  	if s.ScalingConfig != nil {
 11112  		if err := s.ScalingConfig.Validate(); err != nil {
 11113  			invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams))
 11114  		}
 11115  	}
 11116  	if s.Taints != nil {
 11117  		if err := s.Taints.Validate(); err != nil {
 11118  			invalidParams.AddNested("Taints", err.(request.ErrInvalidParams))
 11119  		}
 11120  	}
 11121  	if s.UpdateConfig != nil {
 11122  		if err := s.UpdateConfig.Validate(); err != nil {
 11123  			invalidParams.AddNested("UpdateConfig", err.(request.ErrInvalidParams))
 11124  		}
 11125  	}
 11126  
 11127  	if invalidParams.Len() > 0 {
 11128  		return invalidParams
 11129  	}
 11130  	return nil
 11131  }
 11132  
 11133  // SetClientRequestToken sets the ClientRequestToken field's value.
 11134  func (s *UpdateNodegroupConfigInput) SetClientRequestToken(v string) *UpdateNodegroupConfigInput {
 11135  	s.ClientRequestToken = &v
 11136  	return s
 11137  }
 11138  
 11139  // SetClusterName sets the ClusterName field's value.
 11140  func (s *UpdateNodegroupConfigInput) SetClusterName(v string) *UpdateNodegroupConfigInput {
 11141  	s.ClusterName = &v
 11142  	return s
 11143  }
 11144  
 11145  // SetLabels sets the Labels field's value.
 11146  func (s *UpdateNodegroupConfigInput) SetLabels(v *UpdateLabelsPayload) *UpdateNodegroupConfigInput {
 11147  	s.Labels = v
 11148  	return s
 11149  }
 11150  
 11151  // SetNodegroupName sets the NodegroupName field's value.
 11152  func (s *UpdateNodegroupConfigInput) SetNodegroupName(v string) *UpdateNodegroupConfigInput {
 11153  	s.NodegroupName = &v
 11154  	return s
 11155  }
 11156  
 11157  // SetScalingConfig sets the ScalingConfig field's value.
 11158  func (s *UpdateNodegroupConfigInput) SetScalingConfig(v *NodegroupScalingConfig) *UpdateNodegroupConfigInput {
 11159  	s.ScalingConfig = v
 11160  	return s
 11161  }
 11162  
 11163  // SetTaints sets the Taints field's value.
 11164  func (s *UpdateNodegroupConfigInput) SetTaints(v *UpdateTaintsPayload) *UpdateNodegroupConfigInput {
 11165  	s.Taints = v
 11166  	return s
 11167  }
 11168  
 11169  // SetUpdateConfig sets the UpdateConfig field's value.
 11170  func (s *UpdateNodegroupConfigInput) SetUpdateConfig(v *NodegroupUpdateConfig) *UpdateNodegroupConfigInput {
 11171  	s.UpdateConfig = v
 11172  	return s
 11173  }
 11174  
 11175  type UpdateNodegroupConfigOutput struct {
 11176  	_ struct{} `type:"structure"`
 11177  
 11178  	// An object representing an asynchronous update.
 11179  	Update *Update `locationName:"update" type:"structure"`
 11180  }
 11181  
 11182  // String returns the string representation.
 11183  //
 11184  // API parameter values that are decorated as "sensitive" in the API will not
 11185  // be included in the string output. The member name will be present, but the
 11186  // value will be replaced with "sensitive".
 11187  func (s UpdateNodegroupConfigOutput) String() string {
 11188  	return awsutil.Prettify(s)
 11189  }
 11190  
 11191  // GoString returns the string representation.
 11192  //
 11193  // API parameter values that are decorated as "sensitive" in the API will not
 11194  // be included in the string output. The member name will be present, but the
 11195  // value will be replaced with "sensitive".
 11196  func (s UpdateNodegroupConfigOutput) GoString() string {
 11197  	return s.String()
 11198  }
 11199  
 11200  // SetUpdate sets the Update field's value.
 11201  func (s *UpdateNodegroupConfigOutput) SetUpdate(v *Update) *UpdateNodegroupConfigOutput {
 11202  	s.Update = v
 11203  	return s
 11204  }
 11205  
 11206  type UpdateNodegroupVersionInput struct {
 11207  	_ struct{} `type:"structure"`
 11208  
 11209  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
 11210  	// of the request.
 11211  	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
 11212  
 11213  	// The name of the Amazon EKS cluster that is associated with the managed node
 11214  	// group to update.
 11215  	//
 11216  	// ClusterName is a required field
 11217  	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
 11218  
 11219  	// Force the update if the existing node group's pods are unable to be drained
 11220  	// due to a pod disruption budget issue. If an update fails because pods could
 11221  	// not be drained, you can force the update after it fails to terminate the
 11222  	// old node whether or not any pods are running on the node.
 11223  	Force *bool `locationName:"force" type:"boolean"`
 11224  
 11225  	// An object representing a node group's launch template specification. You
 11226  	// can only update a node group using a launch template if the node group was
 11227  	// originally deployed with a launch template.
 11228  	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
 11229  
 11230  	// The name of the managed node group to update.
 11231  	//
 11232  	// NodegroupName is a required field
 11233  	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
 11234  
 11235  	// The AMI version of the Amazon EKS optimized AMI to use for the update. By
 11236  	// default, the latest available AMI version for the node group's Kubernetes
 11237  	// version is used. For more information, see Amazon EKS optimized Amazon Linux
 11238  	// 2 AMI versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)
 11239  	// in the Amazon EKS User Guide. If you specify launchTemplate, and your launch
 11240  	// template uses a custom AMI, then don't specify releaseVersion, or the node
 11241  	// group update will fail. For more information about using launch templates
 11242  	// with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
 11243  	// in the Amazon EKS User Guide.
 11244  	ReleaseVersion *string `locationName:"releaseVersion" type:"string"`
 11245  
 11246  	// The Kubernetes version to update to. If no version is specified, then the
 11247  	// Kubernetes version of the node group does not change. You can specify the
 11248  	// Kubernetes version of the cluster to update the node group to the latest
 11249  	// AMI version of the cluster's Kubernetes version. If you specify launchTemplate,
 11250  	// and your launch template uses a custom AMI, then don't specify version, or
 11251  	// the node group update will fail. For more information about using launch
 11252  	// templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
 11253  	// in the Amazon EKS User Guide.
 11254  	Version *string `locationName:"version" type:"string"`
 11255  }
 11256  
 11257  // String returns the string representation.
 11258  //
 11259  // API parameter values that are decorated as "sensitive" in the API will not
 11260  // be included in the string output. The member name will be present, but the
 11261  // value will be replaced with "sensitive".
 11262  func (s UpdateNodegroupVersionInput) String() string {
 11263  	return awsutil.Prettify(s)
 11264  }
 11265  
 11266  // GoString returns the string representation.
 11267  //
 11268  // API parameter values that are decorated as "sensitive" in the API will not
 11269  // be included in the string output. The member name will be present, but the
 11270  // value will be replaced with "sensitive".
 11271  func (s UpdateNodegroupVersionInput) GoString() string {
 11272  	return s.String()
 11273  }
 11274  
 11275  // Validate inspects the fields of the type to determine if they are valid.
 11276  func (s *UpdateNodegroupVersionInput) Validate() error {
 11277  	invalidParams := request.ErrInvalidParams{Context: "UpdateNodegroupVersionInput"}
 11278  	if s.ClusterName == nil {
 11279  		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
 11280  	}
 11281  	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
 11282  		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
 11283  	}
 11284  	if s.NodegroupName == nil {
 11285  		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
 11286  	}
 11287  	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
 11288  		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
 11289  	}
 11290  
 11291  	if invalidParams.Len() > 0 {
 11292  		return invalidParams
 11293  	}
 11294  	return nil
 11295  }
 11296  
 11297  // SetClientRequestToken sets the ClientRequestToken field's value.
 11298  func (s *UpdateNodegroupVersionInput) SetClientRequestToken(v string) *UpdateNodegroupVersionInput {
 11299  	s.ClientRequestToken = &v
 11300  	return s
 11301  }
 11302  
 11303  // SetClusterName sets the ClusterName field's value.
 11304  func (s *UpdateNodegroupVersionInput) SetClusterName(v string) *UpdateNodegroupVersionInput {
 11305  	s.ClusterName = &v
 11306  	return s
 11307  }
 11308  
 11309  // SetForce sets the Force field's value.
 11310  func (s *UpdateNodegroupVersionInput) SetForce(v bool) *UpdateNodegroupVersionInput {
 11311  	s.Force = &v
 11312  	return s
 11313  }
 11314  
 11315  // SetLaunchTemplate sets the LaunchTemplate field's value.
 11316  func (s *UpdateNodegroupVersionInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *UpdateNodegroupVersionInput {
 11317  	s.LaunchTemplate = v
 11318  	return s
 11319  }
 11320  
 11321  // SetNodegroupName sets the NodegroupName field's value.
 11322  func (s *UpdateNodegroupVersionInput) SetNodegroupName(v string) *UpdateNodegroupVersionInput {
 11323  	s.NodegroupName = &v
 11324  	return s
 11325  }
 11326  
 11327  // SetReleaseVersion sets the ReleaseVersion field's value.
 11328  func (s *UpdateNodegroupVersionInput) SetReleaseVersion(v string) *UpdateNodegroupVersionInput {
 11329  	s.ReleaseVersion = &v
 11330  	return s
 11331  }
 11332  
 11333  // SetVersion sets the Version field's value.
 11334  func (s *UpdateNodegroupVersionInput) SetVersion(v string) *UpdateNodegroupVersionInput {
 11335  	s.Version = &v
 11336  	return s
 11337  }
 11338  
 11339  type UpdateNodegroupVersionOutput struct {
 11340  	_ struct{} `type:"structure"`
 11341  
 11342  	// An object representing an asynchronous update.
 11343  	Update *Update `locationName:"update" type:"structure"`
 11344  }
 11345  
 11346  // String returns the string representation.
 11347  //
 11348  // API parameter values that are decorated as "sensitive" in the API will not
 11349  // be included in the string output. The member name will be present, but the
 11350  // value will be replaced with "sensitive".
 11351  func (s UpdateNodegroupVersionOutput) String() string {
 11352  	return awsutil.Prettify(s)
 11353  }
 11354  
 11355  // GoString returns the string representation.
 11356  //
 11357  // API parameter values that are decorated as "sensitive" in the API will not
 11358  // be included in the string output. The member name will be present, but the
 11359  // value will be replaced with "sensitive".
 11360  func (s UpdateNodegroupVersionOutput) GoString() string {
 11361  	return s.String()
 11362  }
 11363  
 11364  // SetUpdate sets the Update field's value.
 11365  func (s *UpdateNodegroupVersionOutput) SetUpdate(v *Update) *UpdateNodegroupVersionOutput {
 11366  	s.Update = v
 11367  	return s
 11368  }
 11369  
 11370  // An object representing the details of an update request.
 11371  type UpdateParam struct {
 11372  	_ struct{} `type:"structure"`
 11373  
 11374  	// The keys associated with an update request.
 11375  	Type *string `locationName:"type" type:"string" enum:"UpdateParamType"`
 11376  
 11377  	// The value of the keys submitted as part of an update request.
 11378  	Value *string `locationName:"value" type:"string"`
 11379  }
 11380  
 11381  // String returns the string representation.
 11382  //
 11383  // API parameter values that are decorated as "sensitive" in the API will not
 11384  // be included in the string output. The member name will be present, but the
 11385  // value will be replaced with "sensitive".
 11386  func (s UpdateParam) String() string {
 11387  	return awsutil.Prettify(s)
 11388  }
 11389  
 11390  // GoString returns the string representation.
 11391  //
 11392  // API parameter values that are decorated as "sensitive" in the API will not
 11393  // be included in the string output. The member name will be present, but the
 11394  // value will be replaced with "sensitive".
 11395  func (s UpdateParam) GoString() string {
 11396  	return s.String()
 11397  }
 11398  
 11399  // SetType sets the Type field's value.
 11400  func (s *UpdateParam) SetType(v string) *UpdateParam {
 11401  	s.Type = &v
 11402  	return s
 11403  }
 11404  
 11405  // SetValue sets the Value field's value.
 11406  func (s *UpdateParam) SetValue(v string) *UpdateParam {
 11407  	s.Value = &v
 11408  	return s
 11409  }
 11410  
 11411  // An object representing the details of an update to a taints payload.
 11412  type UpdateTaintsPayload struct {
 11413  	_ struct{} `type:"structure"`
 11414  
 11415  	// Kubernetes taints to be added or updated.
 11416  	AddOrUpdateTaints []*Taint `locationName:"addOrUpdateTaints" type:"list"`
 11417  
 11418  	// Kubernetes taints to be removed.
 11419  	RemoveTaints []*Taint `locationName:"removeTaints" type:"list"`
 11420  }
 11421  
 11422  // String returns the string representation.
 11423  //
 11424  // API parameter values that are decorated as "sensitive" in the API will not
 11425  // be included in the string output. The member name will be present, but the
 11426  // value will be replaced with "sensitive".
 11427  func (s UpdateTaintsPayload) String() string {
 11428  	return awsutil.Prettify(s)
 11429  }
 11430  
 11431  // GoString returns the string representation.
 11432  //
 11433  // API parameter values that are decorated as "sensitive" in the API will not
 11434  // be included in the string output. The member name will be present, but the
 11435  // value will be replaced with "sensitive".
 11436  func (s UpdateTaintsPayload) GoString() string {
 11437  	return s.String()
 11438  }
 11439  
 11440  // Validate inspects the fields of the type to determine if they are valid.
 11441  func (s *UpdateTaintsPayload) Validate() error {
 11442  	invalidParams := request.ErrInvalidParams{Context: "UpdateTaintsPayload"}
 11443  	if s.AddOrUpdateTaints != nil {
 11444  		for i, v := range s.AddOrUpdateTaints {
 11445  			if v == nil {
 11446  				continue
 11447  			}
 11448  			if err := v.Validate(); err != nil {
 11449  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AddOrUpdateTaints", i), err.(request.ErrInvalidParams))
 11450  			}
 11451  		}
 11452  	}
 11453  	if s.RemoveTaints != nil {
 11454  		for i, v := range s.RemoveTaints {
 11455  			if v == nil {
 11456  				continue
 11457  			}
 11458  			if err := v.Validate(); err != nil {
 11459  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RemoveTaints", i), err.(request.ErrInvalidParams))
 11460  			}
 11461  		}
 11462  	}
 11463  
 11464  	if invalidParams.Len() > 0 {
 11465  		return invalidParams
 11466  	}
 11467  	return nil
 11468  }
 11469  
 11470  // SetAddOrUpdateTaints sets the AddOrUpdateTaints field's value.
 11471  func (s *UpdateTaintsPayload) SetAddOrUpdateTaints(v []*Taint) *UpdateTaintsPayload {
 11472  	s.AddOrUpdateTaints = v
 11473  	return s
 11474  }
 11475  
 11476  // SetRemoveTaints sets the RemoveTaints field's value.
 11477  func (s *UpdateTaintsPayload) SetRemoveTaints(v []*Taint) *UpdateTaintsPayload {
 11478  	s.RemoveTaints = v
 11479  	return s
 11480  }
 11481  
 11482  // An object representing the VPC configuration to use for an Amazon EKS cluster.
 11483  type VpcConfigRequest struct {
 11484  	_ struct{} `type:"structure"`
 11485  
 11486  	// Set this value to true to enable private access for your cluster's Kubernetes
 11487  	// API server endpoint. If you enable private access, Kubernetes API requests
 11488  	// from within your cluster's VPC use the private VPC endpoint. The default
 11489  	// value for this parameter is false, which disables private access for your
 11490  	// Kubernetes API server. If you disable private access and you have nodes or
 11491  	// Fargate pods in the cluster, then ensure that publicAccessCidrs includes
 11492  	// the necessary CIDR blocks for communication with the nodes or Fargate pods.
 11493  	// For more information, see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
 11494  	// in the Amazon EKS User Guide .
 11495  	EndpointPrivateAccess *bool `locationName:"endpointPrivateAccess" type:"boolean"`
 11496  
 11497  	// Set this value to false to disable public access to your cluster's Kubernetes
 11498  	// API server endpoint. If you disable public access, your cluster's Kubernetes
 11499  	// API server can only receive requests from within the cluster VPC. The default
 11500  	// value for this parameter is true, which enables public access for your Kubernetes
 11501  	// API server. For more information, see Amazon EKS cluster endpoint access
 11502  	// control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
 11503  	// in the Amazon EKS User Guide .
 11504  	EndpointPublicAccess *bool `locationName:"endpointPublicAccess" type:"boolean"`
 11505  
 11506  	// The CIDR blocks that are allowed access to your cluster's public Kubernetes
 11507  	// API server endpoint. Communication to the endpoint from addresses outside
 11508  	// of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0.
 11509  	// If you've disabled private endpoint access and you have nodes or Fargate
 11510  	// pods in the cluster, then ensure that you specify the necessary CIDR blocks.
 11511  	// For more information, see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
 11512  	// in the Amazon EKS User Guide .
 11513  	PublicAccessCidrs []*string `locationName:"publicAccessCidrs" type:"list"`
 11514  
 11515  	// Specify one or more security groups for the cross-account elastic network
 11516  	// interfaces that Amazon EKS creates to use that allow communication between
 11517  	// your nodes and the Kubernetes control plane. If you don't specify any security
 11518  	// groups, then familiarize yourself with the difference between Amazon EKS
 11519  	// defaults for clusters deployed with Kubernetes:
 11520  	//
 11521  	//    * 1.14 Amazon EKS platform version eks.2 and earlier
 11522  	//
 11523  	//    * 1.14 Amazon EKS platform version eks.3 and later
 11524  	//
 11525  	// For more information, see Amazon EKS security group considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
 11526  	// in the Amazon EKS User Guide .
 11527  	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
 11528  
 11529  	// Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account
 11530  	// elastic network interfaces in these subnets to allow communication between
 11531  	// your nodes and the Kubernetes control plane.
 11532  	SubnetIds []*string `locationName:"subnetIds" type:"list"`
 11533  }
 11534  
 11535  // String returns the string representation.
 11536  //
 11537  // API parameter values that are decorated as "sensitive" in the API will not
 11538  // be included in the string output. The member name will be present, but the
 11539  // value will be replaced with "sensitive".
 11540  func (s VpcConfigRequest) String() string {
 11541  	return awsutil.Prettify(s)
 11542  }
 11543  
 11544  // GoString returns the string representation.
 11545  //
 11546  // API parameter values that are decorated as "sensitive" in the API will not
 11547  // be included in the string output. The member name will be present, but the
 11548  // value will be replaced with "sensitive".
 11549  func (s VpcConfigRequest) GoString() string {
 11550  	return s.String()
 11551  }
 11552  
 11553  // SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value.
 11554  func (s *VpcConfigRequest) SetEndpointPrivateAccess(v bool) *VpcConfigRequest {
 11555  	s.EndpointPrivateAccess = &v
 11556  	return s
 11557  }
 11558  
 11559  // SetEndpointPublicAccess sets the EndpointPublicAccess field's value.
 11560  func (s *VpcConfigRequest) SetEndpointPublicAccess(v bool) *VpcConfigRequest {
 11561  	s.EndpointPublicAccess = &v
 11562  	return s
 11563  }
 11564  
 11565  // SetPublicAccessCidrs sets the PublicAccessCidrs field's value.
 11566  func (s *VpcConfigRequest) SetPublicAccessCidrs(v []*string) *VpcConfigRequest {
 11567  	s.PublicAccessCidrs = v
 11568  	return s
 11569  }
 11570  
 11571  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
 11572  func (s *VpcConfigRequest) SetSecurityGroupIds(v []*string) *VpcConfigRequest {
 11573  	s.SecurityGroupIds = v
 11574  	return s
 11575  }
 11576  
 11577  // SetSubnetIds sets the SubnetIds field's value.
 11578  func (s *VpcConfigRequest) SetSubnetIds(v []*string) *VpcConfigRequest {
 11579  	s.SubnetIds = v
 11580  	return s
 11581  }
 11582  
 11583  // An object representing an Amazon EKS cluster VPC configuration response.
 11584  type VpcConfigResponse struct {
 11585  	_ struct{} `type:"structure"`
 11586  
 11587  	// The cluster security group that was created by Amazon EKS for the cluster.
 11588  	// Managed node groups use this security group for control-plane-to-data-plane
 11589  	// communication.
 11590  	ClusterSecurityGroupId *string `locationName:"clusterSecurityGroupId" type:"string"`
 11591  
 11592  	// This parameter indicates whether the Amazon EKS private API server endpoint
 11593  	// is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes
 11594  	// API requests that originate from within your cluster's VPC use the private
 11595  	// VPC endpoint instead of traversing the internet. If this value is disabled
 11596  	// and you have nodes or Fargate pods in the cluster, then ensure that publicAccessCidrs
 11597  	// includes the necessary CIDR blocks for communication with the nodes or Fargate
 11598  	// pods. For more information, see Amazon EKS cluster endpoint access control
 11599  	// (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
 11600  	// in the Amazon EKS User Guide .
 11601  	EndpointPrivateAccess *bool `locationName:"endpointPrivateAccess" type:"boolean"`
 11602  
 11603  	// This parameter indicates whether the Amazon EKS public API server endpoint
 11604  	// is enabled. If the Amazon EKS public API server endpoint is disabled, your
 11605  	// cluster's Kubernetes API server can only receive requests that originate
 11606  	// from within the cluster VPC.
 11607  	EndpointPublicAccess *bool `locationName:"endpointPublicAccess" type:"boolean"`
 11608  
 11609  	// The CIDR blocks that are allowed access to your cluster's public Kubernetes
 11610  	// API server endpoint. Communication to the endpoint from addresses outside
 11611  	// of the listed CIDR blocks is denied. The default value is 0.0.0.0/0. If you've
 11612  	// disabled private endpoint access and you have nodes or Fargate pods in the
 11613  	// cluster, then ensure that the necessary CIDR blocks are listed. For more
 11614  	// information, see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
 11615  	// in the Amazon EKS User Guide .
 11616  	PublicAccessCidrs []*string `locationName:"publicAccessCidrs" type:"list"`
 11617  
 11618  	// The security groups associated with the cross-account elastic network interfaces
 11619  	// that are used to allow communication between your nodes and the Kubernetes
 11620  	// control plane.
 11621  	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
 11622  
 11623  	// The subnets associated with your cluster.
 11624  	SubnetIds []*string `locationName:"subnetIds" type:"list"`
 11625  
 11626  	// The VPC associated with your cluster.
 11627  	VpcId *string `locationName:"vpcId" type:"string"`
 11628  }
 11629  
 11630  // String returns the string representation.
 11631  //
 11632  // API parameter values that are decorated as "sensitive" in the API will not
 11633  // be included in the string output. The member name will be present, but the
 11634  // value will be replaced with "sensitive".
 11635  func (s VpcConfigResponse) String() string {
 11636  	return awsutil.Prettify(s)
 11637  }
 11638  
 11639  // GoString returns the string representation.
 11640  //
 11641  // API parameter values that are decorated as "sensitive" in the API will not
 11642  // be included in the string output. The member name will be present, but the
 11643  // value will be replaced with "sensitive".
 11644  func (s VpcConfigResponse) GoString() string {
 11645  	return s.String()
 11646  }
 11647  
 11648  // SetClusterSecurityGroupId sets the ClusterSecurityGroupId field's value.
 11649  func (s *VpcConfigResponse) SetClusterSecurityGroupId(v string) *VpcConfigResponse {
 11650  	s.ClusterSecurityGroupId = &v
 11651  	return s
 11652  }
 11653  
 11654  // SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value.
 11655  func (s *VpcConfigResponse) SetEndpointPrivateAccess(v bool) *VpcConfigResponse {
 11656  	s.EndpointPrivateAccess = &v
 11657  	return s
 11658  }
 11659  
 11660  // SetEndpointPublicAccess sets the EndpointPublicAccess field's value.
 11661  func (s *VpcConfigResponse) SetEndpointPublicAccess(v bool) *VpcConfigResponse {
 11662  	s.EndpointPublicAccess = &v
 11663  	return s
 11664  }
 11665  
 11666  // SetPublicAccessCidrs sets the PublicAccessCidrs field's value.
 11667  func (s *VpcConfigResponse) SetPublicAccessCidrs(v []*string) *VpcConfigResponse {
 11668  	s.PublicAccessCidrs = v
 11669  	return s
 11670  }
 11671  
 11672  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
 11673  func (s *VpcConfigResponse) SetSecurityGroupIds(v []*string) *VpcConfigResponse {
 11674  	s.SecurityGroupIds = v
 11675  	return s
 11676  }
 11677  
 11678  // SetSubnetIds sets the SubnetIds field's value.
 11679  func (s *VpcConfigResponse) SetSubnetIds(v []*string) *VpcConfigResponse {
 11680  	s.SubnetIds = v
 11681  	return s
 11682  }
 11683  
 11684  // SetVpcId sets the VpcId field's value.
 11685  func (s *VpcConfigResponse) SetVpcId(v string) *VpcConfigResponse {
 11686  	s.VpcId = &v
 11687  	return s
 11688  }
 11689  
 11690  const (
 11691  	// AMITypesAl2X8664 is a AMITypes enum value
 11692  	AMITypesAl2X8664 = "AL2_x86_64"
 11693  
 11694  	// AMITypesAl2X8664Gpu is a AMITypes enum value
 11695  	AMITypesAl2X8664Gpu = "AL2_x86_64_GPU"
 11696  
 11697  	// AMITypesAl2Arm64 is a AMITypes enum value
 11698  	AMITypesAl2Arm64 = "AL2_ARM_64"
 11699  
 11700  	// AMITypesCustom is a AMITypes enum value
 11701  	AMITypesCustom = "CUSTOM"
 11702  )
 11703  
 11704  // AMITypes_Values returns all elements of the AMITypes enum
 11705  func AMITypes_Values() []string {
 11706  	return []string{
 11707  		AMITypesAl2X8664,
 11708  		AMITypesAl2X8664Gpu,
 11709  		AMITypesAl2Arm64,
 11710  		AMITypesCustom,
 11711  	}
 11712  }
 11713  
 11714  const (
 11715  	// AddonIssueCodeAccessDenied is a AddonIssueCode enum value
 11716  	AddonIssueCodeAccessDenied = "AccessDenied"
 11717  
 11718  	// AddonIssueCodeInternalFailure is a AddonIssueCode enum value
 11719  	AddonIssueCodeInternalFailure = "InternalFailure"
 11720  
 11721  	// AddonIssueCodeClusterUnreachable is a AddonIssueCode enum value
 11722  	AddonIssueCodeClusterUnreachable = "ClusterUnreachable"
 11723  
 11724  	// AddonIssueCodeInsufficientNumberOfReplicas is a AddonIssueCode enum value
 11725  	AddonIssueCodeInsufficientNumberOfReplicas = "InsufficientNumberOfReplicas"
 11726  
 11727  	// AddonIssueCodeConfigurationConflict is a AddonIssueCode enum value
 11728  	AddonIssueCodeConfigurationConflict = "ConfigurationConflict"
 11729  
 11730  	// AddonIssueCodeAdmissionRequestDenied is a AddonIssueCode enum value
 11731  	AddonIssueCodeAdmissionRequestDenied = "AdmissionRequestDenied"
 11732  
 11733  	// AddonIssueCodeUnsupportedAddonModification is a AddonIssueCode enum value
 11734  	AddonIssueCodeUnsupportedAddonModification = "UnsupportedAddonModification"
 11735  
 11736  	// AddonIssueCodeK8sResourceNotFound is a AddonIssueCode enum value
 11737  	AddonIssueCodeK8sResourceNotFound = "K8sResourceNotFound"
 11738  )
 11739  
 11740  // AddonIssueCode_Values returns all elements of the AddonIssueCode enum
 11741  func AddonIssueCode_Values() []string {
 11742  	return []string{
 11743  		AddonIssueCodeAccessDenied,
 11744  		AddonIssueCodeInternalFailure,
 11745  		AddonIssueCodeClusterUnreachable,
 11746  		AddonIssueCodeInsufficientNumberOfReplicas,
 11747  		AddonIssueCodeConfigurationConflict,
 11748  		AddonIssueCodeAdmissionRequestDenied,
 11749  		AddonIssueCodeUnsupportedAddonModification,
 11750  		AddonIssueCodeK8sResourceNotFound,
 11751  	}
 11752  }
 11753  
 11754  const (
 11755  	// AddonStatusCreating is a AddonStatus enum value
 11756  	AddonStatusCreating = "CREATING"
 11757  
 11758  	// AddonStatusActive is a AddonStatus enum value
 11759  	AddonStatusActive = "ACTIVE"
 11760  
 11761  	// AddonStatusCreateFailed is a AddonStatus enum value
 11762  	AddonStatusCreateFailed = "CREATE_FAILED"
 11763  
 11764  	// AddonStatusUpdating is a AddonStatus enum value
 11765  	AddonStatusUpdating = "UPDATING"
 11766  
 11767  	// AddonStatusDeleting is a AddonStatus enum value
 11768  	AddonStatusDeleting = "DELETING"
 11769  
 11770  	// AddonStatusDeleteFailed is a AddonStatus enum value
 11771  	AddonStatusDeleteFailed = "DELETE_FAILED"
 11772  
 11773  	// AddonStatusDegraded is a AddonStatus enum value
 11774  	AddonStatusDegraded = "DEGRADED"
 11775  )
 11776  
 11777  // AddonStatus_Values returns all elements of the AddonStatus enum
 11778  func AddonStatus_Values() []string {
 11779  	return []string{
 11780  		AddonStatusCreating,
 11781  		AddonStatusActive,
 11782  		AddonStatusCreateFailed,
 11783  		AddonStatusUpdating,
 11784  		AddonStatusDeleting,
 11785  		AddonStatusDeleteFailed,
 11786  		AddonStatusDegraded,
 11787  	}
 11788  }
 11789  
 11790  const (
 11791  	// CapacityTypesOnDemand is a CapacityTypes enum value
 11792  	CapacityTypesOnDemand = "ON_DEMAND"
 11793  
 11794  	// CapacityTypesSpot is a CapacityTypes enum value
 11795  	CapacityTypesSpot = "SPOT"
 11796  )
 11797  
 11798  // CapacityTypes_Values returns all elements of the CapacityTypes enum
 11799  func CapacityTypes_Values() []string {
 11800  	return []string{
 11801  		CapacityTypesOnDemand,
 11802  		CapacityTypesSpot,
 11803  	}
 11804  }
 11805  
 11806  const (
 11807  	// ClusterStatusCreating is a ClusterStatus enum value
 11808  	ClusterStatusCreating = "CREATING"
 11809  
 11810  	// ClusterStatusActive is a ClusterStatus enum value
 11811  	ClusterStatusActive = "ACTIVE"
 11812  
 11813  	// ClusterStatusDeleting is a ClusterStatus enum value
 11814  	ClusterStatusDeleting = "DELETING"
 11815  
 11816  	// ClusterStatusFailed is a ClusterStatus enum value
 11817  	ClusterStatusFailed = "FAILED"
 11818  
 11819  	// ClusterStatusUpdating is a ClusterStatus enum value
 11820  	ClusterStatusUpdating = "UPDATING"
 11821  
 11822  	// ClusterStatusPending is a ClusterStatus enum value
 11823  	ClusterStatusPending = "PENDING"
 11824  )
 11825  
 11826  // ClusterStatus_Values returns all elements of the ClusterStatus enum
 11827  func ClusterStatus_Values() []string {
 11828  	return []string{
 11829  		ClusterStatusCreating,
 11830  		ClusterStatusActive,
 11831  		ClusterStatusDeleting,
 11832  		ClusterStatusFailed,
 11833  		ClusterStatusUpdating,
 11834  		ClusterStatusPending,
 11835  	}
 11836  }
 11837  
 11838  const (
 11839  	// ConfigStatusCreating is a ConfigStatus enum value
 11840  	ConfigStatusCreating = "CREATING"
 11841  
 11842  	// ConfigStatusDeleting is a ConfigStatus enum value
 11843  	ConfigStatusDeleting = "DELETING"
 11844  
 11845  	// ConfigStatusActive is a ConfigStatus enum value
 11846  	ConfigStatusActive = "ACTIVE"
 11847  )
 11848  
 11849  // ConfigStatus_Values returns all elements of the ConfigStatus enum
 11850  func ConfigStatus_Values() []string {
 11851  	return []string{
 11852  		ConfigStatusCreating,
 11853  		ConfigStatusDeleting,
 11854  		ConfigStatusActive,
 11855  	}
 11856  }
 11857  
 11858  const (
 11859  	// ConnectorConfigProviderEksAnywhere is a ConnectorConfigProvider enum value
 11860  	ConnectorConfigProviderEksAnywhere = "EKS_ANYWHERE"
 11861  
 11862  	// ConnectorConfigProviderAnthos is a ConnectorConfigProvider enum value
 11863  	ConnectorConfigProviderAnthos = "ANTHOS"
 11864  
 11865  	// ConnectorConfigProviderGke is a ConnectorConfigProvider enum value
 11866  	ConnectorConfigProviderGke = "GKE"
 11867  
 11868  	// ConnectorConfigProviderAks is a ConnectorConfigProvider enum value
 11869  	ConnectorConfigProviderAks = "AKS"
 11870  
 11871  	// ConnectorConfigProviderOpenshift is a ConnectorConfigProvider enum value
 11872  	ConnectorConfigProviderOpenshift = "OPENSHIFT"
 11873  
 11874  	// ConnectorConfigProviderTanzu is a ConnectorConfigProvider enum value
 11875  	ConnectorConfigProviderTanzu = "TANZU"
 11876  
 11877  	// ConnectorConfigProviderRancher is a ConnectorConfigProvider enum value
 11878  	ConnectorConfigProviderRancher = "RANCHER"
 11879  
 11880  	// ConnectorConfigProviderEc2 is a ConnectorConfigProvider enum value
 11881  	ConnectorConfigProviderEc2 = "EC2"
 11882  
 11883  	// ConnectorConfigProviderOther is a ConnectorConfigProvider enum value
 11884  	ConnectorConfigProviderOther = "OTHER"
 11885  )
 11886  
 11887  // ConnectorConfigProvider_Values returns all elements of the ConnectorConfigProvider enum
 11888  func ConnectorConfigProvider_Values() []string {
 11889  	return []string{
 11890  		ConnectorConfigProviderEksAnywhere,
 11891  		ConnectorConfigProviderAnthos,
 11892  		ConnectorConfigProviderGke,
 11893  		ConnectorConfigProviderAks,
 11894  		ConnectorConfigProviderOpenshift,
 11895  		ConnectorConfigProviderTanzu,
 11896  		ConnectorConfigProviderRancher,
 11897  		ConnectorConfigProviderEc2,
 11898  		ConnectorConfigProviderOther,
 11899  	}
 11900  }
 11901  
 11902  const (
 11903  	// ErrorCodeSubnetNotFound is a ErrorCode enum value
 11904  	ErrorCodeSubnetNotFound = "SubnetNotFound"
 11905  
 11906  	// ErrorCodeSecurityGroupNotFound is a ErrorCode enum value
 11907  	ErrorCodeSecurityGroupNotFound = "SecurityGroupNotFound"
 11908  
 11909  	// ErrorCodeEniLimitReached is a ErrorCode enum value
 11910  	ErrorCodeEniLimitReached = "EniLimitReached"
 11911  
 11912  	// ErrorCodeIpNotAvailable is a ErrorCode enum value
 11913  	ErrorCodeIpNotAvailable = "IpNotAvailable"
 11914  
 11915  	// ErrorCodeAccessDenied is a ErrorCode enum value
 11916  	ErrorCodeAccessDenied = "AccessDenied"
 11917  
 11918  	// ErrorCodeOperationNotPermitted is a ErrorCode enum value
 11919  	ErrorCodeOperationNotPermitted = "OperationNotPermitted"
 11920  
 11921  	// ErrorCodeVpcIdNotFound is a ErrorCode enum value
 11922  	ErrorCodeVpcIdNotFound = "VpcIdNotFound"
 11923  
 11924  	// ErrorCodeUnknown is a ErrorCode enum value
 11925  	ErrorCodeUnknown = "Unknown"
 11926  
 11927  	// ErrorCodeNodeCreationFailure is a ErrorCode enum value
 11928  	ErrorCodeNodeCreationFailure = "NodeCreationFailure"
 11929  
 11930  	// ErrorCodePodEvictionFailure is a ErrorCode enum value
 11931  	ErrorCodePodEvictionFailure = "PodEvictionFailure"
 11932  
 11933  	// ErrorCodeInsufficientFreeAddresses is a ErrorCode enum value
 11934  	ErrorCodeInsufficientFreeAddresses = "InsufficientFreeAddresses"
 11935  
 11936  	// ErrorCodeClusterUnreachable is a ErrorCode enum value
 11937  	ErrorCodeClusterUnreachable = "ClusterUnreachable"
 11938  
 11939  	// ErrorCodeInsufficientNumberOfReplicas is a ErrorCode enum value
 11940  	ErrorCodeInsufficientNumberOfReplicas = "InsufficientNumberOfReplicas"
 11941  
 11942  	// ErrorCodeConfigurationConflict is a ErrorCode enum value
 11943  	ErrorCodeConfigurationConflict = "ConfigurationConflict"
 11944  
 11945  	// ErrorCodeAdmissionRequestDenied is a ErrorCode enum value
 11946  	ErrorCodeAdmissionRequestDenied = "AdmissionRequestDenied"
 11947  
 11948  	// ErrorCodeUnsupportedAddonModification is a ErrorCode enum value
 11949  	ErrorCodeUnsupportedAddonModification = "UnsupportedAddonModification"
 11950  
 11951  	// ErrorCodeK8sResourceNotFound is a ErrorCode enum value
 11952  	ErrorCodeK8sResourceNotFound = "K8sResourceNotFound"
 11953  )
 11954  
 11955  // ErrorCode_Values returns all elements of the ErrorCode enum
 11956  func ErrorCode_Values() []string {
 11957  	return []string{
 11958  		ErrorCodeSubnetNotFound,
 11959  		ErrorCodeSecurityGroupNotFound,
 11960  		ErrorCodeEniLimitReached,
 11961  		ErrorCodeIpNotAvailable,
 11962  		ErrorCodeAccessDenied,
 11963  		ErrorCodeOperationNotPermitted,
 11964  		ErrorCodeVpcIdNotFound,
 11965  		ErrorCodeUnknown,
 11966  		ErrorCodeNodeCreationFailure,
 11967  		ErrorCodePodEvictionFailure,
 11968  		ErrorCodeInsufficientFreeAddresses,
 11969  		ErrorCodeClusterUnreachable,
 11970  		ErrorCodeInsufficientNumberOfReplicas,
 11971  		ErrorCodeConfigurationConflict,
 11972  		ErrorCodeAdmissionRequestDenied,
 11973  		ErrorCodeUnsupportedAddonModification,
 11974  		ErrorCodeK8sResourceNotFound,
 11975  	}
 11976  }
 11977  
 11978  const (
 11979  	// FargateProfileStatusCreating is a FargateProfileStatus enum value
 11980  	FargateProfileStatusCreating = "CREATING"
 11981  
 11982  	// FargateProfileStatusActive is a FargateProfileStatus enum value
 11983  	FargateProfileStatusActive = "ACTIVE"
 11984  
 11985  	// FargateProfileStatusDeleting is a FargateProfileStatus enum value
 11986  	FargateProfileStatusDeleting = "DELETING"
 11987  
 11988  	// FargateProfileStatusCreateFailed is a FargateProfileStatus enum value
 11989  	FargateProfileStatusCreateFailed = "CREATE_FAILED"
 11990  
 11991  	// FargateProfileStatusDeleteFailed is a FargateProfileStatus enum value
 11992  	FargateProfileStatusDeleteFailed = "DELETE_FAILED"
 11993  )
 11994  
 11995  // FargateProfileStatus_Values returns all elements of the FargateProfileStatus enum
 11996  func FargateProfileStatus_Values() []string {
 11997  	return []string{
 11998  		FargateProfileStatusCreating,
 11999  		FargateProfileStatusActive,
 12000  		FargateProfileStatusDeleting,
 12001  		FargateProfileStatusCreateFailed,
 12002  		FargateProfileStatusDeleteFailed,
 12003  	}
 12004  }
 12005  
 12006  const (
 12007  	// LogTypeApi is a LogType enum value
 12008  	LogTypeApi = "api"
 12009  
 12010  	// LogTypeAudit is a LogType enum value
 12011  	LogTypeAudit = "audit"
 12012  
 12013  	// LogTypeAuthenticator is a LogType enum value
 12014  	LogTypeAuthenticator = "authenticator"
 12015  
 12016  	// LogTypeControllerManager is a LogType enum value
 12017  	LogTypeControllerManager = "controllerManager"
 12018  
 12019  	// LogTypeScheduler is a LogType enum value
 12020  	LogTypeScheduler = "scheduler"
 12021  )
 12022  
 12023  // LogType_Values returns all elements of the LogType enum
 12024  func LogType_Values() []string {
 12025  	return []string{
 12026  		LogTypeApi,
 12027  		LogTypeAudit,
 12028  		LogTypeAuthenticator,
 12029  		LogTypeControllerManager,
 12030  		LogTypeScheduler,
 12031  	}
 12032  }
 12033  
 12034  const (
 12035  	// NodegroupIssueCodeAutoScalingGroupNotFound is a NodegroupIssueCode enum value
 12036  	NodegroupIssueCodeAutoScalingGroupNotFound = "AutoScalingGroupNotFound"
 12037  
 12038  	// NodegroupIssueCodeAutoScalingGroupInvalidConfiguration is a NodegroupIssueCode enum value
 12039  	NodegroupIssueCodeAutoScalingGroupInvalidConfiguration = "AutoScalingGroupInvalidConfiguration"
 12040  
 12041  	// NodegroupIssueCodeEc2securityGroupNotFound is a NodegroupIssueCode enum value
 12042  	NodegroupIssueCodeEc2securityGroupNotFound = "Ec2SecurityGroupNotFound"
 12043  
 12044  	// NodegroupIssueCodeEc2securityGroupDeletionFailure is a NodegroupIssueCode enum value
 12045  	NodegroupIssueCodeEc2securityGroupDeletionFailure = "Ec2SecurityGroupDeletionFailure"
 12046  
 12047  	// NodegroupIssueCodeEc2launchTemplateNotFound is a NodegroupIssueCode enum value
 12048  	NodegroupIssueCodeEc2launchTemplateNotFound = "Ec2LaunchTemplateNotFound"
 12049  
 12050  	// NodegroupIssueCodeEc2launchTemplateVersionMismatch is a NodegroupIssueCode enum value
 12051  	NodegroupIssueCodeEc2launchTemplateVersionMismatch = "Ec2LaunchTemplateVersionMismatch"
 12052  
 12053  	// NodegroupIssueCodeEc2subnetNotFound is a NodegroupIssueCode enum value
 12054  	NodegroupIssueCodeEc2subnetNotFound = "Ec2SubnetNotFound"
 12055  
 12056  	// NodegroupIssueCodeEc2subnetInvalidConfiguration is a NodegroupIssueCode enum value
 12057  	NodegroupIssueCodeEc2subnetInvalidConfiguration = "Ec2SubnetInvalidConfiguration"
 12058  
 12059  	// NodegroupIssueCodeIamInstanceProfileNotFound is a NodegroupIssueCode enum value
 12060  	NodegroupIssueCodeIamInstanceProfileNotFound = "IamInstanceProfileNotFound"
 12061  
 12062  	// NodegroupIssueCodeIamLimitExceeded is a NodegroupIssueCode enum value
 12063  	NodegroupIssueCodeIamLimitExceeded = "IamLimitExceeded"
 12064  
 12065  	// NodegroupIssueCodeIamNodeRoleNotFound is a NodegroupIssueCode enum value
 12066  	NodegroupIssueCodeIamNodeRoleNotFound = "IamNodeRoleNotFound"
 12067  
 12068  	// NodegroupIssueCodeNodeCreationFailure is a NodegroupIssueCode enum value
 12069  	NodegroupIssueCodeNodeCreationFailure = "NodeCreationFailure"
 12070  
 12071  	// NodegroupIssueCodeAsgInstanceLaunchFailures is a NodegroupIssueCode enum value
 12072  	NodegroupIssueCodeAsgInstanceLaunchFailures = "AsgInstanceLaunchFailures"
 12073  
 12074  	// NodegroupIssueCodeInstanceLimitExceeded is a NodegroupIssueCode enum value
 12075  	NodegroupIssueCodeInstanceLimitExceeded = "InstanceLimitExceeded"
 12076  
 12077  	// NodegroupIssueCodeInsufficientFreeAddresses is a NodegroupIssueCode enum value
 12078  	NodegroupIssueCodeInsufficientFreeAddresses = "InsufficientFreeAddresses"
 12079  
 12080  	// NodegroupIssueCodeAccessDenied is a NodegroupIssueCode enum value
 12081  	NodegroupIssueCodeAccessDenied = "AccessDenied"
 12082  
 12083  	// NodegroupIssueCodeInternalFailure is a NodegroupIssueCode enum value
 12084  	NodegroupIssueCodeInternalFailure = "InternalFailure"
 12085  
 12086  	// NodegroupIssueCodeClusterUnreachable is a NodegroupIssueCode enum value
 12087  	NodegroupIssueCodeClusterUnreachable = "ClusterUnreachable"
 12088  )
 12089  
 12090  // NodegroupIssueCode_Values returns all elements of the NodegroupIssueCode enum
 12091  func NodegroupIssueCode_Values() []string {
 12092  	return []string{
 12093  		NodegroupIssueCodeAutoScalingGroupNotFound,
 12094  		NodegroupIssueCodeAutoScalingGroupInvalidConfiguration,
 12095  		NodegroupIssueCodeEc2securityGroupNotFound,
 12096  		NodegroupIssueCodeEc2securityGroupDeletionFailure,
 12097  		NodegroupIssueCodeEc2launchTemplateNotFound,
 12098  		NodegroupIssueCodeEc2launchTemplateVersionMismatch,
 12099  		NodegroupIssueCodeEc2subnetNotFound,
 12100  		NodegroupIssueCodeEc2subnetInvalidConfiguration,
 12101  		NodegroupIssueCodeIamInstanceProfileNotFound,
 12102  		NodegroupIssueCodeIamLimitExceeded,
 12103  		NodegroupIssueCodeIamNodeRoleNotFound,
 12104  		NodegroupIssueCodeNodeCreationFailure,
 12105  		NodegroupIssueCodeAsgInstanceLaunchFailures,
 12106  		NodegroupIssueCodeInstanceLimitExceeded,
 12107  		NodegroupIssueCodeInsufficientFreeAddresses,
 12108  		NodegroupIssueCodeAccessDenied,
 12109  		NodegroupIssueCodeInternalFailure,
 12110  		NodegroupIssueCodeClusterUnreachable,
 12111  	}
 12112  }
 12113  
 12114  const (
 12115  	// NodegroupStatusCreating is a NodegroupStatus enum value
 12116  	NodegroupStatusCreating = "CREATING"
 12117  
 12118  	// NodegroupStatusActive is a NodegroupStatus enum value
 12119  	NodegroupStatusActive = "ACTIVE"
 12120  
 12121  	// NodegroupStatusUpdating is a NodegroupStatus enum value
 12122  	NodegroupStatusUpdating = "UPDATING"
 12123  
 12124  	// NodegroupStatusDeleting is a NodegroupStatus enum value
 12125  	NodegroupStatusDeleting = "DELETING"
 12126  
 12127  	// NodegroupStatusCreateFailed is a NodegroupStatus enum value
 12128  	NodegroupStatusCreateFailed = "CREATE_FAILED"
 12129  
 12130  	// NodegroupStatusDeleteFailed is a NodegroupStatus enum value
 12131  	NodegroupStatusDeleteFailed = "DELETE_FAILED"
 12132  
 12133  	// NodegroupStatusDegraded is a NodegroupStatus enum value
 12134  	NodegroupStatusDegraded = "DEGRADED"
 12135  )
 12136  
 12137  // NodegroupStatus_Values returns all elements of the NodegroupStatus enum
 12138  func NodegroupStatus_Values() []string {
 12139  	return []string{
 12140  		NodegroupStatusCreating,
 12141  		NodegroupStatusActive,
 12142  		NodegroupStatusUpdating,
 12143  		NodegroupStatusDeleting,
 12144  		NodegroupStatusCreateFailed,
 12145  		NodegroupStatusDeleteFailed,
 12146  		NodegroupStatusDegraded,
 12147  	}
 12148  }
 12149  
 12150  const (
 12151  	// ResolveConflictsOverwrite is a ResolveConflicts enum value
 12152  	ResolveConflictsOverwrite = "OVERWRITE"
 12153  
 12154  	// ResolveConflictsNone is a ResolveConflicts enum value
 12155  	ResolveConflictsNone = "NONE"
 12156  )
 12157  
 12158  // ResolveConflicts_Values returns all elements of the ResolveConflicts enum
 12159  func ResolveConflicts_Values() []string {
 12160  	return []string{
 12161  		ResolveConflictsOverwrite,
 12162  		ResolveConflictsNone,
 12163  	}
 12164  }
 12165  
 12166  const (
 12167  	// TaintEffectNoSchedule is a TaintEffect enum value
 12168  	TaintEffectNoSchedule = "NO_SCHEDULE"
 12169  
 12170  	// TaintEffectNoExecute is a TaintEffect enum value
 12171  	TaintEffectNoExecute = "NO_EXECUTE"
 12172  
 12173  	// TaintEffectPreferNoSchedule is a TaintEffect enum value
 12174  	TaintEffectPreferNoSchedule = "PREFER_NO_SCHEDULE"
 12175  )
 12176  
 12177  // TaintEffect_Values returns all elements of the TaintEffect enum
 12178  func TaintEffect_Values() []string {
 12179  	return []string{
 12180  		TaintEffectNoSchedule,
 12181  		TaintEffectNoExecute,
 12182  		TaintEffectPreferNoSchedule,
 12183  	}
 12184  }
 12185  
 12186  const (
 12187  	// UpdateParamTypeVersion is a UpdateParamType enum value
 12188  	UpdateParamTypeVersion = "Version"
 12189  
 12190  	// UpdateParamTypePlatformVersion is a UpdateParamType enum value
 12191  	UpdateParamTypePlatformVersion = "PlatformVersion"
 12192  
 12193  	// UpdateParamTypeEndpointPrivateAccess is a UpdateParamType enum value
 12194  	UpdateParamTypeEndpointPrivateAccess = "EndpointPrivateAccess"
 12195  
 12196  	// UpdateParamTypeEndpointPublicAccess is a UpdateParamType enum value
 12197  	UpdateParamTypeEndpointPublicAccess = "EndpointPublicAccess"
 12198  
 12199  	// UpdateParamTypeClusterLogging is a UpdateParamType enum value
 12200  	UpdateParamTypeClusterLogging = "ClusterLogging"
 12201  
 12202  	// UpdateParamTypeDesiredSize is a UpdateParamType enum value
 12203  	UpdateParamTypeDesiredSize = "DesiredSize"
 12204  
 12205  	// UpdateParamTypeLabelsToAdd is a UpdateParamType enum value
 12206  	UpdateParamTypeLabelsToAdd = "LabelsToAdd"
 12207  
 12208  	// UpdateParamTypeLabelsToRemove is a UpdateParamType enum value
 12209  	UpdateParamTypeLabelsToRemove = "LabelsToRemove"
 12210  
 12211  	// UpdateParamTypeTaintsToAdd is a UpdateParamType enum value
 12212  	UpdateParamTypeTaintsToAdd = "TaintsToAdd"
 12213  
 12214  	// UpdateParamTypeTaintsToRemove is a UpdateParamType enum value
 12215  	UpdateParamTypeTaintsToRemove = "TaintsToRemove"
 12216  
 12217  	// UpdateParamTypeMaxSize is a UpdateParamType enum value
 12218  	UpdateParamTypeMaxSize = "MaxSize"
 12219  
 12220  	// UpdateParamTypeMinSize is a UpdateParamType enum value
 12221  	UpdateParamTypeMinSize = "MinSize"
 12222  
 12223  	// UpdateParamTypeReleaseVersion is a UpdateParamType enum value
 12224  	UpdateParamTypeReleaseVersion = "ReleaseVersion"
 12225  
 12226  	// UpdateParamTypePublicAccessCidrs is a UpdateParamType enum value
 12227  	UpdateParamTypePublicAccessCidrs = "PublicAccessCidrs"
 12228  
 12229  	// UpdateParamTypeLaunchTemplateName is a UpdateParamType enum value
 12230  	UpdateParamTypeLaunchTemplateName = "LaunchTemplateName"
 12231  
 12232  	// UpdateParamTypeLaunchTemplateVersion is a UpdateParamType enum value
 12233  	UpdateParamTypeLaunchTemplateVersion = "LaunchTemplateVersion"
 12234  
 12235  	// UpdateParamTypeIdentityProviderConfig is a UpdateParamType enum value
 12236  	UpdateParamTypeIdentityProviderConfig = "IdentityProviderConfig"
 12237  
 12238  	// UpdateParamTypeEncryptionConfig is a UpdateParamType enum value
 12239  	UpdateParamTypeEncryptionConfig = "EncryptionConfig"
 12240  
 12241  	// UpdateParamTypeAddonVersion is a UpdateParamType enum value
 12242  	UpdateParamTypeAddonVersion = "AddonVersion"
 12243  
 12244  	// UpdateParamTypeServiceAccountRoleArn is a UpdateParamType enum value
 12245  	UpdateParamTypeServiceAccountRoleArn = "ServiceAccountRoleArn"
 12246  
 12247  	// UpdateParamTypeResolveConflicts is a UpdateParamType enum value
 12248  	UpdateParamTypeResolveConflicts = "ResolveConflicts"
 12249  
 12250  	// UpdateParamTypeMaxUnavailable is a UpdateParamType enum value
 12251  	UpdateParamTypeMaxUnavailable = "MaxUnavailable"
 12252  
 12253  	// UpdateParamTypeMaxUnavailablePercentage is a UpdateParamType enum value
 12254  	UpdateParamTypeMaxUnavailablePercentage = "MaxUnavailablePercentage"
 12255  )
 12256  
 12257  // UpdateParamType_Values returns all elements of the UpdateParamType enum
 12258  func UpdateParamType_Values() []string {
 12259  	return []string{
 12260  		UpdateParamTypeVersion,
 12261  		UpdateParamTypePlatformVersion,
 12262  		UpdateParamTypeEndpointPrivateAccess,
 12263  		UpdateParamTypeEndpointPublicAccess,
 12264  		UpdateParamTypeClusterLogging,
 12265  		UpdateParamTypeDesiredSize,
 12266  		UpdateParamTypeLabelsToAdd,
 12267  		UpdateParamTypeLabelsToRemove,
 12268  		UpdateParamTypeTaintsToAdd,
 12269  		UpdateParamTypeTaintsToRemove,
 12270  		UpdateParamTypeMaxSize,
 12271  		UpdateParamTypeMinSize,
 12272  		UpdateParamTypeReleaseVersion,
 12273  		UpdateParamTypePublicAccessCidrs,
 12274  		UpdateParamTypeLaunchTemplateName,
 12275  		UpdateParamTypeLaunchTemplateVersion,
 12276  		UpdateParamTypeIdentityProviderConfig,
 12277  		UpdateParamTypeEncryptionConfig,
 12278  		UpdateParamTypeAddonVersion,
 12279  		UpdateParamTypeServiceAccountRoleArn,
 12280  		UpdateParamTypeResolveConflicts,
 12281  		UpdateParamTypeMaxUnavailable,
 12282  		UpdateParamTypeMaxUnavailablePercentage,
 12283  	}
 12284  }
 12285  
 12286  const (
 12287  	// UpdateStatusInProgress is a UpdateStatus enum value
 12288  	UpdateStatusInProgress = "InProgress"
 12289  
 12290  	// UpdateStatusFailed is a UpdateStatus enum value
 12291  	UpdateStatusFailed = "Failed"
 12292  
 12293  	// UpdateStatusCancelled is a UpdateStatus enum value
 12294  	UpdateStatusCancelled = "Cancelled"
 12295  
 12296  	// UpdateStatusSuccessful is a UpdateStatus enum value
 12297  	UpdateStatusSuccessful = "Successful"
 12298  )
 12299  
 12300  // UpdateStatus_Values returns all elements of the UpdateStatus enum
 12301  func UpdateStatus_Values() []string {
 12302  	return []string{
 12303  		UpdateStatusInProgress,
 12304  		UpdateStatusFailed,
 12305  		UpdateStatusCancelled,
 12306  		UpdateStatusSuccessful,
 12307  	}
 12308  }
 12309  
 12310  const (
 12311  	// UpdateTypeVersionUpdate is a UpdateType enum value
 12312  	UpdateTypeVersionUpdate = "VersionUpdate"
 12313  
 12314  	// UpdateTypeEndpointAccessUpdate is a UpdateType enum value
 12315  	UpdateTypeEndpointAccessUpdate = "EndpointAccessUpdate"
 12316  
 12317  	// UpdateTypeLoggingUpdate is a UpdateType enum value
 12318  	UpdateTypeLoggingUpdate = "LoggingUpdate"
 12319  
 12320  	// UpdateTypeConfigUpdate is a UpdateType enum value
 12321  	UpdateTypeConfigUpdate = "ConfigUpdate"
 12322  
 12323  	// UpdateTypeAssociateIdentityProviderConfig is a UpdateType enum value
 12324  	UpdateTypeAssociateIdentityProviderConfig = "AssociateIdentityProviderConfig"
 12325  
 12326  	// UpdateTypeDisassociateIdentityProviderConfig is a UpdateType enum value
 12327  	UpdateTypeDisassociateIdentityProviderConfig = "DisassociateIdentityProviderConfig"
 12328  
 12329  	// UpdateTypeAssociateEncryptionConfig is a UpdateType enum value
 12330  	UpdateTypeAssociateEncryptionConfig = "AssociateEncryptionConfig"
 12331  
 12332  	// UpdateTypeAddonUpdate is a UpdateType enum value
 12333  	UpdateTypeAddonUpdate = "AddonUpdate"
 12334  )
 12335  
 12336  // UpdateType_Values returns all elements of the UpdateType enum
 12337  func UpdateType_Values() []string {
 12338  	return []string{
 12339  		UpdateTypeVersionUpdate,
 12340  		UpdateTypeEndpointAccessUpdate,
 12341  		UpdateTypeLoggingUpdate,
 12342  		UpdateTypeConfigUpdate,
 12343  		UpdateTypeAssociateIdentityProviderConfig,
 12344  		UpdateTypeDisassociateIdentityProviderConfig,
 12345  		UpdateTypeAssociateEncryptionConfig,
 12346  		UpdateTypeAddonUpdate,
 12347  	}
 12348  }