1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package eks
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const 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
42func (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
99func (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.
113func (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
120const 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
146func (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
207func (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.
221func (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
228const 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
254func (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
313func (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.
327func (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
334const 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
360func (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
440func (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.
454func (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
461const 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
487func (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
572func (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.
586func (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
593const 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
619func (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
684func (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.
698func (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
705const 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
731func (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
784func (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.
798func (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
805const 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
831func (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
890func (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.
904func (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
911const 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
937func (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
993func (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.
1007func (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
1014const 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
1040func (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
1092func (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.
1106func (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
1113const opDescribeAddon = "DescribeAddon"
1114
1115// DescribeAddonRequest generates a "aws/request.Request" representing the
1116// client's request for the DescribeAddon 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 DescribeAddon for more information on using the DescribeAddon
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 DescribeAddonRequest method.
1131//    req, resp := client.DescribeAddonRequest(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/DescribeAddon
1139func (c *EKS) DescribeAddonRequest(input *DescribeAddonInput) (req *request.Request, output *DescribeAddonOutput) {
1140	op := &request.Operation{
1141		Name:       opDescribeAddon,
1142		HTTPMethod: "GET",
1143		HTTPPath:   "/clusters/{name}/addons/{addonName}",
1144	}
1145
1146	if input == nil {
1147		input = &DescribeAddonInput{}
1148	}
1149
1150	output = &DescribeAddonOutput{}
1151	req = c.newRequest(op, input, output)
1152	return
1153}
1154
1155// DescribeAddon API operation for Amazon Elastic Kubernetes Service.
1156//
1157// Describes an Amazon EKS add-on.
1158//
1159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1160// with awserr.Error's Code and Message methods to get detailed information about
1161// the error.
1162//
1163// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1164// API operation DescribeAddon for usage and error information.
1165//
1166// Returned Error Types:
1167//   * InvalidParameterException
1168//   The specified parameter is invalid. Review the available parameters for the
1169//   API request.
1170//
1171//   * InvalidRequestException
1172//   The request is invalid given the state of the cluster. Check the state of
1173//   the cluster and the associated operations.
1174//
1175//   * ResourceNotFoundException
1176//   The specified resource could not be found. You can view your available clusters
1177//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1178//   Amazon EKS clusters and node groups are Region-specific.
1179//
1180//   * ClientException
1181//   These errors are usually caused by a client action. Actions can include using
1182//   an action or resource on behalf of a user that doesn't have permissions to
1183//   use the action or resource or specifying an identifier that is not valid.
1184//
1185//   * ServerException
1186//   These errors are usually caused by a server-side issue.
1187//
1188// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddon
1189func (c *EKS) DescribeAddon(input *DescribeAddonInput) (*DescribeAddonOutput, error) {
1190	req, out := c.DescribeAddonRequest(input)
1191	return out, req.Send()
1192}
1193
1194// DescribeAddonWithContext is the same as DescribeAddon with the addition of
1195// the ability to pass a context and additional request options.
1196//
1197// See DescribeAddon for details on how to use this API operation.
1198//
1199// The context must be non-nil and will be used for request cancellation. If
1200// the context is nil a panic will occur. In the future the SDK may create
1201// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1202// for more information on using Contexts.
1203func (c *EKS) DescribeAddonWithContext(ctx aws.Context, input *DescribeAddonInput, opts ...request.Option) (*DescribeAddonOutput, error) {
1204	req, out := c.DescribeAddonRequest(input)
1205	req.SetContext(ctx)
1206	req.ApplyOptions(opts...)
1207	return out, req.Send()
1208}
1209
1210const opDescribeAddonVersions = "DescribeAddonVersions"
1211
1212// DescribeAddonVersionsRequest generates a "aws/request.Request" representing the
1213// client's request for the DescribeAddonVersions operation. The "output" return
1214// value will be populated with the request's response once the request completes
1215// successfully.
1216//
1217// Use "Send" method on the returned Request to send the API call to the service.
1218// the "output" return value is not valid until after Send returns without error.
1219//
1220// See DescribeAddonVersions for more information on using the DescribeAddonVersions
1221// API call, and error handling.
1222//
1223// This method is useful when you want to inject custom logic or configuration
1224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1225//
1226//
1227//    // Example sending a request using the DescribeAddonVersionsRequest method.
1228//    req, resp := client.DescribeAddonVersionsRequest(params)
1229//
1230//    err := req.Send()
1231//    if err == nil { // resp is now filled
1232//        fmt.Println(resp)
1233//    }
1234//
1235// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonVersions
1236func (c *EKS) DescribeAddonVersionsRequest(input *DescribeAddonVersionsInput) (req *request.Request, output *DescribeAddonVersionsOutput) {
1237	op := &request.Operation{
1238		Name:       opDescribeAddonVersions,
1239		HTTPMethod: "GET",
1240		HTTPPath:   "/addons/supported-versions",
1241		Paginator: &request.Paginator{
1242			InputTokens:     []string{"nextToken"},
1243			OutputTokens:    []string{"nextToken"},
1244			LimitToken:      "maxResults",
1245			TruncationToken: "",
1246		},
1247	}
1248
1249	if input == nil {
1250		input = &DescribeAddonVersionsInput{}
1251	}
1252
1253	output = &DescribeAddonVersionsOutput{}
1254	req = c.newRequest(op, input, output)
1255	return
1256}
1257
1258// DescribeAddonVersions API operation for Amazon Elastic Kubernetes Service.
1259//
1260// Describes the Kubernetes versions that the add-on can be used with.
1261//
1262// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1263// with awserr.Error's Code and Message methods to get detailed information about
1264// the error.
1265//
1266// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1267// API operation DescribeAddonVersions for usage and error information.
1268//
1269// Returned Error Types:
1270//   * ServerException
1271//   These errors are usually caused by a server-side issue.
1272//
1273//   * ResourceNotFoundException
1274//   The specified resource could not be found. You can view your available clusters
1275//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1276//   Amazon EKS clusters and node groups are Region-specific.
1277//
1278//   * InvalidParameterException
1279//   The specified parameter is invalid. Review the available parameters for the
1280//   API request.
1281//
1282// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonVersions
1283func (c *EKS) DescribeAddonVersions(input *DescribeAddonVersionsInput) (*DescribeAddonVersionsOutput, error) {
1284	req, out := c.DescribeAddonVersionsRequest(input)
1285	return out, req.Send()
1286}
1287
1288// DescribeAddonVersionsWithContext is the same as DescribeAddonVersions with the addition of
1289// the ability to pass a context and additional request options.
1290//
1291// See DescribeAddonVersions for details on how to use this API operation.
1292//
1293// The context must be non-nil and will be used for request cancellation. If
1294// the context is nil a panic will occur. In the future the SDK may create
1295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1296// for more information on using Contexts.
1297func (c *EKS) DescribeAddonVersionsWithContext(ctx aws.Context, input *DescribeAddonVersionsInput, opts ...request.Option) (*DescribeAddonVersionsOutput, error) {
1298	req, out := c.DescribeAddonVersionsRequest(input)
1299	req.SetContext(ctx)
1300	req.ApplyOptions(opts...)
1301	return out, req.Send()
1302}
1303
1304// DescribeAddonVersionsPages iterates over the pages of a DescribeAddonVersions operation,
1305// calling the "fn" function with the response data for each page. To stop
1306// iterating, return false from the fn function.
1307//
1308// See DescribeAddonVersions method for more information on how to use this operation.
1309//
1310// Note: This operation can generate multiple requests to a service.
1311//
1312//    // Example iterating over at most 3 pages of a DescribeAddonVersions operation.
1313//    pageNum := 0
1314//    err := client.DescribeAddonVersionsPages(params,
1315//        func(page *eks.DescribeAddonVersionsOutput, lastPage bool) bool {
1316//            pageNum++
1317//            fmt.Println(page)
1318//            return pageNum <= 3
1319//        })
1320//
1321func (c *EKS) DescribeAddonVersionsPages(input *DescribeAddonVersionsInput, fn func(*DescribeAddonVersionsOutput, bool) bool) error {
1322	return c.DescribeAddonVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
1323}
1324
1325// DescribeAddonVersionsPagesWithContext same as DescribeAddonVersionsPages except
1326// it takes a Context and allows setting request options on the pages.
1327//
1328// The context must be non-nil and will be used for request cancellation. If
1329// the context is nil a panic will occur. In the future the SDK may create
1330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1331// for more information on using Contexts.
1332func (c *EKS) DescribeAddonVersionsPagesWithContext(ctx aws.Context, input *DescribeAddonVersionsInput, fn func(*DescribeAddonVersionsOutput, bool) bool, opts ...request.Option) error {
1333	p := request.Pagination{
1334		NewRequest: func() (*request.Request, error) {
1335			var inCpy *DescribeAddonVersionsInput
1336			if input != nil {
1337				tmp := *input
1338				inCpy = &tmp
1339			}
1340			req, _ := c.DescribeAddonVersionsRequest(inCpy)
1341			req.SetContext(ctx)
1342			req.ApplyOptions(opts...)
1343			return req, nil
1344		},
1345	}
1346
1347	for p.Next() {
1348		if !fn(p.Page().(*DescribeAddonVersionsOutput), !p.HasNextPage()) {
1349			break
1350		}
1351	}
1352
1353	return p.Err()
1354}
1355
1356const opDescribeCluster = "DescribeCluster"
1357
1358// DescribeClusterRequest generates a "aws/request.Request" representing the
1359// client's request for the DescribeCluster operation. The "output" return
1360// value will be populated with the request's response once the request completes
1361// successfully.
1362//
1363// Use "Send" method on the returned Request to send the API call to the service.
1364// the "output" return value is not valid until after Send returns without error.
1365//
1366// See DescribeCluster for more information on using the DescribeCluster
1367// API call, and error handling.
1368//
1369// This method is useful when you want to inject custom logic or configuration
1370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1371//
1372//
1373//    // Example sending a request using the DescribeClusterRequest method.
1374//    req, resp := client.DescribeClusterRequest(params)
1375//
1376//    err := req.Send()
1377//    if err == nil { // resp is now filled
1378//        fmt.Println(resp)
1379//    }
1380//
1381// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster
1382func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
1383	op := &request.Operation{
1384		Name:       opDescribeCluster,
1385		HTTPMethod: "GET",
1386		HTTPPath:   "/clusters/{name}",
1387	}
1388
1389	if input == nil {
1390		input = &DescribeClusterInput{}
1391	}
1392
1393	output = &DescribeClusterOutput{}
1394	req = c.newRequest(op, input, output)
1395	return
1396}
1397
1398// DescribeCluster API operation for Amazon Elastic Kubernetes Service.
1399//
1400// Returns descriptive information about an Amazon EKS cluster.
1401//
1402// The API server endpoint and certificate authority data returned by this operation
1403// are required for kubelet and kubectl to communicate with your Kubernetes
1404// API server. For more information, see Create a kubeconfig for Amazon EKS
1405// (https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html).
1406//
1407// The API server endpoint and certificate authority data aren't available until
1408// the cluster reaches the ACTIVE state.
1409//
1410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1411// with awserr.Error's Code and Message methods to get detailed information about
1412// the error.
1413//
1414// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1415// API operation DescribeCluster for usage and error information.
1416//
1417// Returned Error Types:
1418//   * ResourceNotFoundException
1419//   The specified resource could not be found. You can view your available clusters
1420//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1421//   Amazon EKS clusters and node groups are Region-specific.
1422//
1423//   * ClientException
1424//   These errors are usually caused by a client action. Actions can include using
1425//   an action or resource on behalf of a user that doesn't have permissions to
1426//   use the action or resource or specifying an identifier that is not valid.
1427//
1428//   * ServerException
1429//   These errors are usually caused by a server-side issue.
1430//
1431//   * ServiceUnavailableException
1432//   The service is unavailable. Back off and retry the operation.
1433//
1434// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster
1435func (c *EKS) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
1436	req, out := c.DescribeClusterRequest(input)
1437	return out, req.Send()
1438}
1439
1440// DescribeClusterWithContext is the same as DescribeCluster with the addition of
1441// the ability to pass a context and additional request options.
1442//
1443// See DescribeCluster for details on how to use this API operation.
1444//
1445// The context must be non-nil and will be used for request cancellation. If
1446// the context is nil a panic will occur. In the future the SDK may create
1447// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1448// for more information on using Contexts.
1449func (c *EKS) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
1450	req, out := c.DescribeClusterRequest(input)
1451	req.SetContext(ctx)
1452	req.ApplyOptions(opts...)
1453	return out, req.Send()
1454}
1455
1456const opDescribeFargateProfile = "DescribeFargateProfile"
1457
1458// DescribeFargateProfileRequest generates a "aws/request.Request" representing the
1459// client's request for the DescribeFargateProfile operation. The "output" return
1460// value will be populated with the request's response once the request completes
1461// successfully.
1462//
1463// Use "Send" method on the returned Request to send the API call to the service.
1464// the "output" return value is not valid until after Send returns without error.
1465//
1466// See DescribeFargateProfile for more information on using the DescribeFargateProfile
1467// API call, and error handling.
1468//
1469// This method is useful when you want to inject custom logic or configuration
1470// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1471//
1472//
1473//    // Example sending a request using the DescribeFargateProfileRequest method.
1474//    req, resp := client.DescribeFargateProfileRequest(params)
1475//
1476//    err := req.Send()
1477//    if err == nil { // resp is now filled
1478//        fmt.Println(resp)
1479//    }
1480//
1481// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile
1482func (c *EKS) DescribeFargateProfileRequest(input *DescribeFargateProfileInput) (req *request.Request, output *DescribeFargateProfileOutput) {
1483	op := &request.Operation{
1484		Name:       opDescribeFargateProfile,
1485		HTTPMethod: "GET",
1486		HTTPPath:   "/clusters/{name}/fargate-profiles/{fargateProfileName}",
1487	}
1488
1489	if input == nil {
1490		input = &DescribeFargateProfileInput{}
1491	}
1492
1493	output = &DescribeFargateProfileOutput{}
1494	req = c.newRequest(op, input, output)
1495	return
1496}
1497
1498// DescribeFargateProfile API operation for Amazon Elastic Kubernetes Service.
1499//
1500// Returns descriptive information about an Fargate profile.
1501//
1502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1503// with awserr.Error's Code and Message methods to get detailed information about
1504// the error.
1505//
1506// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1507// API operation DescribeFargateProfile for usage and error information.
1508//
1509// Returned Error Types:
1510//   * InvalidParameterException
1511//   The specified parameter is invalid. Review the available parameters for the
1512//   API request.
1513//
1514//   * ClientException
1515//   These errors are usually caused by a client action. Actions can include using
1516//   an action or resource on behalf of a user that doesn't have permissions to
1517//   use the action or resource or specifying an identifier that is not valid.
1518//
1519//   * ServerException
1520//   These errors are usually caused by a server-side issue.
1521//
1522//   * ResourceNotFoundException
1523//   The specified resource could not be found. You can view your available clusters
1524//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1525//   Amazon EKS clusters and node groups are Region-specific.
1526//
1527// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile
1528func (c *EKS) DescribeFargateProfile(input *DescribeFargateProfileInput) (*DescribeFargateProfileOutput, error) {
1529	req, out := c.DescribeFargateProfileRequest(input)
1530	return out, req.Send()
1531}
1532
1533// DescribeFargateProfileWithContext is the same as DescribeFargateProfile with the addition of
1534// the ability to pass a context and additional request options.
1535//
1536// See DescribeFargateProfile for details on how to use this API operation.
1537//
1538// The context must be non-nil and will be used for request cancellation. If
1539// the context is nil a panic will occur. In the future the SDK may create
1540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1541// for more information on using Contexts.
1542func (c *EKS) DescribeFargateProfileWithContext(ctx aws.Context, input *DescribeFargateProfileInput, opts ...request.Option) (*DescribeFargateProfileOutput, error) {
1543	req, out := c.DescribeFargateProfileRequest(input)
1544	req.SetContext(ctx)
1545	req.ApplyOptions(opts...)
1546	return out, req.Send()
1547}
1548
1549const opDescribeIdentityProviderConfig = "DescribeIdentityProviderConfig"
1550
1551// DescribeIdentityProviderConfigRequest generates a "aws/request.Request" representing the
1552// client's request for the DescribeIdentityProviderConfig operation. The "output" return
1553// value will be populated with the request's response once the request completes
1554// successfully.
1555//
1556// Use "Send" method on the returned Request to send the API call to the service.
1557// the "output" return value is not valid until after Send returns without error.
1558//
1559// See DescribeIdentityProviderConfig for more information on using the DescribeIdentityProviderConfig
1560// API call, and error handling.
1561//
1562// This method is useful when you want to inject custom logic or configuration
1563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1564//
1565//
1566//    // Example sending a request using the DescribeIdentityProviderConfigRequest method.
1567//    req, resp := client.DescribeIdentityProviderConfigRequest(params)
1568//
1569//    err := req.Send()
1570//    if err == nil { // resp is now filled
1571//        fmt.Println(resp)
1572//    }
1573//
1574// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeIdentityProviderConfig
1575func (c *EKS) DescribeIdentityProviderConfigRequest(input *DescribeIdentityProviderConfigInput) (req *request.Request, output *DescribeIdentityProviderConfigOutput) {
1576	op := &request.Operation{
1577		Name:       opDescribeIdentityProviderConfig,
1578		HTTPMethod: "POST",
1579		HTTPPath:   "/clusters/{name}/identity-provider-configs/describe",
1580	}
1581
1582	if input == nil {
1583		input = &DescribeIdentityProviderConfigInput{}
1584	}
1585
1586	output = &DescribeIdentityProviderConfigOutput{}
1587	req = c.newRequest(op, input, output)
1588	return
1589}
1590
1591// DescribeIdentityProviderConfig API operation for Amazon Elastic Kubernetes Service.
1592//
1593// Returns descriptive information about an identity provider configuration.
1594//
1595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1596// with awserr.Error's Code and Message methods to get detailed information about
1597// the error.
1598//
1599// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1600// API operation DescribeIdentityProviderConfig for usage and error information.
1601//
1602// Returned Error Types:
1603//   * InvalidParameterException
1604//   The specified parameter is invalid. Review the available parameters for the
1605//   API request.
1606//
1607//   * ResourceNotFoundException
1608//   The specified resource could not be found. You can view your available clusters
1609//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1610//   Amazon EKS clusters and node groups are Region-specific.
1611//
1612//   * ClientException
1613//   These errors are usually caused by a client action. Actions can include using
1614//   an action or resource on behalf of a user that doesn't have permissions to
1615//   use the action or resource or specifying an identifier that is not valid.
1616//
1617//   * ServerException
1618//   These errors are usually caused by a server-side issue.
1619//
1620//   * ServiceUnavailableException
1621//   The service is unavailable. Back off and retry the operation.
1622//
1623// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeIdentityProviderConfig
1624func (c *EKS) DescribeIdentityProviderConfig(input *DescribeIdentityProviderConfigInput) (*DescribeIdentityProviderConfigOutput, error) {
1625	req, out := c.DescribeIdentityProviderConfigRequest(input)
1626	return out, req.Send()
1627}
1628
1629// DescribeIdentityProviderConfigWithContext is the same as DescribeIdentityProviderConfig with the addition of
1630// the ability to pass a context and additional request options.
1631//
1632// See DescribeIdentityProviderConfig 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.
1638func (c *EKS) DescribeIdentityProviderConfigWithContext(ctx aws.Context, input *DescribeIdentityProviderConfigInput, opts ...request.Option) (*DescribeIdentityProviderConfigOutput, error) {
1639	req, out := c.DescribeIdentityProviderConfigRequest(input)
1640	req.SetContext(ctx)
1641	req.ApplyOptions(opts...)
1642	return out, req.Send()
1643}
1644
1645const opDescribeNodegroup = "DescribeNodegroup"
1646
1647// DescribeNodegroupRequest generates a "aws/request.Request" representing the
1648// client's request for the DescribeNodegroup 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 DescribeNodegroup for more information on using the DescribeNodegroup
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 DescribeNodegroupRequest method.
1663//    req, resp := client.DescribeNodegroupRequest(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/DescribeNodegroup
1671func (c *EKS) DescribeNodegroupRequest(input *DescribeNodegroupInput) (req *request.Request, output *DescribeNodegroupOutput) {
1672	op := &request.Operation{
1673		Name:       opDescribeNodegroup,
1674		HTTPMethod: "GET",
1675		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}",
1676	}
1677
1678	if input == nil {
1679		input = &DescribeNodegroupInput{}
1680	}
1681
1682	output = &DescribeNodegroupOutput{}
1683	req = c.newRequest(op, input, output)
1684	return
1685}
1686
1687// DescribeNodegroup API operation for Amazon Elastic Kubernetes Service.
1688//
1689// Returns descriptive information about an Amazon EKS node group.
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 DescribeNodegroup 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/DescribeNodegroup
1720func (c *EKS) DescribeNodegroup(input *DescribeNodegroupInput) (*DescribeNodegroupOutput, error) {
1721	req, out := c.DescribeNodegroupRequest(input)
1722	return out, req.Send()
1723}
1724
1725// DescribeNodegroupWithContext is the same as DescribeNodegroup with the addition of
1726// the ability to pass a context and additional request options.
1727//
1728// See DescribeNodegroup 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.
1734func (c *EKS) DescribeNodegroupWithContext(ctx aws.Context, input *DescribeNodegroupInput, opts ...request.Option) (*DescribeNodegroupOutput, error) {
1735	req, out := c.DescribeNodegroupRequest(input)
1736	req.SetContext(ctx)
1737	req.ApplyOptions(opts...)
1738	return out, req.Send()
1739}
1740
1741const opDescribeUpdate = "DescribeUpdate"
1742
1743// DescribeUpdateRequest generates a "aws/request.Request" representing the
1744// client's request for the DescribeUpdate 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 DescribeUpdate for more information on using the DescribeUpdate
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 DescribeUpdateRequest method.
1759//    req, resp := client.DescribeUpdateRequest(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/DescribeUpdate
1767func (c *EKS) DescribeUpdateRequest(input *DescribeUpdateInput) (req *request.Request, output *DescribeUpdateOutput) {
1768	op := &request.Operation{
1769		Name:       opDescribeUpdate,
1770		HTTPMethod: "GET",
1771		HTTPPath:   "/clusters/{name}/updates/{updateId}",
1772	}
1773
1774	if input == nil {
1775		input = &DescribeUpdateInput{}
1776	}
1777
1778	output = &DescribeUpdateOutput{}
1779	req = c.newRequest(op, input, output)
1780	return
1781}
1782
1783// DescribeUpdate API operation for Amazon Elastic Kubernetes Service.
1784//
1785// Returns descriptive information about an update against your Amazon EKS cluster
1786// or associated managed node group.
1787//
1788// When the status of the update is Succeeded, the update is complete. If an
1789// update fails, the status is Failed, and an error detail explains the reason
1790// for the failure.
1791//
1792// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1793// with awserr.Error's Code and Message methods to get detailed information about
1794// the error.
1795//
1796// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1797// API operation DescribeUpdate for usage and error information.
1798//
1799// Returned Error Types:
1800//   * InvalidParameterException
1801//   The specified parameter is invalid. Review the available parameters for the
1802//   API request.
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//   * ResourceNotFoundException
1813//   The specified resource could not be found. You can view your available clusters
1814//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1815//   Amazon EKS clusters and node groups are Region-specific.
1816//
1817// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate
1818func (c *EKS) DescribeUpdate(input *DescribeUpdateInput) (*DescribeUpdateOutput, error) {
1819	req, out := c.DescribeUpdateRequest(input)
1820	return out, req.Send()
1821}
1822
1823// DescribeUpdateWithContext is the same as DescribeUpdate with the addition of
1824// the ability to pass a context and additional request options.
1825//
1826// See DescribeUpdate for details on how to use this API operation.
1827//
1828// The context must be non-nil and will be used for request cancellation. If
1829// the context is nil a panic will occur. In the future the SDK may create
1830// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1831// for more information on using Contexts.
1832func (c *EKS) DescribeUpdateWithContext(ctx aws.Context, input *DescribeUpdateInput, opts ...request.Option) (*DescribeUpdateOutput, error) {
1833	req, out := c.DescribeUpdateRequest(input)
1834	req.SetContext(ctx)
1835	req.ApplyOptions(opts...)
1836	return out, req.Send()
1837}
1838
1839const opDisassociateIdentityProviderConfig = "DisassociateIdentityProviderConfig"
1840
1841// DisassociateIdentityProviderConfigRequest generates a "aws/request.Request" representing the
1842// client's request for the DisassociateIdentityProviderConfig operation. The "output" return
1843// value will be populated with the request's response once the request completes
1844// successfully.
1845//
1846// Use "Send" method on the returned Request to send the API call to the service.
1847// the "output" return value is not valid until after Send returns without error.
1848//
1849// See DisassociateIdentityProviderConfig for more information on using the DisassociateIdentityProviderConfig
1850// API call, and error handling.
1851//
1852// This method is useful when you want to inject custom logic or configuration
1853// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1854//
1855//
1856//    // Example sending a request using the DisassociateIdentityProviderConfigRequest method.
1857//    req, resp := client.DisassociateIdentityProviderConfigRequest(params)
1858//
1859//    err := req.Send()
1860//    if err == nil { // resp is now filled
1861//        fmt.Println(resp)
1862//    }
1863//
1864// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DisassociateIdentityProviderConfig
1865func (c *EKS) DisassociateIdentityProviderConfigRequest(input *DisassociateIdentityProviderConfigInput) (req *request.Request, output *DisassociateIdentityProviderConfigOutput) {
1866	op := &request.Operation{
1867		Name:       opDisassociateIdentityProviderConfig,
1868		HTTPMethod: "POST",
1869		HTTPPath:   "/clusters/{name}/identity-provider-configs/disassociate",
1870	}
1871
1872	if input == nil {
1873		input = &DisassociateIdentityProviderConfigInput{}
1874	}
1875
1876	output = &DisassociateIdentityProviderConfigOutput{}
1877	req = c.newRequest(op, input, output)
1878	return
1879}
1880
1881// DisassociateIdentityProviderConfig API operation for Amazon Elastic Kubernetes Service.
1882//
1883// Disassociates an identity provider configuration from a cluster. If you disassociate
1884// an identity provider from your cluster, users included in the provider can
1885// no longer access the cluster. However, you can still access the cluster with
1886// Amazon Web Services IAM users.
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 DisassociateIdentityProviderConfig 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//   * ResourceInUseException
1909//   The specified resource is in use.
1910//
1911//   * ResourceNotFoundException
1912//   The specified resource could not be found. You can view your available clusters
1913//   with ListClusters. You can view your available managed node groups with ListNodegroups.
1914//   Amazon EKS clusters and node groups are Region-specific.
1915//
1916//   * InvalidRequestException
1917//   The request is invalid given the state of the cluster. Check the state of
1918//   the cluster and the associated operations.
1919//
1920// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DisassociateIdentityProviderConfig
1921func (c *EKS) DisassociateIdentityProviderConfig(input *DisassociateIdentityProviderConfigInput) (*DisassociateIdentityProviderConfigOutput, error) {
1922	req, out := c.DisassociateIdentityProviderConfigRequest(input)
1923	return out, req.Send()
1924}
1925
1926// DisassociateIdentityProviderConfigWithContext is the same as DisassociateIdentityProviderConfig with the addition of
1927// the ability to pass a context and additional request options.
1928//
1929// See DisassociateIdentityProviderConfig for details on how to use this API operation.
1930//
1931// The context must be non-nil and will be used for request cancellation. If
1932// the context is nil a panic will occur. In the future the SDK may create
1933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1934// for more information on using Contexts.
1935func (c *EKS) DisassociateIdentityProviderConfigWithContext(ctx aws.Context, input *DisassociateIdentityProviderConfigInput, opts ...request.Option) (*DisassociateIdentityProviderConfigOutput, error) {
1936	req, out := c.DisassociateIdentityProviderConfigRequest(input)
1937	req.SetContext(ctx)
1938	req.ApplyOptions(opts...)
1939	return out, req.Send()
1940}
1941
1942const opListAddons = "ListAddons"
1943
1944// ListAddonsRequest generates a "aws/request.Request" representing the
1945// client's request for the ListAddons operation. The "output" return
1946// value will be populated with the request's response once the request completes
1947// successfully.
1948//
1949// Use "Send" method on the returned Request to send the API call to the service.
1950// the "output" return value is not valid until after Send returns without error.
1951//
1952// See ListAddons for more information on using the ListAddons
1953// API call, and error handling.
1954//
1955// This method is useful when you want to inject custom logic or configuration
1956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1957//
1958//
1959//    // Example sending a request using the ListAddonsRequest method.
1960//    req, resp := client.ListAddonsRequest(params)
1961//
1962//    err := req.Send()
1963//    if err == nil { // resp is now filled
1964//        fmt.Println(resp)
1965//    }
1966//
1967// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListAddons
1968func (c *EKS) ListAddonsRequest(input *ListAddonsInput) (req *request.Request, output *ListAddonsOutput) {
1969	op := &request.Operation{
1970		Name:       opListAddons,
1971		HTTPMethod: "GET",
1972		HTTPPath:   "/clusters/{name}/addons",
1973		Paginator: &request.Paginator{
1974			InputTokens:     []string{"nextToken"},
1975			OutputTokens:    []string{"nextToken"},
1976			LimitToken:      "maxResults",
1977			TruncationToken: "",
1978		},
1979	}
1980
1981	if input == nil {
1982		input = &ListAddonsInput{}
1983	}
1984
1985	output = &ListAddonsOutput{}
1986	req = c.newRequest(op, input, output)
1987	return
1988}
1989
1990// ListAddons API operation for Amazon Elastic Kubernetes Service.
1991//
1992// Lists the available add-ons.
1993//
1994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1995// with awserr.Error's Code and Message methods to get detailed information about
1996// the error.
1997//
1998// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
1999// API operation ListAddons for usage and error information.
2000//
2001// Returned Error Types:
2002//   * InvalidParameterException
2003//   The specified parameter is invalid. Review the available parameters for the
2004//   API request.
2005//
2006//   * InvalidRequestException
2007//   The request is invalid given the state of the cluster. Check the state of
2008//   the cluster and the associated operations.
2009//
2010//   * ClientException
2011//   These errors are usually caused by a client action. Actions can include using
2012//   an action or resource on behalf of a user that doesn't have permissions to
2013//   use the action or resource or specifying an identifier that is not valid.
2014//
2015//   * ResourceNotFoundException
2016//   The specified resource could not be found. You can view your available clusters
2017//   with ListClusters. You can view your available managed node groups with ListNodegroups.
2018//   Amazon EKS clusters and node groups are Region-specific.
2019//
2020//   * ServerException
2021//   These errors are usually caused by a server-side issue.
2022//
2023// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListAddons
2024func (c *EKS) ListAddons(input *ListAddonsInput) (*ListAddonsOutput, error) {
2025	req, out := c.ListAddonsRequest(input)
2026	return out, req.Send()
2027}
2028
2029// ListAddonsWithContext is the same as ListAddons with the addition of
2030// the ability to pass a context and additional request options.
2031//
2032// See ListAddons for details on how to use this API operation.
2033//
2034// The context must be non-nil and will be used for request cancellation. If
2035// the context is nil a panic will occur. In the future the SDK may create
2036// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2037// for more information on using Contexts.
2038func (c *EKS) ListAddonsWithContext(ctx aws.Context, input *ListAddonsInput, opts ...request.Option) (*ListAddonsOutput, error) {
2039	req, out := c.ListAddonsRequest(input)
2040	req.SetContext(ctx)
2041	req.ApplyOptions(opts...)
2042	return out, req.Send()
2043}
2044
2045// ListAddonsPages iterates over the pages of a ListAddons operation,
2046// calling the "fn" function with the response data for each page. To stop
2047// iterating, return false from the fn function.
2048//
2049// See ListAddons method for more information on how to use this operation.
2050//
2051// Note: This operation can generate multiple requests to a service.
2052//
2053//    // Example iterating over at most 3 pages of a ListAddons operation.
2054//    pageNum := 0
2055//    err := client.ListAddonsPages(params,
2056//        func(page *eks.ListAddonsOutput, lastPage bool) bool {
2057//            pageNum++
2058//            fmt.Println(page)
2059//            return pageNum <= 3
2060//        })
2061//
2062func (c *EKS) ListAddonsPages(input *ListAddonsInput, fn func(*ListAddonsOutput, bool) bool) error {
2063	return c.ListAddonsPagesWithContext(aws.BackgroundContext(), input, fn)
2064}
2065
2066// ListAddonsPagesWithContext same as ListAddonsPages except
2067// it takes a Context and allows setting request options on the pages.
2068//
2069// The context must be non-nil and will be used for request cancellation. If
2070// the context is nil a panic will occur. In the future the SDK may create
2071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2072// for more information on using Contexts.
2073func (c *EKS) ListAddonsPagesWithContext(ctx aws.Context, input *ListAddonsInput, fn func(*ListAddonsOutput, bool) bool, opts ...request.Option) error {
2074	p := request.Pagination{
2075		NewRequest: func() (*request.Request, error) {
2076			var inCpy *ListAddonsInput
2077			if input != nil {
2078				tmp := *input
2079				inCpy = &tmp
2080			}
2081			req, _ := c.ListAddonsRequest(inCpy)
2082			req.SetContext(ctx)
2083			req.ApplyOptions(opts...)
2084			return req, nil
2085		},
2086	}
2087
2088	for p.Next() {
2089		if !fn(p.Page().(*ListAddonsOutput), !p.HasNextPage()) {
2090			break
2091		}
2092	}
2093
2094	return p.Err()
2095}
2096
2097const opListClusters = "ListClusters"
2098
2099// ListClustersRequest generates a "aws/request.Request" representing the
2100// client's request for the ListClusters operation. The "output" return
2101// value will be populated with the request's response once the request completes
2102// successfully.
2103//
2104// Use "Send" method on the returned Request to send the API call to the service.
2105// the "output" return value is not valid until after Send returns without error.
2106//
2107// See ListClusters for more information on using the ListClusters
2108// API call, and error handling.
2109//
2110// This method is useful when you want to inject custom logic or configuration
2111// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2112//
2113//
2114//    // Example sending a request using the ListClustersRequest method.
2115//    req, resp := client.ListClustersRequest(params)
2116//
2117//    err := req.Send()
2118//    if err == nil { // resp is now filled
2119//        fmt.Println(resp)
2120//    }
2121//
2122// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters
2123func (c *EKS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2124	op := &request.Operation{
2125		Name:       opListClusters,
2126		HTTPMethod: "GET",
2127		HTTPPath:   "/clusters",
2128		Paginator: &request.Paginator{
2129			InputTokens:     []string{"nextToken"},
2130			OutputTokens:    []string{"nextToken"},
2131			LimitToken:      "maxResults",
2132			TruncationToken: "",
2133		},
2134	}
2135
2136	if input == nil {
2137		input = &ListClustersInput{}
2138	}
2139
2140	output = &ListClustersOutput{}
2141	req = c.newRequest(op, input, output)
2142	return
2143}
2144
2145// ListClusters API operation for Amazon Elastic Kubernetes Service.
2146//
2147// Lists the Amazon EKS clusters in your Amazon Web Services account in the
2148// specified Region.
2149//
2150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2151// with awserr.Error's Code and Message methods to get detailed information about
2152// the error.
2153//
2154// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
2155// API operation ListClusters for usage and error information.
2156//
2157// Returned Error Types:
2158//   * InvalidParameterException
2159//   The specified parameter is invalid. Review the available parameters for the
2160//   API request.
2161//
2162//   * ClientException
2163//   These errors are usually caused by a client action. Actions can include using
2164//   an action or resource on behalf of a user that doesn't have permissions to
2165//   use the action or resource or specifying an identifier that is not valid.
2166//
2167//   * ServerException
2168//   These errors are usually caused by a server-side issue.
2169//
2170//   * ServiceUnavailableException
2171//   The service is unavailable. Back off and retry the operation.
2172//
2173// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters
2174func (c *EKS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2175	req, out := c.ListClustersRequest(input)
2176	return out, req.Send()
2177}
2178
2179// ListClustersWithContext is the same as ListClusters with the addition of
2180// the ability to pass a context and additional request options.
2181//
2182// See ListClusters for details on how to use this API operation.
2183//
2184// The context must be non-nil and will be used for request cancellation. If
2185// the context is nil a panic will occur. In the future the SDK may create
2186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2187// for more information on using Contexts.
2188func (c *EKS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2189	req, out := c.ListClustersRequest(input)
2190	req.SetContext(ctx)
2191	req.ApplyOptions(opts...)
2192	return out, req.Send()
2193}
2194
2195// ListClustersPages iterates over the pages of a ListClusters operation,
2196// calling the "fn" function with the response data for each page. To stop
2197// iterating, return false from the fn function.
2198//
2199// See ListClusters method for more information on how to use this operation.
2200//
2201// Note: This operation can generate multiple requests to a service.
2202//
2203//    // Example iterating over at most 3 pages of a ListClusters operation.
2204//    pageNum := 0
2205//    err := client.ListClustersPages(params,
2206//        func(page *eks.ListClustersOutput, lastPage bool) bool {
2207//            pageNum++
2208//            fmt.Println(page)
2209//            return pageNum <= 3
2210//        })
2211//
2212func (c *EKS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2213	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2214}
2215
2216// ListClustersPagesWithContext same as ListClustersPages except
2217// it takes a Context and allows setting request options on the pages.
2218//
2219// The context must be non-nil and will be used for request cancellation. If
2220// the context is nil a panic will occur. In the future the SDK may create
2221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2222// for more information on using Contexts.
2223func (c *EKS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2224	p := request.Pagination{
2225		NewRequest: func() (*request.Request, error) {
2226			var inCpy *ListClustersInput
2227			if input != nil {
2228				tmp := *input
2229				inCpy = &tmp
2230			}
2231			req, _ := c.ListClustersRequest(inCpy)
2232			req.SetContext(ctx)
2233			req.ApplyOptions(opts...)
2234			return req, nil
2235		},
2236	}
2237
2238	for p.Next() {
2239		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2240			break
2241		}
2242	}
2243
2244	return p.Err()
2245}
2246
2247const opListFargateProfiles = "ListFargateProfiles"
2248
2249// ListFargateProfilesRequest generates a "aws/request.Request" representing the
2250// client's request for the ListFargateProfiles operation. The "output" return
2251// value will be populated with the request's response once the request completes
2252// successfully.
2253//
2254// Use "Send" method on the returned Request to send the API call to the service.
2255// the "output" return value is not valid until after Send returns without error.
2256//
2257// See ListFargateProfiles for more information on using the ListFargateProfiles
2258// API call, and error handling.
2259//
2260// This method is useful when you want to inject custom logic or configuration
2261// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2262//
2263//
2264//    // Example sending a request using the ListFargateProfilesRequest method.
2265//    req, resp := client.ListFargateProfilesRequest(params)
2266//
2267//    err := req.Send()
2268//    if err == nil { // resp is now filled
2269//        fmt.Println(resp)
2270//    }
2271//
2272// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles
2273func (c *EKS) ListFargateProfilesRequest(input *ListFargateProfilesInput) (req *request.Request, output *ListFargateProfilesOutput) {
2274	op := &request.Operation{
2275		Name:       opListFargateProfiles,
2276		HTTPMethod: "GET",
2277		HTTPPath:   "/clusters/{name}/fargate-profiles",
2278		Paginator: &request.Paginator{
2279			InputTokens:     []string{"nextToken"},
2280			OutputTokens:    []string{"nextToken"},
2281			LimitToken:      "maxResults",
2282			TruncationToken: "",
2283		},
2284	}
2285
2286	if input == nil {
2287		input = &ListFargateProfilesInput{}
2288	}
2289
2290	output = &ListFargateProfilesOutput{}
2291	req = c.newRequest(op, input, output)
2292	return
2293}
2294
2295// ListFargateProfiles API operation for Amazon Elastic Kubernetes Service.
2296//
2297// Lists the Fargate profiles associated with the specified cluster in your
2298// Amazon Web Services account in the specified Region.
2299//
2300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2301// with awserr.Error's Code and Message methods to get detailed information about
2302// the error.
2303//
2304// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
2305// API operation ListFargateProfiles for usage and error information.
2306//
2307// Returned Error Types:
2308//   * InvalidParameterException
2309//   The specified parameter is invalid. Review the available parameters for the
2310//   API request.
2311//
2312//   * ResourceNotFoundException
2313//   The specified resource could not be found. You can view your available clusters
2314//   with ListClusters. You can view your available managed node groups with ListNodegroups.
2315//   Amazon EKS clusters and node groups are Region-specific.
2316//
2317//   * ClientException
2318//   These errors are usually caused by a client action. Actions can include using
2319//   an action or resource on behalf of a user that doesn't have permissions to
2320//   use the action or resource or specifying an identifier that is not valid.
2321//
2322//   * ServerException
2323//   These errors are usually caused by a server-side issue.
2324//
2325// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles
2326func (c *EKS) ListFargateProfiles(input *ListFargateProfilesInput) (*ListFargateProfilesOutput, error) {
2327	req, out := c.ListFargateProfilesRequest(input)
2328	return out, req.Send()
2329}
2330
2331// ListFargateProfilesWithContext is the same as ListFargateProfiles with the addition of
2332// the ability to pass a context and additional request options.
2333//
2334// See ListFargateProfiles for details on how to use this API operation.
2335//
2336// The context must be non-nil and will be used for request cancellation. If
2337// the context is nil a panic will occur. In the future the SDK may create
2338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2339// for more information on using Contexts.
2340func (c *EKS) ListFargateProfilesWithContext(ctx aws.Context, input *ListFargateProfilesInput, opts ...request.Option) (*ListFargateProfilesOutput, error) {
2341	req, out := c.ListFargateProfilesRequest(input)
2342	req.SetContext(ctx)
2343	req.ApplyOptions(opts...)
2344	return out, req.Send()
2345}
2346
2347// ListFargateProfilesPages iterates over the pages of a ListFargateProfiles operation,
2348// calling the "fn" function with the response data for each page. To stop
2349// iterating, return false from the fn function.
2350//
2351// See ListFargateProfiles method for more information on how to use this operation.
2352//
2353// Note: This operation can generate multiple requests to a service.
2354//
2355//    // Example iterating over at most 3 pages of a ListFargateProfiles operation.
2356//    pageNum := 0
2357//    err := client.ListFargateProfilesPages(params,
2358//        func(page *eks.ListFargateProfilesOutput, lastPage bool) bool {
2359//            pageNum++
2360//            fmt.Println(page)
2361//            return pageNum <= 3
2362//        })
2363//
2364func (c *EKS) ListFargateProfilesPages(input *ListFargateProfilesInput, fn func(*ListFargateProfilesOutput, bool) bool) error {
2365	return c.ListFargateProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
2366}
2367
2368// ListFargateProfilesPagesWithContext same as ListFargateProfilesPages except
2369// it takes a Context and allows setting request options on the pages.
2370//
2371// The context must be non-nil and will be used for request cancellation. If
2372// the context is nil a panic will occur. In the future the SDK may create
2373// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2374// for more information on using Contexts.
2375func (c *EKS) ListFargateProfilesPagesWithContext(ctx aws.Context, input *ListFargateProfilesInput, fn func(*ListFargateProfilesOutput, bool) bool, opts ...request.Option) error {
2376	p := request.Pagination{
2377		NewRequest: func() (*request.Request, error) {
2378			var inCpy *ListFargateProfilesInput
2379			if input != nil {
2380				tmp := *input
2381				inCpy = &tmp
2382			}
2383			req, _ := c.ListFargateProfilesRequest(inCpy)
2384			req.SetContext(ctx)
2385			req.ApplyOptions(opts...)
2386			return req, nil
2387		},
2388	}
2389
2390	for p.Next() {
2391		if !fn(p.Page().(*ListFargateProfilesOutput), !p.HasNextPage()) {
2392			break
2393		}
2394	}
2395
2396	return p.Err()
2397}
2398
2399const opListIdentityProviderConfigs = "ListIdentityProviderConfigs"
2400
2401// ListIdentityProviderConfigsRequest generates a "aws/request.Request" representing the
2402// client's request for the ListIdentityProviderConfigs operation. The "output" return
2403// value will be populated with the request's response once the request completes
2404// successfully.
2405//
2406// Use "Send" method on the returned Request to send the API call to the service.
2407// the "output" return value is not valid until after Send returns without error.
2408//
2409// See ListIdentityProviderConfigs for more information on using the ListIdentityProviderConfigs
2410// API call, and error handling.
2411//
2412// This method is useful when you want to inject custom logic or configuration
2413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2414//
2415//
2416//    // Example sending a request using the ListIdentityProviderConfigsRequest method.
2417//    req, resp := client.ListIdentityProviderConfigsRequest(params)
2418//
2419//    err := req.Send()
2420//    if err == nil { // resp is now filled
2421//        fmt.Println(resp)
2422//    }
2423//
2424// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListIdentityProviderConfigs
2425func (c *EKS) ListIdentityProviderConfigsRequest(input *ListIdentityProviderConfigsInput) (req *request.Request, output *ListIdentityProviderConfigsOutput) {
2426	op := &request.Operation{
2427		Name:       opListIdentityProviderConfigs,
2428		HTTPMethod: "GET",
2429		HTTPPath:   "/clusters/{name}/identity-provider-configs",
2430		Paginator: &request.Paginator{
2431			InputTokens:     []string{"nextToken"},
2432			OutputTokens:    []string{"nextToken"},
2433			LimitToken:      "maxResults",
2434			TruncationToken: "",
2435		},
2436	}
2437
2438	if input == nil {
2439		input = &ListIdentityProviderConfigsInput{}
2440	}
2441
2442	output = &ListIdentityProviderConfigsOutput{}
2443	req = c.newRequest(op, input, output)
2444	return
2445}
2446
2447// ListIdentityProviderConfigs API operation for Amazon Elastic Kubernetes Service.
2448//
2449// A list of identity provider configurations.
2450//
2451// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2452// with awserr.Error's Code and Message methods to get detailed information about
2453// the error.
2454//
2455// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
2456// API operation ListIdentityProviderConfigs for usage and error information.
2457//
2458// Returned Error Types:
2459//   * InvalidParameterException
2460//   The specified parameter is invalid. Review the available parameters for the
2461//   API request.
2462//
2463//   * ClientException
2464//   These errors are usually caused by a client action. Actions can include using
2465//   an action or resource on behalf of a user that doesn't have permissions to
2466//   use the action or resource or specifying an identifier that is not valid.
2467//
2468//   * ServerException
2469//   These errors are usually caused by a server-side issue.
2470//
2471//   * ServiceUnavailableException
2472//   The service is unavailable. Back off and retry the operation.
2473//
2474//   * ResourceNotFoundException
2475//   The specified resource could not be found. You can view your available clusters
2476//   with ListClusters. You can view your available managed node groups with ListNodegroups.
2477//   Amazon EKS clusters and node groups are Region-specific.
2478//
2479// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListIdentityProviderConfigs
2480func (c *EKS) ListIdentityProviderConfigs(input *ListIdentityProviderConfigsInput) (*ListIdentityProviderConfigsOutput, error) {
2481	req, out := c.ListIdentityProviderConfigsRequest(input)
2482	return out, req.Send()
2483}
2484
2485// ListIdentityProviderConfigsWithContext is the same as ListIdentityProviderConfigs with the addition of
2486// the ability to pass a context and additional request options.
2487//
2488// See ListIdentityProviderConfigs for details on how to use this API operation.
2489//
2490// The context must be non-nil and will be used for request cancellation. If
2491// the context is nil a panic will occur. In the future the SDK may create
2492// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2493// for more information on using Contexts.
2494func (c *EKS) ListIdentityProviderConfigsWithContext(ctx aws.Context, input *ListIdentityProviderConfigsInput, opts ...request.Option) (*ListIdentityProviderConfigsOutput, error) {
2495	req, out := c.ListIdentityProviderConfigsRequest(input)
2496	req.SetContext(ctx)
2497	req.ApplyOptions(opts...)
2498	return out, req.Send()
2499}
2500
2501// ListIdentityProviderConfigsPages iterates over the pages of a ListIdentityProviderConfigs operation,
2502// calling the "fn" function with the response data for each page. To stop
2503// iterating, return false from the fn function.
2504//
2505// See ListIdentityProviderConfigs method for more information on how to use this operation.
2506//
2507// Note: This operation can generate multiple requests to a service.
2508//
2509//    // Example iterating over at most 3 pages of a ListIdentityProviderConfigs operation.
2510//    pageNum := 0
2511//    err := client.ListIdentityProviderConfigsPages(params,
2512//        func(page *eks.ListIdentityProviderConfigsOutput, lastPage bool) bool {
2513//            pageNum++
2514//            fmt.Println(page)
2515//            return pageNum <= 3
2516//        })
2517//
2518func (c *EKS) ListIdentityProviderConfigsPages(input *ListIdentityProviderConfigsInput, fn func(*ListIdentityProviderConfigsOutput, bool) bool) error {
2519	return c.ListIdentityProviderConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
2520}
2521
2522// ListIdentityProviderConfigsPagesWithContext same as ListIdentityProviderConfigsPages except
2523// it takes a Context and allows setting request options on the pages.
2524//
2525// The context must be non-nil and will be used for request cancellation. If
2526// the context is nil a panic will occur. In the future the SDK may create
2527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2528// for more information on using Contexts.
2529func (c *EKS) ListIdentityProviderConfigsPagesWithContext(ctx aws.Context, input *ListIdentityProviderConfigsInput, fn func(*ListIdentityProviderConfigsOutput, bool) bool, opts ...request.Option) error {
2530	p := request.Pagination{
2531		NewRequest: func() (*request.Request, error) {
2532			var inCpy *ListIdentityProviderConfigsInput
2533			if input != nil {
2534				tmp := *input
2535				inCpy = &tmp
2536			}
2537			req, _ := c.ListIdentityProviderConfigsRequest(inCpy)
2538			req.SetContext(ctx)
2539			req.ApplyOptions(opts...)
2540			return req, nil
2541		},
2542	}
2543
2544	for p.Next() {
2545		if !fn(p.Page().(*ListIdentityProviderConfigsOutput), !p.HasNextPage()) {
2546			break
2547		}
2548	}
2549
2550	return p.Err()
2551}
2552
2553const opListNodegroups = "ListNodegroups"
2554
2555// ListNodegroupsRequest generates a "aws/request.Request" representing the
2556// client's request for the ListNodegroups operation. The "output" return
2557// value will be populated with the request's response once the request completes
2558// successfully.
2559//
2560// Use "Send" method on the returned Request to send the API call to the service.
2561// the "output" return value is not valid until after Send returns without error.
2562//
2563// See ListNodegroups for more information on using the ListNodegroups
2564// API call, and error handling.
2565//
2566// This method is useful when you want to inject custom logic or configuration
2567// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2568//
2569//
2570//    // Example sending a request using the ListNodegroupsRequest method.
2571//    req, resp := client.ListNodegroupsRequest(params)
2572//
2573//    err := req.Send()
2574//    if err == nil { // resp is now filled
2575//        fmt.Println(resp)
2576//    }
2577//
2578// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups
2579func (c *EKS) ListNodegroupsRequest(input *ListNodegroupsInput) (req *request.Request, output *ListNodegroupsOutput) {
2580	op := &request.Operation{
2581		Name:       opListNodegroups,
2582		HTTPMethod: "GET",
2583		HTTPPath:   "/clusters/{name}/node-groups",
2584		Paginator: &request.Paginator{
2585			InputTokens:     []string{"nextToken"},
2586			OutputTokens:    []string{"nextToken"},
2587			LimitToken:      "maxResults",
2588			TruncationToken: "",
2589		},
2590	}
2591
2592	if input == nil {
2593		input = &ListNodegroupsInput{}
2594	}
2595
2596	output = &ListNodegroupsOutput{}
2597	req = c.newRequest(op, input, output)
2598	return
2599}
2600
2601// ListNodegroups API operation for Amazon Elastic Kubernetes Service.
2602//
2603// Lists the Amazon EKS managed node groups associated with the specified cluster
2604// in your Amazon Web Services account in the specified Region. Self-managed
2605// node groups are not listed.
2606//
2607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2608// with awserr.Error's Code and Message methods to get detailed information about
2609// the error.
2610//
2611// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
2612// API operation ListNodegroups for usage and error information.
2613//
2614// Returned Error Types:
2615//   * InvalidParameterException
2616//   The specified parameter is invalid. Review the available parameters for the
2617//   API request.
2618//
2619//   * ClientException
2620//   These errors are usually caused by a client action. Actions can include using
2621//   an action or resource on behalf of a user that doesn't have permissions to
2622//   use the action or resource or specifying an identifier that is not valid.
2623//
2624//   * ServerException
2625//   These errors are usually caused by a server-side issue.
2626//
2627//   * ServiceUnavailableException
2628//   The service is unavailable. Back off and retry the operation.
2629//
2630//   * ResourceNotFoundException
2631//   The specified resource could not be found. You can view your available clusters
2632//   with ListClusters. You can view your available managed node groups with ListNodegroups.
2633//   Amazon EKS clusters and node groups are Region-specific.
2634//
2635// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups
2636func (c *EKS) ListNodegroups(input *ListNodegroupsInput) (*ListNodegroupsOutput, error) {
2637	req, out := c.ListNodegroupsRequest(input)
2638	return out, req.Send()
2639}
2640
2641// ListNodegroupsWithContext is the same as ListNodegroups with the addition of
2642// the ability to pass a context and additional request options.
2643//
2644// See ListNodegroups for details on how to use this API operation.
2645//
2646// The context must be non-nil and will be used for request cancellation. If
2647// the context is nil a panic will occur. In the future the SDK may create
2648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2649// for more information on using Contexts.
2650func (c *EKS) ListNodegroupsWithContext(ctx aws.Context, input *ListNodegroupsInput, opts ...request.Option) (*ListNodegroupsOutput, error) {
2651	req, out := c.ListNodegroupsRequest(input)
2652	req.SetContext(ctx)
2653	req.ApplyOptions(opts...)
2654	return out, req.Send()
2655}
2656
2657// ListNodegroupsPages iterates over the pages of a ListNodegroups operation,
2658// calling the "fn" function with the response data for each page. To stop
2659// iterating, return false from the fn function.
2660//
2661// See ListNodegroups method for more information on how to use this operation.
2662//
2663// Note: This operation can generate multiple requests to a service.
2664//
2665//    // Example iterating over at most 3 pages of a ListNodegroups operation.
2666//    pageNum := 0
2667//    err := client.ListNodegroupsPages(params,
2668//        func(page *eks.ListNodegroupsOutput, lastPage bool) bool {
2669//            pageNum++
2670//            fmt.Println(page)
2671//            return pageNum <= 3
2672//        })
2673//
2674func (c *EKS) ListNodegroupsPages(input *ListNodegroupsInput, fn func(*ListNodegroupsOutput, bool) bool) error {
2675	return c.ListNodegroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2676}
2677
2678// ListNodegroupsPagesWithContext same as ListNodegroupsPages except
2679// it takes a Context and allows setting request options on the pages.
2680//
2681// The context must be non-nil and will be used for request cancellation. If
2682// the context is nil a panic will occur. In the future the SDK may create
2683// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2684// for more information on using Contexts.
2685func (c *EKS) ListNodegroupsPagesWithContext(ctx aws.Context, input *ListNodegroupsInput, fn func(*ListNodegroupsOutput, bool) bool, opts ...request.Option) error {
2686	p := request.Pagination{
2687		NewRequest: func() (*request.Request, error) {
2688			var inCpy *ListNodegroupsInput
2689			if input != nil {
2690				tmp := *input
2691				inCpy = &tmp
2692			}
2693			req, _ := c.ListNodegroupsRequest(inCpy)
2694			req.SetContext(ctx)
2695			req.ApplyOptions(opts...)
2696			return req, nil
2697		},
2698	}
2699
2700	for p.Next() {
2701		if !fn(p.Page().(*ListNodegroupsOutput), !p.HasNextPage()) {
2702			break
2703		}
2704	}
2705
2706	return p.Err()
2707}
2708
2709const opListTagsForResource = "ListTagsForResource"
2710
2711// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2712// client's request for the ListTagsForResource operation. The "output" return
2713// value will be populated with the request's response once the request completes
2714// successfully.
2715//
2716// Use "Send" method on the returned Request to send the API call to the service.
2717// the "output" return value is not valid until after Send returns without error.
2718//
2719// See ListTagsForResource for more information on using the ListTagsForResource
2720// API call, and error handling.
2721//
2722// This method is useful when you want to inject custom logic or configuration
2723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2724//
2725//
2726//    // Example sending a request using the ListTagsForResourceRequest method.
2727//    req, resp := client.ListTagsForResourceRequest(params)
2728//
2729//    err := req.Send()
2730//    if err == nil { // resp is now filled
2731//        fmt.Println(resp)
2732//    }
2733//
2734// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource
2735func (c *EKS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2736	op := &request.Operation{
2737		Name:       opListTagsForResource,
2738		HTTPMethod: "GET",
2739		HTTPPath:   "/tags/{resourceArn}",
2740	}
2741
2742	if input == nil {
2743		input = &ListTagsForResourceInput{}
2744	}
2745
2746	output = &ListTagsForResourceOutput{}
2747	req = c.newRequest(op, input, output)
2748	return
2749}
2750
2751// ListTagsForResource API operation for Amazon Elastic Kubernetes Service.
2752//
2753// List the tags for an Amazon EKS resource.
2754//
2755// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2756// with awserr.Error's Code and Message methods to get detailed information about
2757// the error.
2758//
2759// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
2760// API operation ListTagsForResource for usage and error information.
2761//
2762// Returned Error Types:
2763//   * BadRequestException
2764//   This exception is thrown if the request contains a semantic error. The precise
2765//   meaning will depend on the API, and will be documented in the error message.
2766//
2767//   * NotFoundException
2768//   A service resource associated with the request could not be found. Clients
2769//   should not retry such requests.
2770//
2771// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource
2772func (c *EKS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2773	req, out := c.ListTagsForResourceRequest(input)
2774	return out, req.Send()
2775}
2776
2777// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2778// the ability to pass a context and additional request options.
2779//
2780// See ListTagsForResource for details on how to use this API operation.
2781//
2782// The context must be non-nil and will be used for request cancellation. If
2783// the context is nil a panic will occur. In the future the SDK may create
2784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2785// for more information on using Contexts.
2786func (c *EKS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2787	req, out := c.ListTagsForResourceRequest(input)
2788	req.SetContext(ctx)
2789	req.ApplyOptions(opts...)
2790	return out, req.Send()
2791}
2792
2793const opListUpdates = "ListUpdates"
2794
2795// ListUpdatesRequest generates a "aws/request.Request" representing the
2796// client's request for the ListUpdates operation. The "output" return
2797// value will be populated with the request's response once the request completes
2798// successfully.
2799//
2800// Use "Send" method on the returned Request to send the API call to the service.
2801// the "output" return value is not valid until after Send returns without error.
2802//
2803// See ListUpdates for more information on using the ListUpdates
2804// API call, and error handling.
2805//
2806// This method is useful when you want to inject custom logic or configuration
2807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2808//
2809//
2810//    // Example sending a request using the ListUpdatesRequest method.
2811//    req, resp := client.ListUpdatesRequest(params)
2812//
2813//    err := req.Send()
2814//    if err == nil { // resp is now filled
2815//        fmt.Println(resp)
2816//    }
2817//
2818// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates
2819func (c *EKS) ListUpdatesRequest(input *ListUpdatesInput) (req *request.Request, output *ListUpdatesOutput) {
2820	op := &request.Operation{
2821		Name:       opListUpdates,
2822		HTTPMethod: "GET",
2823		HTTPPath:   "/clusters/{name}/updates",
2824		Paginator: &request.Paginator{
2825			InputTokens:     []string{"nextToken"},
2826			OutputTokens:    []string{"nextToken"},
2827			LimitToken:      "maxResults",
2828			TruncationToken: "",
2829		},
2830	}
2831
2832	if input == nil {
2833		input = &ListUpdatesInput{}
2834	}
2835
2836	output = &ListUpdatesOutput{}
2837	req = c.newRequest(op, input, output)
2838	return
2839}
2840
2841// ListUpdates API operation for Amazon Elastic Kubernetes Service.
2842//
2843// Lists the updates associated with an Amazon EKS cluster or managed node group
2844// in your Amazon Web Services account, in the specified Region.
2845//
2846// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2847// with awserr.Error's Code and Message methods to get detailed information about
2848// the error.
2849//
2850// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
2851// API operation ListUpdates for usage and error information.
2852//
2853// Returned Error Types:
2854//   * InvalidParameterException
2855//   The specified parameter is invalid. Review the available parameters for the
2856//   API request.
2857//
2858//   * ClientException
2859//   These errors are usually caused by a client action. Actions can include using
2860//   an action or resource on behalf of a user that doesn't have permissions to
2861//   use the action or resource or specifying an identifier that is not valid.
2862//
2863//   * ServerException
2864//   These errors are usually caused by a server-side issue.
2865//
2866//   * ResourceNotFoundException
2867//   The specified resource could not be found. You can view your available clusters
2868//   with ListClusters. You can view your available managed node groups with ListNodegroups.
2869//   Amazon EKS clusters and node groups are Region-specific.
2870//
2871// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates
2872func (c *EKS) ListUpdates(input *ListUpdatesInput) (*ListUpdatesOutput, error) {
2873	req, out := c.ListUpdatesRequest(input)
2874	return out, req.Send()
2875}
2876
2877// ListUpdatesWithContext is the same as ListUpdates with the addition of
2878// the ability to pass a context and additional request options.
2879//
2880// See ListUpdates for details on how to use this API operation.
2881//
2882// The context must be non-nil and will be used for request cancellation. If
2883// the context is nil a panic will occur. In the future the SDK may create
2884// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2885// for more information on using Contexts.
2886func (c *EKS) ListUpdatesWithContext(ctx aws.Context, input *ListUpdatesInput, opts ...request.Option) (*ListUpdatesOutput, error) {
2887	req, out := c.ListUpdatesRequest(input)
2888	req.SetContext(ctx)
2889	req.ApplyOptions(opts...)
2890	return out, req.Send()
2891}
2892
2893// ListUpdatesPages iterates over the pages of a ListUpdates operation,
2894// calling the "fn" function with the response data for each page. To stop
2895// iterating, return false from the fn function.
2896//
2897// See ListUpdates method for more information on how to use this operation.
2898//
2899// Note: This operation can generate multiple requests to a service.
2900//
2901//    // Example iterating over at most 3 pages of a ListUpdates operation.
2902//    pageNum := 0
2903//    err := client.ListUpdatesPages(params,
2904//        func(page *eks.ListUpdatesOutput, lastPage bool) bool {
2905//            pageNum++
2906//            fmt.Println(page)
2907//            return pageNum <= 3
2908//        })
2909//
2910func (c *EKS) ListUpdatesPages(input *ListUpdatesInput, fn func(*ListUpdatesOutput, bool) bool) error {
2911	return c.ListUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
2912}
2913
2914// ListUpdatesPagesWithContext same as ListUpdatesPages except
2915// it takes a Context and allows setting request options on the pages.
2916//
2917// The context must be non-nil and will be used for request cancellation. If
2918// the context is nil a panic will occur. In the future the SDK may create
2919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2920// for more information on using Contexts.
2921func (c *EKS) ListUpdatesPagesWithContext(ctx aws.Context, input *ListUpdatesInput, fn func(*ListUpdatesOutput, bool) bool, opts ...request.Option) error {
2922	p := request.Pagination{
2923		NewRequest: func() (*request.Request, error) {
2924			var inCpy *ListUpdatesInput
2925			if input != nil {
2926				tmp := *input
2927				inCpy = &tmp
2928			}
2929			req, _ := c.ListUpdatesRequest(inCpy)
2930			req.SetContext(ctx)
2931			req.ApplyOptions(opts...)
2932			return req, nil
2933		},
2934	}
2935
2936	for p.Next() {
2937		if !fn(p.Page().(*ListUpdatesOutput), !p.HasNextPage()) {
2938			break
2939		}
2940	}
2941
2942	return p.Err()
2943}
2944
2945const opTagResource = "TagResource"
2946
2947// TagResourceRequest generates a "aws/request.Request" representing the
2948// client's request for the TagResource operation. The "output" return
2949// value will be populated with the request's response once the request completes
2950// successfully.
2951//
2952// Use "Send" method on the returned Request to send the API call to the service.
2953// the "output" return value is not valid until after Send returns without error.
2954//
2955// See TagResource for more information on using the TagResource
2956// API call, and error handling.
2957//
2958// This method is useful when you want to inject custom logic or configuration
2959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2960//
2961//
2962//    // Example sending a request using the TagResourceRequest method.
2963//    req, resp := client.TagResourceRequest(params)
2964//
2965//    err := req.Send()
2966//    if err == nil { // resp is now filled
2967//        fmt.Println(resp)
2968//    }
2969//
2970// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource
2971func (c *EKS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2972	op := &request.Operation{
2973		Name:       opTagResource,
2974		HTTPMethod: "POST",
2975		HTTPPath:   "/tags/{resourceArn}",
2976	}
2977
2978	if input == nil {
2979		input = &TagResourceInput{}
2980	}
2981
2982	output = &TagResourceOutput{}
2983	req = c.newRequest(op, input, output)
2984	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2985	return
2986}
2987
2988// TagResource API operation for Amazon Elastic Kubernetes Service.
2989//
2990// Associates the specified tags to a resource with the specified resourceArn.
2991// If existing tags on a resource are not specified in the request parameters,
2992// they are not changed. When a resource is deleted, the tags associated with
2993// that resource are deleted as well. Tags that you create for Amazon EKS resources
2994// do not propagate to any other resources associated with the cluster. For
2995// example, if you tag a cluster with this operation, that tag does not automatically
2996// propagate to the subnets and nodes associated with the cluster.
2997//
2998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2999// with awserr.Error's Code and Message methods to get detailed information about
3000// the error.
3001//
3002// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3003// API operation TagResource for usage and error information.
3004//
3005// Returned Error Types:
3006//   * BadRequestException
3007//   This exception is thrown if the request contains a semantic error. The precise
3008//   meaning will depend on the API, and will be documented in the error message.
3009//
3010//   * NotFoundException
3011//   A service resource associated with the request could not be found. Clients
3012//   should not retry such requests.
3013//
3014// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource
3015func (c *EKS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3016	req, out := c.TagResourceRequest(input)
3017	return out, req.Send()
3018}
3019
3020// TagResourceWithContext is the same as TagResource with the addition of
3021// the ability to pass a context and additional request options.
3022//
3023// See TagResource for details on how to use this API operation.
3024//
3025// The context must be non-nil and will be used for request cancellation. If
3026// the context is nil a panic will occur. In the future the SDK may create
3027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3028// for more information on using Contexts.
3029func (c *EKS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3030	req, out := c.TagResourceRequest(input)
3031	req.SetContext(ctx)
3032	req.ApplyOptions(opts...)
3033	return out, req.Send()
3034}
3035
3036const opUntagResource = "UntagResource"
3037
3038// UntagResourceRequest generates a "aws/request.Request" representing the
3039// client's request for the UntagResource operation. The "output" return
3040// value will be populated with the request's response once the request completes
3041// successfully.
3042//
3043// Use "Send" method on the returned Request to send the API call to the service.
3044// the "output" return value is not valid until after Send returns without error.
3045//
3046// See UntagResource for more information on using the UntagResource
3047// API call, and error handling.
3048//
3049// This method is useful when you want to inject custom logic or configuration
3050// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3051//
3052//
3053//    // Example sending a request using the UntagResourceRequest method.
3054//    req, resp := client.UntagResourceRequest(params)
3055//
3056//    err := req.Send()
3057//    if err == nil { // resp is now filled
3058//        fmt.Println(resp)
3059//    }
3060//
3061// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource
3062func (c *EKS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3063	op := &request.Operation{
3064		Name:       opUntagResource,
3065		HTTPMethod: "DELETE",
3066		HTTPPath:   "/tags/{resourceArn}",
3067	}
3068
3069	if input == nil {
3070		input = &UntagResourceInput{}
3071	}
3072
3073	output = &UntagResourceOutput{}
3074	req = c.newRequest(op, input, output)
3075	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3076	return
3077}
3078
3079// UntagResource API operation for Amazon Elastic Kubernetes Service.
3080//
3081// Deletes specified tags from a resource.
3082//
3083// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3084// with awserr.Error's Code and Message methods to get detailed information about
3085// the error.
3086//
3087// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3088// API operation UntagResource for usage and error information.
3089//
3090// Returned Error Types:
3091//   * BadRequestException
3092//   This exception is thrown if the request contains a semantic error. The precise
3093//   meaning will depend on the API, and will be documented in the error message.
3094//
3095//   * NotFoundException
3096//   A service resource associated with the request could not be found. Clients
3097//   should not retry such requests.
3098//
3099// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource
3100func (c *EKS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3101	req, out := c.UntagResourceRequest(input)
3102	return out, req.Send()
3103}
3104
3105// UntagResourceWithContext is the same as UntagResource with the addition of
3106// the ability to pass a context and additional request options.
3107//
3108// See UntagResource for details on how to use this API operation.
3109//
3110// The context must be non-nil and will be used for request cancellation. If
3111// the context is nil a panic will occur. In the future the SDK may create
3112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3113// for more information on using Contexts.
3114func (c *EKS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3115	req, out := c.UntagResourceRequest(input)
3116	req.SetContext(ctx)
3117	req.ApplyOptions(opts...)
3118	return out, req.Send()
3119}
3120
3121const opUpdateAddon = "UpdateAddon"
3122
3123// UpdateAddonRequest generates a "aws/request.Request" representing the
3124// client's request for the UpdateAddon operation. The "output" return
3125// value will be populated with the request's response once the request completes
3126// successfully.
3127//
3128// Use "Send" method on the returned Request to send the API call to the service.
3129// the "output" return value is not valid until after Send returns without error.
3130//
3131// See UpdateAddon for more information on using the UpdateAddon
3132// API call, and error handling.
3133//
3134// This method is useful when you want to inject custom logic or configuration
3135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3136//
3137//
3138//    // Example sending a request using the UpdateAddonRequest method.
3139//    req, resp := client.UpdateAddonRequest(params)
3140//
3141//    err := req.Send()
3142//    if err == nil { // resp is now filled
3143//        fmt.Println(resp)
3144//    }
3145//
3146// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateAddon
3147func (c *EKS) UpdateAddonRequest(input *UpdateAddonInput) (req *request.Request, output *UpdateAddonOutput) {
3148	op := &request.Operation{
3149		Name:       opUpdateAddon,
3150		HTTPMethod: "POST",
3151		HTTPPath:   "/clusters/{name}/addons/{addonName}/update",
3152	}
3153
3154	if input == nil {
3155		input = &UpdateAddonInput{}
3156	}
3157
3158	output = &UpdateAddonOutput{}
3159	req = c.newRequest(op, input, output)
3160	return
3161}
3162
3163// UpdateAddon API operation for Amazon Elastic Kubernetes Service.
3164//
3165// Updates an Amazon EKS add-on.
3166//
3167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3168// with awserr.Error's Code and Message methods to get detailed information about
3169// the error.
3170//
3171// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3172// API operation UpdateAddon for usage and error information.
3173//
3174// Returned Error Types:
3175//   * InvalidParameterException
3176//   The specified parameter is invalid. Review the available parameters for the
3177//   API request.
3178//
3179//   * InvalidRequestException
3180//   The request is invalid given the state of the cluster. Check the state of
3181//   the cluster and the associated operations.
3182//
3183//   * ResourceNotFoundException
3184//   The specified resource could not be found. You can view your available clusters
3185//   with ListClusters. You can view your available managed node groups with ListNodegroups.
3186//   Amazon EKS clusters and node groups are Region-specific.
3187//
3188//   * ResourceInUseException
3189//   The specified resource is in use.
3190//
3191//   * ClientException
3192//   These errors are usually caused by a client action. Actions can include using
3193//   an action or resource on behalf of a user that doesn't have permissions to
3194//   use the action or resource or specifying an identifier that is not valid.
3195//
3196//   * ServerException
3197//   These errors are usually caused by a server-side issue.
3198//
3199// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateAddon
3200func (c *EKS) UpdateAddon(input *UpdateAddonInput) (*UpdateAddonOutput, error) {
3201	req, out := c.UpdateAddonRequest(input)
3202	return out, req.Send()
3203}
3204
3205// UpdateAddonWithContext is the same as UpdateAddon with the addition of
3206// the ability to pass a context and additional request options.
3207//
3208// See UpdateAddon for details on how to use this API operation.
3209//
3210// The context must be non-nil and will be used for request cancellation. If
3211// the context is nil a panic will occur. In the future the SDK may create
3212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3213// for more information on using Contexts.
3214func (c *EKS) UpdateAddonWithContext(ctx aws.Context, input *UpdateAddonInput, opts ...request.Option) (*UpdateAddonOutput, error) {
3215	req, out := c.UpdateAddonRequest(input)
3216	req.SetContext(ctx)
3217	req.ApplyOptions(opts...)
3218	return out, req.Send()
3219}
3220
3221const opUpdateClusterConfig = "UpdateClusterConfig"
3222
3223// UpdateClusterConfigRequest generates a "aws/request.Request" representing the
3224// client's request for the UpdateClusterConfig operation. The "output" return
3225// value will be populated with the request's response once the request completes
3226// successfully.
3227//
3228// Use "Send" method on the returned Request to send the API call to the service.
3229// the "output" return value is not valid until after Send returns without error.
3230//
3231// See UpdateClusterConfig for more information on using the UpdateClusterConfig
3232// API call, and error handling.
3233//
3234// This method is useful when you want to inject custom logic or configuration
3235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3236//
3237//
3238//    // Example sending a request using the UpdateClusterConfigRequest method.
3239//    req, resp := client.UpdateClusterConfigRequest(params)
3240//
3241//    err := req.Send()
3242//    if err == nil { // resp is now filled
3243//        fmt.Println(resp)
3244//    }
3245//
3246// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig
3247func (c *EKS) UpdateClusterConfigRequest(input *UpdateClusterConfigInput) (req *request.Request, output *UpdateClusterConfigOutput) {
3248	op := &request.Operation{
3249		Name:       opUpdateClusterConfig,
3250		HTTPMethod: "POST",
3251		HTTPPath:   "/clusters/{name}/update-config",
3252	}
3253
3254	if input == nil {
3255		input = &UpdateClusterConfigInput{}
3256	}
3257
3258	output = &UpdateClusterConfigOutput{}
3259	req = c.newRequest(op, input, output)
3260	return
3261}
3262
3263// UpdateClusterConfig API operation for Amazon Elastic Kubernetes Service.
3264//
3265// Updates an Amazon EKS cluster configuration. Your cluster continues to function
3266// during the update. The response output includes an update ID that you can
3267// use to track the status of your cluster update with the DescribeUpdate API
3268// operation.
3269//
3270// You can use this API operation to enable or disable exporting the Kubernetes
3271// control plane logs for your cluster to CloudWatch Logs. By default, cluster
3272// control plane logs aren't exported to CloudWatch Logs. For more information,
3273// see Amazon EKS Cluster Control Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
3274// in the Amazon EKS User Guide .
3275//
3276// CloudWatch Logs ingestion, archive storage, and data scanning rates apply
3277// to exported control plane logs. For more information, see CloudWatch Pricing
3278// (http://aws.amazon.com/cloudwatch/pricing/).
3279//
3280// You can also use this API operation to enable or disable public and private
3281// access to your cluster's Kubernetes API server endpoint. By default, public
3282// access is enabled, and private access is disabled. For more information,
3283// see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
3284// in the Amazon EKS User Guide .
3285//
3286// You can't update the subnets or security group IDs for an existing cluster.
3287//
3288// Cluster updates are asynchronous, and they should finish within a few minutes.
3289// During an update, the cluster status moves to UPDATING (this status transition
3290// is eventually consistent). When the update is complete (either Failed or
3291// Successful), the cluster status moves to Active.
3292//
3293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3294// with awserr.Error's Code and Message methods to get detailed information about
3295// the error.
3296//
3297// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3298// API operation UpdateClusterConfig for usage and error information.
3299//
3300// Returned Error Types:
3301//   * InvalidParameterException
3302//   The specified parameter is invalid. Review the available parameters for the
3303//   API request.
3304//
3305//   * ClientException
3306//   These errors are usually caused by a client action. Actions can include using
3307//   an action or resource on behalf of a user that doesn't have permissions to
3308//   use the action or resource or specifying an identifier that is not valid.
3309//
3310//   * ServerException
3311//   These errors are usually caused by a server-side issue.
3312//
3313//   * ResourceInUseException
3314//   The specified resource is in use.
3315//
3316//   * ResourceNotFoundException
3317//   The specified resource could not be found. You can view your available clusters
3318//   with ListClusters. You can view your available managed node groups with ListNodegroups.
3319//   Amazon EKS clusters and node groups are Region-specific.
3320//
3321//   * InvalidRequestException
3322//   The request is invalid given the state of the cluster. Check the state of
3323//   the cluster and the associated operations.
3324//
3325// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig
3326func (c *EKS) UpdateClusterConfig(input *UpdateClusterConfigInput) (*UpdateClusterConfigOutput, error) {
3327	req, out := c.UpdateClusterConfigRequest(input)
3328	return out, req.Send()
3329}
3330
3331// UpdateClusterConfigWithContext is the same as UpdateClusterConfig with the addition of
3332// the ability to pass a context and additional request options.
3333//
3334// See UpdateClusterConfig for details on how to use this API operation.
3335//
3336// The context must be non-nil and will be used for request cancellation. If
3337// the context is nil a panic will occur. In the future the SDK may create
3338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3339// for more information on using Contexts.
3340func (c *EKS) UpdateClusterConfigWithContext(ctx aws.Context, input *UpdateClusterConfigInput, opts ...request.Option) (*UpdateClusterConfigOutput, error) {
3341	req, out := c.UpdateClusterConfigRequest(input)
3342	req.SetContext(ctx)
3343	req.ApplyOptions(opts...)
3344	return out, req.Send()
3345}
3346
3347const opUpdateClusterVersion = "UpdateClusterVersion"
3348
3349// UpdateClusterVersionRequest generates a "aws/request.Request" representing the
3350// client's request for the UpdateClusterVersion operation. The "output" return
3351// value will be populated with the request's response once the request completes
3352// successfully.
3353//
3354// Use "Send" method on the returned Request to send the API call to the service.
3355// the "output" return value is not valid until after Send returns without error.
3356//
3357// See UpdateClusterVersion for more information on using the UpdateClusterVersion
3358// API call, and error handling.
3359//
3360// This method is useful when you want to inject custom logic or configuration
3361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3362//
3363//
3364//    // Example sending a request using the UpdateClusterVersionRequest method.
3365//    req, resp := client.UpdateClusterVersionRequest(params)
3366//
3367//    err := req.Send()
3368//    if err == nil { // resp is now filled
3369//        fmt.Println(resp)
3370//    }
3371//
3372// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion
3373func (c *EKS) UpdateClusterVersionRequest(input *UpdateClusterVersionInput) (req *request.Request, output *UpdateClusterVersionOutput) {
3374	op := &request.Operation{
3375		Name:       opUpdateClusterVersion,
3376		HTTPMethod: "POST",
3377		HTTPPath:   "/clusters/{name}/updates",
3378	}
3379
3380	if input == nil {
3381		input = &UpdateClusterVersionInput{}
3382	}
3383
3384	output = &UpdateClusterVersionOutput{}
3385	req = c.newRequest(op, input, output)
3386	return
3387}
3388
3389// UpdateClusterVersion API operation for Amazon Elastic Kubernetes Service.
3390//
3391// Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster
3392// continues to function during the update. The response output includes an
3393// update ID that you can use to track the status of your cluster update with
3394// the DescribeUpdate API operation.
3395//
3396// Cluster updates are asynchronous, and they should finish within a few minutes.
3397// During an update, the cluster status moves to UPDATING (this status transition
3398// is eventually consistent). When the update is complete (either Failed or
3399// Successful), the cluster status moves to Active.
3400//
3401// If your cluster has managed node groups attached to it, all of your node
3402// groups’ Kubernetes versions must match the cluster’s Kubernetes version
3403// in order to update the cluster to a new Kubernetes version.
3404//
3405// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3406// with awserr.Error's Code and Message methods to get detailed information about
3407// the error.
3408//
3409// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3410// API operation UpdateClusterVersion for usage and error information.
3411//
3412// Returned Error Types:
3413//   * InvalidParameterException
3414//   The specified parameter is invalid. Review the available parameters for the
3415//   API request.
3416//
3417//   * ClientException
3418//   These errors are usually caused by a client action. Actions can include using
3419//   an action or resource on behalf of a user that doesn't have permissions to
3420//   use the action or resource or specifying an identifier that is not valid.
3421//
3422//   * ServerException
3423//   These errors are usually caused by a server-side issue.
3424//
3425//   * ResourceInUseException
3426//   The specified resource is in use.
3427//
3428//   * ResourceNotFoundException
3429//   The specified resource could not be found. You can view your available clusters
3430//   with ListClusters. You can view your available managed node groups with ListNodegroups.
3431//   Amazon EKS clusters and node groups are Region-specific.
3432//
3433//   * InvalidRequestException
3434//   The request is invalid given the state of the cluster. Check the state of
3435//   the cluster and the associated operations.
3436//
3437// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion
3438func (c *EKS) UpdateClusterVersion(input *UpdateClusterVersionInput) (*UpdateClusterVersionOutput, error) {
3439	req, out := c.UpdateClusterVersionRequest(input)
3440	return out, req.Send()
3441}
3442
3443// UpdateClusterVersionWithContext is the same as UpdateClusterVersion with the addition of
3444// the ability to pass a context and additional request options.
3445//
3446// See UpdateClusterVersion for details on how to use this API operation.
3447//
3448// The context must be non-nil and will be used for request cancellation. If
3449// the context is nil a panic will occur. In the future the SDK may create
3450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3451// for more information on using Contexts.
3452func (c *EKS) UpdateClusterVersionWithContext(ctx aws.Context, input *UpdateClusterVersionInput, opts ...request.Option) (*UpdateClusterVersionOutput, error) {
3453	req, out := c.UpdateClusterVersionRequest(input)
3454	req.SetContext(ctx)
3455	req.ApplyOptions(opts...)
3456	return out, req.Send()
3457}
3458
3459const opUpdateNodegroupConfig = "UpdateNodegroupConfig"
3460
3461// UpdateNodegroupConfigRequest generates a "aws/request.Request" representing the
3462// client's request for the UpdateNodegroupConfig operation. The "output" return
3463// value will be populated with the request's response once the request completes
3464// successfully.
3465//
3466// Use "Send" method on the returned Request to send the API call to the service.
3467// the "output" return value is not valid until after Send returns without error.
3468//
3469// See UpdateNodegroupConfig for more information on using the UpdateNodegroupConfig
3470// API call, and error handling.
3471//
3472// This method is useful when you want to inject custom logic or configuration
3473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3474//
3475//
3476//    // Example sending a request using the UpdateNodegroupConfigRequest method.
3477//    req, resp := client.UpdateNodegroupConfigRequest(params)
3478//
3479//    err := req.Send()
3480//    if err == nil { // resp is now filled
3481//        fmt.Println(resp)
3482//    }
3483//
3484// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig
3485func (c *EKS) UpdateNodegroupConfigRequest(input *UpdateNodegroupConfigInput) (req *request.Request, output *UpdateNodegroupConfigOutput) {
3486	op := &request.Operation{
3487		Name:       opUpdateNodegroupConfig,
3488		HTTPMethod: "POST",
3489		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}/update-config",
3490	}
3491
3492	if input == nil {
3493		input = &UpdateNodegroupConfigInput{}
3494	}
3495
3496	output = &UpdateNodegroupConfigOutput{}
3497	req = c.newRequest(op, input, output)
3498	return
3499}
3500
3501// UpdateNodegroupConfig API operation for Amazon Elastic Kubernetes Service.
3502//
3503// Updates an Amazon EKS managed node group configuration. Your node group continues
3504// to function during the update. The response output includes an update ID
3505// that you can use to track the status of your node group update with the DescribeUpdate
3506// API operation. Currently you can update the Kubernetes labels for a node
3507// group or the scaling configuration.
3508//
3509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3510// with awserr.Error's Code and Message methods to get detailed information about
3511// the error.
3512//
3513// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3514// API operation UpdateNodegroupConfig for usage and error information.
3515//
3516// Returned Error Types:
3517//   * InvalidParameterException
3518//   The specified parameter is invalid. Review the available parameters for the
3519//   API request.
3520//
3521//   * ClientException
3522//   These errors are usually caused by a client action. Actions can include using
3523//   an action or resource on behalf of a user that doesn't have permissions to
3524//   use the action or resource or specifying an identifier that is not valid.
3525//
3526//   * ServerException
3527//   These errors are usually caused by a server-side issue.
3528//
3529//   * ResourceInUseException
3530//   The specified resource is in use.
3531//
3532//   * ResourceNotFoundException
3533//   The specified resource could not be found. You can view your available clusters
3534//   with ListClusters. You can view your available managed node groups with ListNodegroups.
3535//   Amazon EKS clusters and node groups are Region-specific.
3536//
3537//   * InvalidRequestException
3538//   The request is invalid given the state of the cluster. Check the state of
3539//   the cluster and the associated operations.
3540//
3541// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig
3542func (c *EKS) UpdateNodegroupConfig(input *UpdateNodegroupConfigInput) (*UpdateNodegroupConfigOutput, error) {
3543	req, out := c.UpdateNodegroupConfigRequest(input)
3544	return out, req.Send()
3545}
3546
3547// UpdateNodegroupConfigWithContext is the same as UpdateNodegroupConfig with the addition of
3548// the ability to pass a context and additional request options.
3549//
3550// See UpdateNodegroupConfig for details on how to use this API operation.
3551//
3552// The context must be non-nil and will be used for request cancellation. If
3553// the context is nil a panic will occur. In the future the SDK may create
3554// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3555// for more information on using Contexts.
3556func (c *EKS) UpdateNodegroupConfigWithContext(ctx aws.Context, input *UpdateNodegroupConfigInput, opts ...request.Option) (*UpdateNodegroupConfigOutput, error) {
3557	req, out := c.UpdateNodegroupConfigRequest(input)
3558	req.SetContext(ctx)
3559	req.ApplyOptions(opts...)
3560	return out, req.Send()
3561}
3562
3563const opUpdateNodegroupVersion = "UpdateNodegroupVersion"
3564
3565// UpdateNodegroupVersionRequest generates a "aws/request.Request" representing the
3566// client's request for the UpdateNodegroupVersion operation. The "output" return
3567// value will be populated with the request's response once the request completes
3568// successfully.
3569//
3570// Use "Send" method on the returned Request to send the API call to the service.
3571// the "output" return value is not valid until after Send returns without error.
3572//
3573// See UpdateNodegroupVersion for more information on using the UpdateNodegroupVersion
3574// API call, and error handling.
3575//
3576// This method is useful when you want to inject custom logic or configuration
3577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3578//
3579//
3580//    // Example sending a request using the UpdateNodegroupVersionRequest method.
3581//    req, resp := client.UpdateNodegroupVersionRequest(params)
3582//
3583//    err := req.Send()
3584//    if err == nil { // resp is now filled
3585//        fmt.Println(resp)
3586//    }
3587//
3588// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion
3589func (c *EKS) UpdateNodegroupVersionRequest(input *UpdateNodegroupVersionInput) (req *request.Request, output *UpdateNodegroupVersionOutput) {
3590	op := &request.Operation{
3591		Name:       opUpdateNodegroupVersion,
3592		HTTPMethod: "POST",
3593		HTTPPath:   "/clusters/{name}/node-groups/{nodegroupName}/update-version",
3594	}
3595
3596	if input == nil {
3597		input = &UpdateNodegroupVersionInput{}
3598	}
3599
3600	output = &UpdateNodegroupVersionOutput{}
3601	req = c.newRequest(op, input, output)
3602	return
3603}
3604
3605// UpdateNodegroupVersion API operation for Amazon Elastic Kubernetes Service.
3606//
3607// Updates the Kubernetes version or AMI version of an Amazon EKS managed node
3608// group.
3609//
3610// You can update a node group using a launch template only if the node group
3611// was originally deployed with a launch template. If you need to update a custom
3612// AMI in a node group that was deployed with a launch template, then update
3613// your custom AMI, specify the new ID in a new version of the launch template,
3614// and then update the node group to the new version of the launch template.
3615//
3616// If you update without a launch template, then you can update to the latest
3617// available AMI version of a node group's current Kubernetes version by not
3618// specifying a Kubernetes version in the request. You can update to the latest
3619// AMI version of your cluster's current Kubernetes version by specifying your
3620// cluster's Kubernetes version in the request. For more information, see Amazon
3621// EKS optimized Amazon Linux 2 AMI versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)
3622// in the Amazon EKS User Guide.
3623//
3624// You cannot roll back a node group to an earlier Kubernetes version or AMI
3625// version.
3626//
3627// When a node in a managed node group is terminated due to a scaling action
3628// or update, the pods in that node are drained first. Amazon EKS attempts to
3629// drain the nodes gracefully and will fail if it is unable to do so. You can
3630// force the update if Amazon EKS is unable to drain the nodes as a result of
3631// a pod disruption budget issue.
3632//
3633// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3634// with awserr.Error's Code and Message methods to get detailed information about
3635// the error.
3636//
3637// See the AWS API reference guide for Amazon Elastic Kubernetes Service's
3638// API operation UpdateNodegroupVersion for usage and error information.
3639//
3640// Returned Error Types:
3641//   * InvalidParameterException
3642//   The specified parameter is invalid. Review the available parameters for the
3643//   API request.
3644//
3645//   * ClientException
3646//   These errors are usually caused by a client action. Actions can include using
3647//   an action or resource on behalf of a user that doesn't have permissions to
3648//   use the action or resource or specifying an identifier that is not valid.
3649//
3650//   * ServerException
3651//   These errors are usually caused by a server-side issue.
3652//
3653//   * ResourceInUseException
3654//   The specified resource is in use.
3655//
3656//   * ResourceNotFoundException
3657//   The specified resource could not be found. You can view your available clusters
3658//   with ListClusters. You can view your available managed node groups with ListNodegroups.
3659//   Amazon EKS clusters and node groups are Region-specific.
3660//
3661//   * InvalidRequestException
3662//   The request is invalid given the state of the cluster. Check the state of
3663//   the cluster and the associated operations.
3664//
3665// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion
3666func (c *EKS) UpdateNodegroupVersion(input *UpdateNodegroupVersionInput) (*UpdateNodegroupVersionOutput, error) {
3667	req, out := c.UpdateNodegroupVersionRequest(input)
3668	return out, req.Send()
3669}
3670
3671// UpdateNodegroupVersionWithContext is the same as UpdateNodegroupVersion with the addition of
3672// the ability to pass a context and additional request options.
3673//
3674// See UpdateNodegroupVersion for details on how to use this API operation.
3675//
3676// The context must be non-nil and will be used for request cancellation. If
3677// the context is nil a panic will occur. In the future the SDK may create
3678// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3679// for more information on using Contexts.
3680func (c *EKS) UpdateNodegroupVersionWithContext(ctx aws.Context, input *UpdateNodegroupVersionInput, opts ...request.Option) (*UpdateNodegroupVersionOutput, error) {
3681	req, out := c.UpdateNodegroupVersionRequest(input)
3682	req.SetContext(ctx)
3683	req.ApplyOptions(opts...)
3684	return out, req.Send()
3685}
3686
3687// An Amazon EKS add-on.
3688type Addon struct {
3689	_ struct{} `type:"structure"`
3690
3691	// The Amazon Resource Name (ARN) of the add-on.
3692	AddonArn *string `locationName:"addonArn" type:"string"`
3693
3694	// The name of the add-on.
3695	AddonName *string `locationName:"addonName" type:"string"`
3696
3697	// The version of the add-on.
3698	AddonVersion *string `locationName:"addonVersion" type:"string"`
3699
3700	// The name of the cluster.
3701	ClusterName *string `locationName:"clusterName" min:"1" type:"string"`
3702
3703	// The date and time that the add-on was created.
3704	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
3705
3706	// An object that represents the health of the add-on.
3707	Health *AddonHealth `locationName:"health" type:"structure"`
3708
3709	// The date and time that the add-on was last modified.
3710	ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"`
3711
3712	// The Amazon Resource Name (ARN) of the IAM role that is bound to the Kubernetes
3713	// service account used by the add-on.
3714	ServiceAccountRoleArn *string `locationName:"serviceAccountRoleArn" type:"string"`
3715
3716	// The status of the add-on.
3717	Status *string `locationName:"status" type:"string" enum:"AddonStatus"`
3718
3719	// The metadata that you apply to the add-on to assist with categorization and
3720	// organization. Each tag consists of a key and an optional value, both of which
3721	// you define. Add-on tags do not propagate to any other resources associated
3722	// with the cluster.
3723	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
3724}
3725
3726// String returns the string representation
3727func (s Addon) String() string {
3728	return awsutil.Prettify(s)
3729}
3730
3731// GoString returns the string representation
3732func (s Addon) GoString() string {
3733	return s.String()
3734}
3735
3736// SetAddonArn sets the AddonArn field's value.
3737func (s *Addon) SetAddonArn(v string) *Addon {
3738	s.AddonArn = &v
3739	return s
3740}
3741
3742// SetAddonName sets the AddonName field's value.
3743func (s *Addon) SetAddonName(v string) *Addon {
3744	s.AddonName = &v
3745	return s
3746}
3747
3748// SetAddonVersion sets the AddonVersion field's value.
3749func (s *Addon) SetAddonVersion(v string) *Addon {
3750	s.AddonVersion = &v
3751	return s
3752}
3753
3754// SetClusterName sets the ClusterName field's value.
3755func (s *Addon) SetClusterName(v string) *Addon {
3756	s.ClusterName = &v
3757	return s
3758}
3759
3760// SetCreatedAt sets the CreatedAt field's value.
3761func (s *Addon) SetCreatedAt(v time.Time) *Addon {
3762	s.CreatedAt = &v
3763	return s
3764}
3765
3766// SetHealth sets the Health field's value.
3767func (s *Addon) SetHealth(v *AddonHealth) *Addon {
3768	s.Health = v
3769	return s
3770}
3771
3772// SetModifiedAt sets the ModifiedAt field's value.
3773func (s *Addon) SetModifiedAt(v time.Time) *Addon {
3774	s.ModifiedAt = &v
3775	return s
3776}
3777
3778// SetServiceAccountRoleArn sets the ServiceAccountRoleArn field's value.
3779func (s *Addon) SetServiceAccountRoleArn(v string) *Addon {
3780	s.ServiceAccountRoleArn = &v
3781	return s
3782}
3783
3784// SetStatus sets the Status field's value.
3785func (s *Addon) SetStatus(v string) *Addon {
3786	s.Status = &v
3787	return s
3788}
3789
3790// SetTags sets the Tags field's value.
3791func (s *Addon) SetTags(v map[string]*string) *Addon {
3792	s.Tags = v
3793	return s
3794}
3795
3796// The health of the add-on.
3797type AddonHealth struct {
3798	_ struct{} `type:"structure"`
3799
3800	// An object that represents the add-on's health issues.
3801	Issues []*AddonIssue `locationName:"issues" type:"list"`
3802}
3803
3804// String returns the string representation
3805func (s AddonHealth) String() string {
3806	return awsutil.Prettify(s)
3807}
3808
3809// GoString returns the string representation
3810func (s AddonHealth) GoString() string {
3811	return s.String()
3812}
3813
3814// SetIssues sets the Issues field's value.
3815func (s *AddonHealth) SetIssues(v []*AddonIssue) *AddonHealth {
3816	s.Issues = v
3817	return s
3818}
3819
3820// Information about an add-on.
3821type AddonInfo struct {
3822	_ struct{} `type:"structure"`
3823
3824	// The name of the add-on.
3825	AddonName *string `locationName:"addonName" type:"string"`
3826
3827	// An object that represents information about available add-on versions and
3828	// compatible Kubernetes versions.
3829	AddonVersions []*AddonVersionInfo `locationName:"addonVersions" type:"list"`
3830
3831	// The type of the add-on.
3832	Type *string `locationName:"type" type:"string"`
3833}
3834
3835// String returns the string representation
3836func (s AddonInfo) String() string {
3837	return awsutil.Prettify(s)
3838}
3839
3840// GoString returns the string representation
3841func (s AddonInfo) GoString() string {
3842	return s.String()
3843}
3844
3845// SetAddonName sets the AddonName field's value.
3846func (s *AddonInfo) SetAddonName(v string) *AddonInfo {
3847	s.AddonName = &v
3848	return s
3849}
3850
3851// SetAddonVersions sets the AddonVersions field's value.
3852func (s *AddonInfo) SetAddonVersions(v []*AddonVersionInfo) *AddonInfo {
3853	s.AddonVersions = v
3854	return s
3855}
3856
3857// SetType sets the Type field's value.
3858func (s *AddonInfo) SetType(v string) *AddonInfo {
3859	s.Type = &v
3860	return s
3861}
3862
3863// An issue related to an add-on.
3864type AddonIssue struct {
3865	_ struct{} `type:"structure"`
3866
3867	// A code that describes the type of issue.
3868	Code *string `locationName:"code" type:"string" enum:"AddonIssueCode"`
3869
3870	// A message that provides details about the issue and what might cause it.
3871	Message *string `locationName:"message" type:"string"`
3872
3873	// The resource IDs of the issue.
3874	ResourceIds []*string `locationName:"resourceIds" type:"list"`
3875}
3876
3877// String returns the string representation
3878func (s AddonIssue) String() string {
3879	return awsutil.Prettify(s)
3880}
3881
3882// GoString returns the string representation
3883func (s AddonIssue) GoString() string {
3884	return s.String()
3885}
3886
3887// SetCode sets the Code field's value.
3888func (s *AddonIssue) SetCode(v string) *AddonIssue {
3889	s.Code = &v
3890	return s
3891}
3892
3893// SetMessage sets the Message field's value.
3894func (s *AddonIssue) SetMessage(v string) *AddonIssue {
3895	s.Message = &v
3896	return s
3897}
3898
3899// SetResourceIds sets the ResourceIds field's value.
3900func (s *AddonIssue) SetResourceIds(v []*string) *AddonIssue {
3901	s.ResourceIds = v
3902	return s
3903}
3904
3905// Information about an add-on version.
3906type AddonVersionInfo struct {
3907	_ struct{} `type:"structure"`
3908
3909	// The version of the add-on.
3910	AddonVersion *string `locationName:"addonVersion" type:"string"`
3911
3912	// The architectures that the version supports.
3913	Architecture []*string `locationName:"architecture" type:"list"`
3914
3915	// An object that represents the compatibilities of a version.
3916	Compatibilities []*Compatibility `locationName:"compatibilities" type:"list"`
3917}
3918
3919// String returns the string representation
3920func (s AddonVersionInfo) String() string {
3921	return awsutil.Prettify(s)
3922}
3923
3924// GoString returns the string representation
3925func (s AddonVersionInfo) GoString() string {
3926	return s.String()
3927}
3928
3929// SetAddonVersion sets the AddonVersion field's value.
3930func (s *AddonVersionInfo) SetAddonVersion(v string) *AddonVersionInfo {
3931	s.AddonVersion = &v
3932	return s
3933}
3934
3935// SetArchitecture sets the Architecture field's value.
3936func (s *AddonVersionInfo) SetArchitecture(v []*string) *AddonVersionInfo {
3937	s.Architecture = v
3938	return s
3939}
3940
3941// SetCompatibilities sets the Compatibilities field's value.
3942func (s *AddonVersionInfo) SetCompatibilities(v []*Compatibility) *AddonVersionInfo {
3943	s.Compatibilities = v
3944	return s
3945}
3946
3947type AssociateEncryptionConfigInput struct {
3948	_ struct{} `type:"structure"`
3949
3950	// The client request token you are using with the encryption configuration.
3951	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
3952
3953	// The name of the cluster that you are associating with encryption configuration.
3954	//
3955	// ClusterName is a required field
3956	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
3957
3958	// The configuration you are using for encryption.
3959	//
3960	// EncryptionConfig is a required field
3961	EncryptionConfig []*EncryptionConfig `locationName:"encryptionConfig" type:"list" required:"true"`
3962}
3963
3964// String returns the string representation
3965func (s AssociateEncryptionConfigInput) String() string {
3966	return awsutil.Prettify(s)
3967}
3968
3969// GoString returns the string representation
3970func (s AssociateEncryptionConfigInput) GoString() string {
3971	return s.String()
3972}
3973
3974// Validate inspects the fields of the type to determine if they are valid.
3975func (s *AssociateEncryptionConfigInput) Validate() error {
3976	invalidParams := request.ErrInvalidParams{Context: "AssociateEncryptionConfigInput"}
3977	if s.ClusterName == nil {
3978		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
3979	}
3980	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
3981		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
3982	}
3983	if s.EncryptionConfig == nil {
3984		invalidParams.Add(request.NewErrParamRequired("EncryptionConfig"))
3985	}
3986
3987	if invalidParams.Len() > 0 {
3988		return invalidParams
3989	}
3990	return nil
3991}
3992
3993// SetClientRequestToken sets the ClientRequestToken field's value.
3994func (s *AssociateEncryptionConfigInput) SetClientRequestToken(v string) *AssociateEncryptionConfigInput {
3995	s.ClientRequestToken = &v
3996	return s
3997}
3998
3999// SetClusterName sets the ClusterName field's value.
4000func (s *AssociateEncryptionConfigInput) SetClusterName(v string) *AssociateEncryptionConfigInput {
4001	s.ClusterName = &v
4002	return s
4003}
4004
4005// SetEncryptionConfig sets the EncryptionConfig field's value.
4006func (s *AssociateEncryptionConfigInput) SetEncryptionConfig(v []*EncryptionConfig) *AssociateEncryptionConfigInput {
4007	s.EncryptionConfig = v
4008	return s
4009}
4010
4011type AssociateEncryptionConfigOutput struct {
4012	_ struct{} `type:"structure"`
4013
4014	// An object representing an asynchronous update.
4015	Update *Update `locationName:"update" type:"structure"`
4016}
4017
4018// String returns the string representation
4019func (s AssociateEncryptionConfigOutput) String() string {
4020	return awsutil.Prettify(s)
4021}
4022
4023// GoString returns the string representation
4024func (s AssociateEncryptionConfigOutput) GoString() string {
4025	return s.String()
4026}
4027
4028// SetUpdate sets the Update field's value.
4029func (s *AssociateEncryptionConfigOutput) SetUpdate(v *Update) *AssociateEncryptionConfigOutput {
4030	s.Update = v
4031	return s
4032}
4033
4034type AssociateIdentityProviderConfigInput struct {
4035	_ struct{} `type:"structure"`
4036
4037	// Unique, case-sensitive identifier that you provide to ensure the idempotency
4038	// of the request.
4039	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
4040
4041	// The name of the cluster to associate the configuration to.
4042	//
4043	// ClusterName is a required field
4044	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
4045
4046	// An object that represents an OpenID Connect (OIDC) identity provider configuration.
4047	//
4048	// Oidc is a required field
4049	Oidc *OidcIdentityProviderConfigRequest `locationName:"oidc" type:"structure" required:"true"`
4050
4051	// The metadata to apply to the configuration to assist with categorization
4052	// and organization. Each tag consists of a key and an optional value, both
4053	// of which you define.
4054	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4055}
4056
4057// String returns the string representation
4058func (s AssociateIdentityProviderConfigInput) String() string {
4059	return awsutil.Prettify(s)
4060}
4061
4062// GoString returns the string representation
4063func (s AssociateIdentityProviderConfigInput) GoString() string {
4064	return s.String()
4065}
4066
4067// Validate inspects the fields of the type to determine if they are valid.
4068func (s *AssociateIdentityProviderConfigInput) Validate() error {
4069	invalidParams := request.ErrInvalidParams{Context: "AssociateIdentityProviderConfigInput"}
4070	if s.ClusterName == nil {
4071		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
4072	}
4073	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
4074		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
4075	}
4076	if s.Oidc == nil {
4077		invalidParams.Add(request.NewErrParamRequired("Oidc"))
4078	}
4079	if s.Tags != nil && len(s.Tags) < 1 {
4080		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4081	}
4082	if s.Oidc != nil {
4083		if err := s.Oidc.Validate(); err != nil {
4084			invalidParams.AddNested("Oidc", err.(request.ErrInvalidParams))
4085		}
4086	}
4087
4088	if invalidParams.Len() > 0 {
4089		return invalidParams
4090	}
4091	return nil
4092}
4093
4094// SetClientRequestToken sets the ClientRequestToken field's value.
4095func (s *AssociateIdentityProviderConfigInput) SetClientRequestToken(v string) *AssociateIdentityProviderConfigInput {
4096	s.ClientRequestToken = &v
4097	return s
4098}
4099
4100// SetClusterName sets the ClusterName field's value.
4101func (s *AssociateIdentityProviderConfigInput) SetClusterName(v string) *AssociateIdentityProviderConfigInput {
4102	s.ClusterName = &v
4103	return s
4104}
4105
4106// SetOidc sets the Oidc field's value.
4107func (s *AssociateIdentityProviderConfigInput) SetOidc(v *OidcIdentityProviderConfigRequest) *AssociateIdentityProviderConfigInput {
4108	s.Oidc = v
4109	return s
4110}
4111
4112// SetTags sets the Tags field's value.
4113func (s *AssociateIdentityProviderConfigInput) SetTags(v map[string]*string) *AssociateIdentityProviderConfigInput {
4114	s.Tags = v
4115	return s
4116}
4117
4118type AssociateIdentityProviderConfigOutput struct {
4119	_ struct{} `type:"structure"`
4120
4121	// The tags for the resource.
4122	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4123
4124	// An object representing an asynchronous update.
4125	Update *Update `locationName:"update" type:"structure"`
4126}
4127
4128// String returns the string representation
4129func (s AssociateIdentityProviderConfigOutput) String() string {
4130	return awsutil.Prettify(s)
4131}
4132
4133// GoString returns the string representation
4134func (s AssociateIdentityProviderConfigOutput) GoString() string {
4135	return s.String()
4136}
4137
4138// SetTags sets the Tags field's value.
4139func (s *AssociateIdentityProviderConfigOutput) SetTags(v map[string]*string) *AssociateIdentityProviderConfigOutput {
4140	s.Tags = v
4141	return s
4142}
4143
4144// SetUpdate sets the Update field's value.
4145func (s *AssociateIdentityProviderConfigOutput) SetUpdate(v *Update) *AssociateIdentityProviderConfigOutput {
4146	s.Update = v
4147	return s
4148}
4149
4150// An Auto Scaling group that is associated with an Amazon EKS managed node
4151// group.
4152type AutoScalingGroup struct {
4153	_ struct{} `type:"structure"`
4154
4155	// The name of the Auto Scaling group associated with an Amazon EKS managed
4156	// node group.
4157	Name *string `locationName:"name" type:"string"`
4158}
4159
4160// String returns the string representation
4161func (s AutoScalingGroup) String() string {
4162	return awsutil.Prettify(s)
4163}
4164
4165// GoString returns the string representation
4166func (s AutoScalingGroup) GoString() string {
4167	return s.String()
4168}
4169
4170// SetName sets the Name field's value.
4171func (s *AutoScalingGroup) SetName(v string) *AutoScalingGroup {
4172	s.Name = &v
4173	return s
4174}
4175
4176// This exception is thrown if the request contains a semantic error. The precise
4177// meaning will depend on the API, and will be documented in the error message.
4178type BadRequestException struct {
4179	_            struct{}                  `type:"structure"`
4180	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4181
4182	Message_ *string `locationName:"message" type:"string"`
4183}
4184
4185// String returns the string representation
4186func (s BadRequestException) String() string {
4187	return awsutil.Prettify(s)
4188}
4189
4190// GoString returns the string representation
4191func (s BadRequestException) GoString() string {
4192	return s.String()
4193}
4194
4195func newErrorBadRequestException(v protocol.ResponseMetadata) error {
4196	return &BadRequestException{
4197		RespMetadata: v,
4198	}
4199}
4200
4201// Code returns the exception type name.
4202func (s *BadRequestException) Code() string {
4203	return "BadRequestException"
4204}
4205
4206// Message returns the exception's message.
4207func (s *BadRequestException) Message() string {
4208	if s.Message_ != nil {
4209		return *s.Message_
4210	}
4211	return ""
4212}
4213
4214// OrigErr always returns nil, satisfies awserr.Error interface.
4215func (s *BadRequestException) OrigErr() error {
4216	return nil
4217}
4218
4219func (s *BadRequestException) Error() string {
4220	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4221}
4222
4223// Status code returns the HTTP status code for the request's response error.
4224func (s *BadRequestException) StatusCode() int {
4225	return s.RespMetadata.StatusCode
4226}
4227
4228// RequestID returns the service's response RequestID for request.
4229func (s *BadRequestException) RequestID() string {
4230	return s.RespMetadata.RequestID
4231}
4232
4233// An object representing the certificate-authority-data for your cluster.
4234type Certificate struct {
4235	_ struct{} `type:"structure"`
4236
4237	// The Base64-encoded certificate data required to communicate with your cluster.
4238	// Add this to the certificate-authority-data section of the kubeconfig file
4239	// for your cluster.
4240	Data *string `locationName:"data" type:"string"`
4241}
4242
4243// String returns the string representation
4244func (s Certificate) String() string {
4245	return awsutil.Prettify(s)
4246}
4247
4248// GoString returns the string representation
4249func (s Certificate) GoString() string {
4250	return s.String()
4251}
4252
4253// SetData sets the Data field's value.
4254func (s *Certificate) SetData(v string) *Certificate {
4255	s.Data = &v
4256	return s
4257}
4258
4259// These errors are usually caused by a client action. Actions can include using
4260// an action or resource on behalf of a user that doesn't have permissions to
4261// use the action or resource or specifying an identifier that is not valid.
4262type ClientException struct {
4263	_            struct{}                  `type:"structure"`
4264	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4265
4266	AddonName *string `locationName:"addonName" type:"string"`
4267
4268	// The Amazon EKS cluster associated with the exception.
4269	ClusterName *string `locationName:"clusterName" type:"string"`
4270
4271	Message_ *string `locationName:"message" type:"string"`
4272
4273	// The Amazon EKS managed node group associated with the exception.
4274	NodegroupName *string `locationName:"nodegroupName" type:"string"`
4275}
4276
4277// String returns the string representation
4278func (s ClientException) String() string {
4279	return awsutil.Prettify(s)
4280}
4281
4282// GoString returns the string representation
4283func (s ClientException) GoString() string {
4284	return s.String()
4285}
4286
4287func newErrorClientException(v protocol.ResponseMetadata) error {
4288	return &ClientException{
4289		RespMetadata: v,
4290	}
4291}
4292
4293// Code returns the exception type name.
4294func (s *ClientException) Code() string {
4295	return "ClientException"
4296}
4297
4298// Message returns the exception's message.
4299func (s *ClientException) Message() string {
4300	if s.Message_ != nil {
4301		return *s.Message_
4302	}
4303	return ""
4304}
4305
4306// OrigErr always returns nil, satisfies awserr.Error interface.
4307func (s *ClientException) OrigErr() error {
4308	return nil
4309}
4310
4311func (s *ClientException) Error() string {
4312	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4313}
4314
4315// Status code returns the HTTP status code for the request's response error.
4316func (s *ClientException) StatusCode() int {
4317	return s.RespMetadata.StatusCode
4318}
4319
4320// RequestID returns the service's response RequestID for request.
4321func (s *ClientException) RequestID() string {
4322	return s.RespMetadata.RequestID
4323}
4324
4325// An object representing an Amazon EKS cluster.
4326type Cluster struct {
4327	_ struct{} `type:"structure"`
4328
4329	// The Amazon Resource Name (ARN) of the cluster.
4330	Arn *string `locationName:"arn" type:"string"`
4331
4332	// The certificate-authority-data for your cluster.
4333	CertificateAuthority *Certificate `locationName:"certificateAuthority" type:"structure"`
4334
4335	// Unique, case-sensitive identifier that you provide to ensure the idempotency
4336	// of the request.
4337	ClientRequestToken *string `locationName:"clientRequestToken" type:"string"`
4338
4339	// The Unix epoch timestamp in seconds for when the cluster was created.
4340	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
4341
4342	// The encryption configuration for the cluster.
4343	EncryptionConfig []*EncryptionConfig `locationName:"encryptionConfig" type:"list"`
4344
4345	// The endpoint for your Kubernetes API server.
4346	Endpoint *string `locationName:"endpoint" type:"string"`
4347
4348	// The identity provider information for the cluster.
4349	Identity *Identity `locationName:"identity" type:"structure"`
4350
4351	// The Kubernetes network configuration for the cluster.
4352	KubernetesNetworkConfig *KubernetesNetworkConfigResponse `locationName:"kubernetesNetworkConfig" type:"structure"`
4353
4354	// The logging configuration for your cluster.
4355	Logging *Logging `locationName:"logging" type:"structure"`
4356
4357	// The name of the cluster.
4358	Name *string `locationName:"name" type:"string"`
4359
4360	// The platform version of your Amazon EKS cluster. For more information, see
4361	// Platform Versions (https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html)
4362	// in the Amazon EKS User Guide .
4363	PlatformVersion *string `locationName:"platformVersion" type:"string"`
4364
4365	// The VPC configuration used by the cluster control plane. Amazon EKS VPC resources
4366	// have specific requirements to work properly with Kubernetes. For more information,
4367	// see Cluster VPC Considerations (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)
4368	// and Cluster Security Group Considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
4369	// in the Amazon EKS User Guide.
4370	ResourcesVpcConfig *VpcConfigResponse `locationName:"resourcesVpcConfig" type:"structure"`
4371
4372	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
4373	// for the Kubernetes control plane to make calls to Amazon Web Services API
4374	// operations on your behalf.
4375	RoleArn *string `locationName:"roleArn" type:"string"`
4376
4377	// The current status of the cluster.
4378	Status *string `locationName:"status" type:"string" enum:"ClusterStatus"`
4379
4380	// The metadata that you apply to the cluster to assist with categorization
4381	// and organization. Each tag consists of a key and an optional value, both
4382	// of which you define. Cluster tags do not propagate to any other resources
4383	// associated with the cluster.
4384	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4385
4386	// The Kubernetes server version for the cluster.
4387	Version *string `locationName:"version" type:"string"`
4388}
4389
4390// String returns the string representation
4391func (s Cluster) String() string {
4392	return awsutil.Prettify(s)
4393}
4394
4395// GoString returns the string representation
4396func (s Cluster) GoString() string {
4397	return s.String()
4398}
4399
4400// SetArn sets the Arn field's value.
4401func (s *Cluster) SetArn(v string) *Cluster {
4402	s.Arn = &v
4403	return s
4404}
4405
4406// SetCertificateAuthority sets the CertificateAuthority field's value.
4407func (s *Cluster) SetCertificateAuthority(v *Certificate) *Cluster {
4408	s.CertificateAuthority = v
4409	return s
4410}
4411
4412// SetClientRequestToken sets the ClientRequestToken field's value.
4413func (s *Cluster) SetClientRequestToken(v string) *Cluster {
4414	s.ClientRequestToken = &v
4415	return s
4416}
4417
4418// SetCreatedAt sets the CreatedAt field's value.
4419func (s *Cluster) SetCreatedAt(v time.Time) *Cluster {
4420	s.CreatedAt = &v
4421	return s
4422}
4423
4424// SetEncryptionConfig sets the EncryptionConfig field's value.
4425func (s *Cluster) SetEncryptionConfig(v []*EncryptionConfig) *Cluster {
4426	s.EncryptionConfig = v
4427	return s
4428}
4429
4430// SetEndpoint sets the Endpoint field's value.
4431func (s *Cluster) SetEndpoint(v string) *Cluster {
4432	s.Endpoint = &v
4433	return s
4434}
4435
4436// SetIdentity sets the Identity field's value.
4437func (s *Cluster) SetIdentity(v *Identity) *Cluster {
4438	s.Identity = v
4439	return s
4440}
4441
4442// SetKubernetesNetworkConfig sets the KubernetesNetworkConfig field's value.
4443func (s *Cluster) SetKubernetesNetworkConfig(v *KubernetesNetworkConfigResponse) *Cluster {
4444	s.KubernetesNetworkConfig = v
4445	return s
4446}
4447
4448// SetLogging sets the Logging field's value.
4449func (s *Cluster) SetLogging(v *Logging) *Cluster {
4450	s.Logging = v
4451	return s
4452}
4453
4454// SetName sets the Name field's value.
4455func (s *Cluster) SetName(v string) *Cluster {
4456	s.Name = &v
4457	return s
4458}
4459
4460// SetPlatformVersion sets the PlatformVersion field's value.
4461func (s *Cluster) SetPlatformVersion(v string) *Cluster {
4462	s.PlatformVersion = &v
4463	return s
4464}
4465
4466// SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.
4467func (s *Cluster) SetResourcesVpcConfig(v *VpcConfigResponse) *Cluster {
4468	s.ResourcesVpcConfig = v
4469	return s
4470}
4471
4472// SetRoleArn sets the RoleArn field's value.
4473func (s *Cluster) SetRoleArn(v string) *Cluster {
4474	s.RoleArn = &v
4475	return s
4476}
4477
4478// SetStatus sets the Status field's value.
4479func (s *Cluster) SetStatus(v string) *Cluster {
4480	s.Status = &v
4481	return s
4482}
4483
4484// SetTags sets the Tags field's value.
4485func (s *Cluster) SetTags(v map[string]*string) *Cluster {
4486	s.Tags = v
4487	return s
4488}
4489
4490// SetVersion sets the Version field's value.
4491func (s *Cluster) SetVersion(v string) *Cluster {
4492	s.Version = &v
4493	return s
4494}
4495
4496// Compatibility information.
4497type Compatibility struct {
4498	_ struct{} `type:"structure"`
4499
4500	// The supported Kubernetes version of the cluster.
4501	ClusterVersion *string `locationName:"clusterVersion" type:"string"`
4502
4503	// The supported default version.
4504	DefaultVersion *bool `locationName:"defaultVersion" type:"boolean"`
4505
4506	// The supported compute platform.
4507	PlatformVersions []*string `locationName:"platformVersions" type:"list"`
4508}
4509
4510// String returns the string representation
4511func (s Compatibility) String() string {
4512	return awsutil.Prettify(s)
4513}
4514
4515// GoString returns the string representation
4516func (s Compatibility) GoString() string {
4517	return s.String()
4518}
4519
4520// SetClusterVersion sets the ClusterVersion field's value.
4521func (s *Compatibility) SetClusterVersion(v string) *Compatibility {
4522	s.ClusterVersion = &v
4523	return s
4524}
4525
4526// SetDefaultVersion sets the DefaultVersion field's value.
4527func (s *Compatibility) SetDefaultVersion(v bool) *Compatibility {
4528	s.DefaultVersion = &v
4529	return s
4530}
4531
4532// SetPlatformVersions sets the PlatformVersions field's value.
4533func (s *Compatibility) SetPlatformVersions(v []*string) *Compatibility {
4534	s.PlatformVersions = v
4535	return s
4536}
4537
4538type CreateAddonInput struct {
4539	_ struct{} `type:"structure"`
4540
4541	// The name of the add-on. The name must match one of the names returned by
4542	// DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html).
4543	//
4544	// AddonName is a required field
4545	AddonName *string `locationName:"addonName" type:"string" required:"true"`
4546
4547	// The version of the add-on. The version must match one of the versions returned
4548	// by DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html).
4549	AddonVersion *string `locationName:"addonVersion" type:"string"`
4550
4551	// A unique, case-sensitive identifier that you provide to ensure the idempotency
4552	// of the request.
4553	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
4554
4555	// The name of the cluster to create the add-on for.
4556	//
4557	// ClusterName is a required field
4558	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
4559
4560	// How to resolve parameter value conflicts when migrating an existing add-on
4561	// to an Amazon EKS add-on.
4562	ResolveConflicts *string `locationName:"resolveConflicts" type:"string" enum:"ResolveConflicts"`
4563
4564	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's
4565	// service account. The role must be assigned the IAM permissions required by
4566	// the add-on. If you don't specify an existing IAM role, then the add-on uses
4567	// the permissions assigned to the node IAM role. For more information, see
4568	// Amazon EKS node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html)
4569	// in the Amazon EKS User Guide.
4570	//
4571	// To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC)
4572	// provider created for your cluster. For more information, see Enabling IAM
4573	// roles for service accounts on your cluster (https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)
4574	// in the Amazon EKS User Guide.
4575	ServiceAccountRoleArn *string `locationName:"serviceAccountRoleArn" min:"1" type:"string"`
4576
4577	// The metadata to apply to the cluster to assist with categorization and organization.
4578	// Each tag consists of a key and an optional value, both of which you define.
4579	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4580}
4581
4582// String returns the string representation
4583func (s CreateAddonInput) String() string {
4584	return awsutil.Prettify(s)
4585}
4586
4587// GoString returns the string representation
4588func (s CreateAddonInput) GoString() string {
4589	return s.String()
4590}
4591
4592// Validate inspects the fields of the type to determine if they are valid.
4593func (s *CreateAddonInput) Validate() error {
4594	invalidParams := request.ErrInvalidParams{Context: "CreateAddonInput"}
4595	if s.AddonName == nil {
4596		invalidParams.Add(request.NewErrParamRequired("AddonName"))
4597	}
4598	if s.ClusterName == nil {
4599		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
4600	}
4601	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
4602		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
4603	}
4604	if s.ServiceAccountRoleArn != nil && len(*s.ServiceAccountRoleArn) < 1 {
4605		invalidParams.Add(request.NewErrParamMinLen("ServiceAccountRoleArn", 1))
4606	}
4607	if s.Tags != nil && len(s.Tags) < 1 {
4608		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4609	}
4610
4611	if invalidParams.Len() > 0 {
4612		return invalidParams
4613	}
4614	return nil
4615}
4616
4617// SetAddonName sets the AddonName field's value.
4618func (s *CreateAddonInput) SetAddonName(v string) *CreateAddonInput {
4619	s.AddonName = &v
4620	return s
4621}
4622
4623// SetAddonVersion sets the AddonVersion field's value.
4624func (s *CreateAddonInput) SetAddonVersion(v string) *CreateAddonInput {
4625	s.AddonVersion = &v
4626	return s
4627}
4628
4629// SetClientRequestToken sets the ClientRequestToken field's value.
4630func (s *CreateAddonInput) SetClientRequestToken(v string) *CreateAddonInput {
4631	s.ClientRequestToken = &v
4632	return s
4633}
4634
4635// SetClusterName sets the ClusterName field's value.
4636func (s *CreateAddonInput) SetClusterName(v string) *CreateAddonInput {
4637	s.ClusterName = &v
4638	return s
4639}
4640
4641// SetResolveConflicts sets the ResolveConflicts field's value.
4642func (s *CreateAddonInput) SetResolveConflicts(v string) *CreateAddonInput {
4643	s.ResolveConflicts = &v
4644	return s
4645}
4646
4647// SetServiceAccountRoleArn sets the ServiceAccountRoleArn field's value.
4648func (s *CreateAddonInput) SetServiceAccountRoleArn(v string) *CreateAddonInput {
4649	s.ServiceAccountRoleArn = &v
4650	return s
4651}
4652
4653// SetTags sets the Tags field's value.
4654func (s *CreateAddonInput) SetTags(v map[string]*string) *CreateAddonInput {
4655	s.Tags = v
4656	return s
4657}
4658
4659type CreateAddonOutput struct {
4660	_ struct{} `type:"structure"`
4661
4662	// An Amazon EKS add-on.
4663	Addon *Addon `locationName:"addon" type:"structure"`
4664}
4665
4666// String returns the string representation
4667func (s CreateAddonOutput) String() string {
4668	return awsutil.Prettify(s)
4669}
4670
4671// GoString returns the string representation
4672func (s CreateAddonOutput) GoString() string {
4673	return s.String()
4674}
4675
4676// SetAddon sets the Addon field's value.
4677func (s *CreateAddonOutput) SetAddon(v *Addon) *CreateAddonOutput {
4678	s.Addon = v
4679	return s
4680}
4681
4682type CreateClusterInput struct {
4683	_ struct{} `type:"structure"`
4684
4685	// Unique, case-sensitive identifier that you provide to ensure the idempotency
4686	// of the request.
4687	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
4688
4689	// The encryption configuration for the cluster.
4690	EncryptionConfig []*EncryptionConfig `locationName:"encryptionConfig" type:"list"`
4691
4692	// The Kubernetes network configuration for the cluster.
4693	KubernetesNetworkConfig *KubernetesNetworkConfigRequest `locationName:"kubernetesNetworkConfig" type:"structure"`
4694
4695	// Enable or disable exporting the Kubernetes control plane logs for your cluster
4696	// to CloudWatch Logs. By default, cluster control plane logs aren't exported
4697	// to CloudWatch Logs. For more information, see Amazon EKS Cluster control
4698	// plane logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
4699	// in the Amazon EKS User Guide .
4700	//
4701	// CloudWatch Logs ingestion, archive storage, and data scanning rates apply
4702	// to exported control plane logs. For more information, see CloudWatch Pricing
4703	// (http://aws.amazon.com/cloudwatch/pricing/).
4704	Logging *Logging `locationName:"logging" type:"structure"`
4705
4706	// The unique name to give to your cluster.
4707	//
4708	// Name is a required field
4709	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
4710
4711	// The VPC configuration used by the cluster control plane. Amazon EKS VPC resources
4712	// have specific requirements to work properly with Kubernetes. For more information,
4713	// see Cluster VPC Considerations (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)
4714	// and Cluster Security Group Considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
4715	// in the Amazon EKS User Guide. You must specify at least two subnets. You
4716	// can specify up to five security groups, but we recommend that you use a dedicated
4717	// security group for your cluster control plane.
4718	//
4719	// ResourcesVpcConfig is a required field
4720	ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure" required:"true"`
4721
4722	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
4723	// for the Kubernetes control plane to make calls to Amazon Web Services API
4724	// operations on your behalf. For more information, see Amazon EKS Service IAM
4725	// Role (https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html)
4726	// in the Amazon EKS User Guide .
4727	//
4728	// RoleArn is a required field
4729	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
4730
4731	// The metadata to apply to the cluster to assist with categorization and organization.
4732	// Each tag consists of a key and an optional value, both of which you define.
4733	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4734
4735	// The desired Kubernetes version for your cluster. If you don't specify a value
4736	// here, the latest version available in Amazon EKS is used.
4737	Version *string `locationName:"version" type:"string"`
4738}
4739
4740// String returns the string representation
4741func (s CreateClusterInput) String() string {
4742	return awsutil.Prettify(s)
4743}
4744
4745// GoString returns the string representation
4746func (s CreateClusterInput) GoString() string {
4747	return s.String()
4748}
4749
4750// Validate inspects the fields of the type to determine if they are valid.
4751func (s *CreateClusterInput) Validate() error {
4752	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
4753	if s.Name == nil {
4754		invalidParams.Add(request.NewErrParamRequired("Name"))
4755	}
4756	if s.Name != nil && len(*s.Name) < 1 {
4757		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4758	}
4759	if s.ResourcesVpcConfig == nil {
4760		invalidParams.Add(request.NewErrParamRequired("ResourcesVpcConfig"))
4761	}
4762	if s.RoleArn == nil {
4763		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
4764	}
4765	if s.Tags != nil && len(s.Tags) < 1 {
4766		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4767	}
4768
4769	if invalidParams.Len() > 0 {
4770		return invalidParams
4771	}
4772	return nil
4773}
4774
4775// SetClientRequestToken sets the ClientRequestToken field's value.
4776func (s *CreateClusterInput) SetClientRequestToken(v string) *CreateClusterInput {
4777	s.ClientRequestToken = &v
4778	return s
4779}
4780
4781// SetEncryptionConfig sets the EncryptionConfig field's value.
4782func (s *CreateClusterInput) SetEncryptionConfig(v []*EncryptionConfig) *CreateClusterInput {
4783	s.EncryptionConfig = v
4784	return s
4785}
4786
4787// SetKubernetesNetworkConfig sets the KubernetesNetworkConfig field's value.
4788func (s *CreateClusterInput) SetKubernetesNetworkConfig(v *KubernetesNetworkConfigRequest) *CreateClusterInput {
4789	s.KubernetesNetworkConfig = v
4790	return s
4791}
4792
4793// SetLogging sets the Logging field's value.
4794func (s *CreateClusterInput) SetLogging(v *Logging) *CreateClusterInput {
4795	s.Logging = v
4796	return s
4797}
4798
4799// SetName sets the Name field's value.
4800func (s *CreateClusterInput) SetName(v string) *CreateClusterInput {
4801	s.Name = &v
4802	return s
4803}
4804
4805// SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.
4806func (s *CreateClusterInput) SetResourcesVpcConfig(v *VpcConfigRequest) *CreateClusterInput {
4807	s.ResourcesVpcConfig = v
4808	return s
4809}
4810
4811// SetRoleArn sets the RoleArn field's value.
4812func (s *CreateClusterInput) SetRoleArn(v string) *CreateClusterInput {
4813	s.RoleArn = &v
4814	return s
4815}
4816
4817// SetTags sets the Tags field's value.
4818func (s *CreateClusterInput) SetTags(v map[string]*string) *CreateClusterInput {
4819	s.Tags = v
4820	return s
4821}
4822
4823// SetVersion sets the Version field's value.
4824func (s *CreateClusterInput) SetVersion(v string) *CreateClusterInput {
4825	s.Version = &v
4826	return s
4827}
4828
4829type CreateClusterOutput struct {
4830	_ struct{} `type:"structure"`
4831
4832	// The full description of your new cluster.
4833	Cluster *Cluster `locationName:"cluster" type:"structure"`
4834}
4835
4836// String returns the string representation
4837func (s CreateClusterOutput) String() string {
4838	return awsutil.Prettify(s)
4839}
4840
4841// GoString returns the string representation
4842func (s CreateClusterOutput) GoString() string {
4843	return s.String()
4844}
4845
4846// SetCluster sets the Cluster field's value.
4847func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
4848	s.Cluster = v
4849	return s
4850}
4851
4852type CreateFargateProfileInput struct {
4853	_ struct{} `type:"structure"`
4854
4855	// Unique, case-sensitive identifier that you provide to ensure the idempotency
4856	// of the request.
4857	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
4858
4859	// The name of the Amazon EKS cluster to apply the Fargate profile to.
4860	//
4861	// ClusterName is a required field
4862	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
4863
4864	// The name of the Fargate profile.
4865	//
4866	// FargateProfileName is a required field
4867	FargateProfileName *string `locationName:"fargateProfileName" type:"string" required:"true"`
4868
4869	// The Amazon Resource Name (ARN) of the pod execution role to use for pods
4870	// that match the selectors in the Fargate profile. The pod execution role allows
4871	// Fargate infrastructure to register with your cluster as a node, and it provides
4872	// read access to Amazon ECR image repositories. For more information, see Pod
4873	// Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html)
4874	// in the Amazon EKS User Guide.
4875	//
4876	// PodExecutionRoleArn is a required field
4877	PodExecutionRoleArn *string `locationName:"podExecutionRoleArn" type:"string" required:"true"`
4878
4879	// The selectors to match for pods to use this Fargate profile. Each selector
4880	// must have an associated namespace. Optionally, you can also specify labels
4881	// for a namespace. You may specify up to five selectors in a Fargate profile.
4882	Selectors []*FargateProfileSelector `locationName:"selectors" type:"list"`
4883
4884	// The IDs of subnets to launch your pods into. At this time, pods running on
4885	// Fargate are not assigned public IP addresses, so only private subnets (with
4886	// no direct route to an Internet Gateway) are accepted for this parameter.
4887	Subnets []*string `locationName:"subnets" type:"list"`
4888
4889	// The metadata to apply to the Fargate profile to assist with categorization
4890	// and organization. Each tag consists of a key and an optional value, both
4891	// of which you define. Fargate profile tags do not propagate to any other resources
4892	// associated with the Fargate profile, such as the pods that are scheduled
4893	// with it.
4894	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4895}
4896
4897// String returns the string representation
4898func (s CreateFargateProfileInput) String() string {
4899	return awsutil.Prettify(s)
4900}
4901
4902// GoString returns the string representation
4903func (s CreateFargateProfileInput) GoString() string {
4904	return s.String()
4905}
4906
4907// Validate inspects the fields of the type to determine if they are valid.
4908func (s *CreateFargateProfileInput) Validate() error {
4909	invalidParams := request.ErrInvalidParams{Context: "CreateFargateProfileInput"}
4910	if s.ClusterName == nil {
4911		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
4912	}
4913	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
4914		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
4915	}
4916	if s.FargateProfileName == nil {
4917		invalidParams.Add(request.NewErrParamRequired("FargateProfileName"))
4918	}
4919	if s.PodExecutionRoleArn == nil {
4920		invalidParams.Add(request.NewErrParamRequired("PodExecutionRoleArn"))
4921	}
4922	if s.Tags != nil && len(s.Tags) < 1 {
4923		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4924	}
4925
4926	if invalidParams.Len() > 0 {
4927		return invalidParams
4928	}
4929	return nil
4930}
4931
4932// SetClientRequestToken sets the ClientRequestToken field's value.
4933func (s *CreateFargateProfileInput) SetClientRequestToken(v string) *CreateFargateProfileInput {
4934	s.ClientRequestToken = &v
4935	return s
4936}
4937
4938// SetClusterName sets the ClusterName field's value.
4939func (s *CreateFargateProfileInput) SetClusterName(v string) *CreateFargateProfileInput {
4940	s.ClusterName = &v
4941	return s
4942}
4943
4944// SetFargateProfileName sets the FargateProfileName field's value.
4945func (s *CreateFargateProfileInput) SetFargateProfileName(v string) *CreateFargateProfileInput {
4946	s.FargateProfileName = &v
4947	return s
4948}
4949
4950// SetPodExecutionRoleArn sets the PodExecutionRoleArn field's value.
4951func (s *CreateFargateProfileInput) SetPodExecutionRoleArn(v string) *CreateFargateProfileInput {
4952	s.PodExecutionRoleArn = &v
4953	return s
4954}
4955
4956// SetSelectors sets the Selectors field's value.
4957func (s *CreateFargateProfileInput) SetSelectors(v []*FargateProfileSelector) *CreateFargateProfileInput {
4958	s.Selectors = v
4959	return s
4960}
4961
4962// SetSubnets sets the Subnets field's value.
4963func (s *CreateFargateProfileInput) SetSubnets(v []*string) *CreateFargateProfileInput {
4964	s.Subnets = v
4965	return s
4966}
4967
4968// SetTags sets the Tags field's value.
4969func (s *CreateFargateProfileInput) SetTags(v map[string]*string) *CreateFargateProfileInput {
4970	s.Tags = v
4971	return s
4972}
4973
4974type CreateFargateProfileOutput struct {
4975	_ struct{} `type:"structure"`
4976
4977	// The full description of your new Fargate profile.
4978	FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"`
4979}
4980
4981// String returns the string representation
4982func (s CreateFargateProfileOutput) String() string {
4983	return awsutil.Prettify(s)
4984}
4985
4986// GoString returns the string representation
4987func (s CreateFargateProfileOutput) GoString() string {
4988	return s.String()
4989}
4990
4991// SetFargateProfile sets the FargateProfile field's value.
4992func (s *CreateFargateProfileOutput) SetFargateProfile(v *FargateProfile) *CreateFargateProfileOutput {
4993	s.FargateProfile = v
4994	return s
4995}
4996
4997type CreateNodegroupInput struct {
4998	_ struct{} `type:"structure"`
4999
5000	// The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU
5001	// AMI type. Non-GPU instances should use the AL2_x86_64 AMI type. Arm instances
5002	// should use the AL2_ARM_64 AMI type. All types use the Amazon EKS optimized
5003	// Amazon Linux 2 AMI. If you specify launchTemplate, and your launch template
5004	// uses a custom AMI, then don't specify amiType, or the node group deployment
5005	// will fail. For more information about using launch templates with Amazon
5006	// EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5007	// in the Amazon EKS User Guide.
5008	AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"`
5009
5010	// The capacity type for your node group.
5011	CapacityType *string `locationName:"capacityType" type:"string" enum:"CapacityTypes"`
5012
5013	// Unique, case-sensitive identifier that you provide to ensure the idempotency
5014	// of the request.
5015	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
5016
5017	// The name of the cluster to create the node group in.
5018	//
5019	// ClusterName is a required field
5020	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
5021
5022	// The root device disk size (in GiB) for your node group instances. The default
5023	// disk size is 20 GiB. If you specify launchTemplate, then don't specify diskSize,
5024	// or the node group deployment will fail. For more information about using
5025	// launch templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5026	// in the Amazon EKS User Guide.
5027	DiskSize *int64 `locationName:"diskSize" type:"integer"`
5028
5029	// Specify the instance types for a node group. If you specify a GPU instance
5030	// type, be sure to specify AL2_x86_64_GPU with the amiType parameter. If you
5031	// specify launchTemplate, then you can specify zero or one instance type in
5032	// your launch template or you can specify 0-20 instance types for instanceTypes.
5033	// If however, you specify an instance type in your launch template and specify
5034	// any instanceTypes, the node group deployment will fail. If you don't specify
5035	// an instance type in a launch template or for instanceTypes, then t3.medium
5036	// is used, by default. If you specify Spot for capacityType, then we recommend
5037	// specifying multiple values for instanceTypes. For more information, see Managed
5038	// node group capacity types (https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types)
5039	// and Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5040	// in the Amazon EKS User Guide.
5041	InstanceTypes []*string `locationName:"instanceTypes" type:"list"`
5042
5043	// The Kubernetes labels to be applied to the nodes in the node group when they
5044	// are created.
5045	Labels map[string]*string `locationName:"labels" type:"map"`
5046
5047	// An object representing a node group's launch template specification. If specified,
5048	// then do not specify instanceTypes, diskSize, or remoteAccess and make sure
5049	// that the launch template meets the requirements in launchTemplateSpecification.
5050	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
5051
5052	// The Amazon Resource Name (ARN) of the IAM role to associate with your node
5053	// group. The Amazon EKS worker node kubelet daemon makes calls to Amazon Web
5054	// Services APIs on your behalf. Nodes receive permissions for these API calls
5055	// through an IAM instance profile and associated policies. Before you can launch
5056	// nodes and register them into a cluster, you must create an IAM role for those
5057	// nodes to use when they are launched. For more information, see Amazon EKS
5058	// node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html)
5059	// in the Amazon EKS User Guide . If you specify launchTemplate, then don't
5060	// specify IamInstanceProfile (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)
5061	// in your launch template, or the node group deployment will fail. For more
5062	// information about using launch templates with Amazon EKS, see Launch template
5063	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5064	// in the Amazon EKS User Guide.
5065	//
5066	// NodeRole is a required field
5067	NodeRole *string `locationName:"nodeRole" type:"string" required:"true"`
5068
5069	// The unique name to give your node group.
5070	//
5071	// NodegroupName is a required field
5072	NodegroupName *string `locationName:"nodegroupName" type:"string" required:"true"`
5073
5074	// The AMI version of the Amazon EKS optimized AMI to use with your node group.
5075	// By default, the latest available AMI version for the node group's current
5076	// Kubernetes version is used. For more information, see Amazon EKS optimized
5077	// Amazon Linux 2 AMI versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)
5078	// in the Amazon EKS User Guide. If you specify launchTemplate, and your launch
5079	// template uses a custom AMI, then don't specify releaseVersion, or the node
5080	// group deployment will fail. For more information about using launch templates
5081	// with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5082	// in the Amazon EKS User Guide.
5083	ReleaseVersion *string `locationName:"releaseVersion" type:"string"`
5084
5085	// The remote access (SSH) configuration to use with your node group. If you
5086	// specify launchTemplate, then don't specify remoteAccess, or the node group
5087	// deployment will fail. For more information about using launch templates with
5088	// Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5089	// in the Amazon EKS User Guide.
5090	RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"`
5091
5092	// The scaling configuration details for the Auto Scaling group that is created
5093	// for your node group.
5094	ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"`
5095
5096	// The subnets to use for the Auto Scaling group that is created for your node
5097	// group. If you specify launchTemplate, then don't specify SubnetId (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
5098	// in your launch template, or the node group deployment will fail. For more
5099	// information about using launch templates with Amazon EKS, see Launch template
5100	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5101	// in the Amazon EKS User Guide.
5102	//
5103	// Subnets is a required field
5104	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
5105
5106	// The metadata to apply to the node group to assist with categorization and
5107	// organization. Each tag consists of a key and an optional value, both of which
5108	// you define. Node group tags do not propagate to any other resources associated
5109	// with the node group, such as the Amazon EC2 instances or subnets.
5110	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
5111
5112	// The Kubernetes taints to be applied to the nodes in the node group.
5113	Taints []*Taint `locationName:"taints" type:"list"`
5114
5115	// The node group update configuration.
5116	UpdateConfig *NodegroupUpdateConfig `locationName:"updateConfig" type:"structure"`
5117
5118	// The Kubernetes version to use for your managed nodes. By default, the Kubernetes
5119	// version of the cluster is used, and this is the only accepted specified value.
5120	// If you specify launchTemplate, and your launch template uses a custom AMI,
5121	// then don't specify version, or the node group deployment will fail. For more
5122	// information about using launch templates with Amazon EKS, see Launch template
5123	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
5124	// in the Amazon EKS User Guide.
5125	Version *string `locationName:"version" type:"string"`
5126}
5127
5128// String returns the string representation
5129func (s CreateNodegroupInput) String() string {
5130	return awsutil.Prettify(s)
5131}
5132
5133// GoString returns the string representation
5134func (s CreateNodegroupInput) GoString() string {
5135	return s.String()
5136}
5137
5138// Validate inspects the fields of the type to determine if they are valid.
5139func (s *CreateNodegroupInput) Validate() error {
5140	invalidParams := request.ErrInvalidParams{Context: "CreateNodegroupInput"}
5141	if s.ClusterName == nil {
5142		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5143	}
5144	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
5145		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
5146	}
5147	if s.NodeRole == nil {
5148		invalidParams.Add(request.NewErrParamRequired("NodeRole"))
5149	}
5150	if s.NodegroupName == nil {
5151		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
5152	}
5153	if s.Subnets == nil {
5154		invalidParams.Add(request.NewErrParamRequired("Subnets"))
5155	}
5156	if s.Tags != nil && len(s.Tags) < 1 {
5157		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
5158	}
5159	if s.ScalingConfig != nil {
5160		if err := s.ScalingConfig.Validate(); err != nil {
5161			invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams))
5162		}
5163	}
5164	if s.Taints != nil {
5165		for i, v := range s.Taints {
5166			if v == nil {
5167				continue
5168			}
5169			if err := v.Validate(); err != nil {
5170				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Taints", i), err.(request.ErrInvalidParams))
5171			}
5172		}
5173	}
5174	if s.UpdateConfig != nil {
5175		if err := s.UpdateConfig.Validate(); err != nil {
5176			invalidParams.AddNested("UpdateConfig", err.(request.ErrInvalidParams))
5177		}
5178	}
5179
5180	if invalidParams.Len() > 0 {
5181		return invalidParams
5182	}
5183	return nil
5184}
5185
5186// SetAmiType sets the AmiType field's value.
5187func (s *CreateNodegroupInput) SetAmiType(v string) *CreateNodegroupInput {
5188	s.AmiType = &v
5189	return s
5190}
5191
5192// SetCapacityType sets the CapacityType field's value.
5193func (s *CreateNodegroupInput) SetCapacityType(v string) *CreateNodegroupInput {
5194	s.CapacityType = &v
5195	return s
5196}
5197
5198// SetClientRequestToken sets the ClientRequestToken field's value.
5199func (s *CreateNodegroupInput) SetClientRequestToken(v string) *CreateNodegroupInput {
5200	s.ClientRequestToken = &v
5201	return s
5202}
5203
5204// SetClusterName sets the ClusterName field's value.
5205func (s *CreateNodegroupInput) SetClusterName(v string) *CreateNodegroupInput {
5206	s.ClusterName = &v
5207	return s
5208}
5209
5210// SetDiskSize sets the DiskSize field's value.
5211func (s *CreateNodegroupInput) SetDiskSize(v int64) *CreateNodegroupInput {
5212	s.DiskSize = &v
5213	return s
5214}
5215
5216// SetInstanceTypes sets the InstanceTypes field's value.
5217func (s *CreateNodegroupInput) SetInstanceTypes(v []*string) *CreateNodegroupInput {
5218	s.InstanceTypes = v
5219	return s
5220}
5221
5222// SetLabels sets the Labels field's value.
5223func (s *CreateNodegroupInput) SetLabels(v map[string]*string) *CreateNodegroupInput {
5224	s.Labels = v
5225	return s
5226}
5227
5228// SetLaunchTemplate sets the LaunchTemplate field's value.
5229func (s *CreateNodegroupInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *CreateNodegroupInput {
5230	s.LaunchTemplate = v
5231	return s
5232}
5233
5234// SetNodeRole sets the NodeRole field's value.
5235func (s *CreateNodegroupInput) SetNodeRole(v string) *CreateNodegroupInput {
5236	s.NodeRole = &v
5237	return s
5238}
5239
5240// SetNodegroupName sets the NodegroupName field's value.
5241func (s *CreateNodegroupInput) SetNodegroupName(v string) *CreateNodegroupInput {
5242	s.NodegroupName = &v
5243	return s
5244}
5245
5246// SetReleaseVersion sets the ReleaseVersion field's value.
5247func (s *CreateNodegroupInput) SetReleaseVersion(v string) *CreateNodegroupInput {
5248	s.ReleaseVersion = &v
5249	return s
5250}
5251
5252// SetRemoteAccess sets the RemoteAccess field's value.
5253func (s *CreateNodegroupInput) SetRemoteAccess(v *RemoteAccessConfig) *CreateNodegroupInput {
5254	s.RemoteAccess = v
5255	return s
5256}
5257
5258// SetScalingConfig sets the ScalingConfig field's value.
5259func (s *CreateNodegroupInput) SetScalingConfig(v *NodegroupScalingConfig) *CreateNodegroupInput {
5260	s.ScalingConfig = v
5261	return s
5262}
5263
5264// SetSubnets sets the Subnets field's value.
5265func (s *CreateNodegroupInput) SetSubnets(v []*string) *CreateNodegroupInput {
5266	s.Subnets = v
5267	return s
5268}
5269
5270// SetTags sets the Tags field's value.
5271func (s *CreateNodegroupInput) SetTags(v map[string]*string) *CreateNodegroupInput {
5272	s.Tags = v
5273	return s
5274}
5275
5276// SetTaints sets the Taints field's value.
5277func (s *CreateNodegroupInput) SetTaints(v []*Taint) *CreateNodegroupInput {
5278	s.Taints = v
5279	return s
5280}
5281
5282// SetUpdateConfig sets the UpdateConfig field's value.
5283func (s *CreateNodegroupInput) SetUpdateConfig(v *NodegroupUpdateConfig) *CreateNodegroupInput {
5284	s.UpdateConfig = v
5285	return s
5286}
5287
5288// SetVersion sets the Version field's value.
5289func (s *CreateNodegroupInput) SetVersion(v string) *CreateNodegroupInput {
5290	s.Version = &v
5291	return s
5292}
5293
5294type CreateNodegroupOutput struct {
5295	_ struct{} `type:"structure"`
5296
5297	// The full description of your new node group.
5298	Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"`
5299}
5300
5301// String returns the string representation
5302func (s CreateNodegroupOutput) String() string {
5303	return awsutil.Prettify(s)
5304}
5305
5306// GoString returns the string representation
5307func (s CreateNodegroupOutput) GoString() string {
5308	return s.String()
5309}
5310
5311// SetNodegroup sets the Nodegroup field's value.
5312func (s *CreateNodegroupOutput) SetNodegroup(v *Nodegroup) *CreateNodegroupOutput {
5313	s.Nodegroup = v
5314	return s
5315}
5316
5317type DeleteAddonInput struct {
5318	_ struct{} `type:"structure"`
5319
5320	// The name of the add-on. The name must match one of the names returned by
5321	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
5322	//
5323	// AddonName is a required field
5324	AddonName *string `location:"uri" locationName:"addonName" type:"string" required:"true"`
5325
5326	// The name of the cluster to delete the add-on from.
5327	//
5328	// ClusterName is a required field
5329	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5330
5331	// Specifying this option preserves the add-on software on your cluster but
5332	// Amazon EKS stops managing any settings for the add-on. If an IAM account
5333	// is associated with the add-on, it is not removed.
5334	Preserve *bool `location:"querystring" locationName:"preserve" type:"boolean"`
5335}
5336
5337// String returns the string representation
5338func (s DeleteAddonInput) String() string {
5339	return awsutil.Prettify(s)
5340}
5341
5342// GoString returns the string representation
5343func (s DeleteAddonInput) GoString() string {
5344	return s.String()
5345}
5346
5347// Validate inspects the fields of the type to determine if they are valid.
5348func (s *DeleteAddonInput) Validate() error {
5349	invalidParams := request.ErrInvalidParams{Context: "DeleteAddonInput"}
5350	if s.AddonName == nil {
5351		invalidParams.Add(request.NewErrParamRequired("AddonName"))
5352	}
5353	if s.AddonName != nil && len(*s.AddonName) < 1 {
5354		invalidParams.Add(request.NewErrParamMinLen("AddonName", 1))
5355	}
5356	if s.ClusterName == nil {
5357		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5358	}
5359	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
5360		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
5361	}
5362
5363	if invalidParams.Len() > 0 {
5364		return invalidParams
5365	}
5366	return nil
5367}
5368
5369// SetAddonName sets the AddonName field's value.
5370func (s *DeleteAddonInput) SetAddonName(v string) *DeleteAddonInput {
5371	s.AddonName = &v
5372	return s
5373}
5374
5375// SetClusterName sets the ClusterName field's value.
5376func (s *DeleteAddonInput) SetClusterName(v string) *DeleteAddonInput {
5377	s.ClusterName = &v
5378	return s
5379}
5380
5381// SetPreserve sets the Preserve field's value.
5382func (s *DeleteAddonInput) SetPreserve(v bool) *DeleteAddonInput {
5383	s.Preserve = &v
5384	return s
5385}
5386
5387type DeleteAddonOutput struct {
5388	_ struct{} `type:"structure"`
5389
5390	// An Amazon EKS add-on.
5391	Addon *Addon `locationName:"addon" type:"structure"`
5392}
5393
5394// String returns the string representation
5395func (s DeleteAddonOutput) String() string {
5396	return awsutil.Prettify(s)
5397}
5398
5399// GoString returns the string representation
5400func (s DeleteAddonOutput) GoString() string {
5401	return s.String()
5402}
5403
5404// SetAddon sets the Addon field's value.
5405func (s *DeleteAddonOutput) SetAddon(v *Addon) *DeleteAddonOutput {
5406	s.Addon = v
5407	return s
5408}
5409
5410type DeleteClusterInput struct {
5411	_ struct{} `type:"structure"`
5412
5413	// The name of the cluster to delete.
5414	//
5415	// Name is a required field
5416	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
5417}
5418
5419// String returns the string representation
5420func (s DeleteClusterInput) String() string {
5421	return awsutil.Prettify(s)
5422}
5423
5424// GoString returns the string representation
5425func (s DeleteClusterInput) GoString() string {
5426	return s.String()
5427}
5428
5429// Validate inspects the fields of the type to determine if they are valid.
5430func (s *DeleteClusterInput) Validate() error {
5431	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
5432	if s.Name == nil {
5433		invalidParams.Add(request.NewErrParamRequired("Name"))
5434	}
5435	if s.Name != nil && len(*s.Name) < 1 {
5436		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5437	}
5438
5439	if invalidParams.Len() > 0 {
5440		return invalidParams
5441	}
5442	return nil
5443}
5444
5445// SetName sets the Name field's value.
5446func (s *DeleteClusterInput) SetName(v string) *DeleteClusterInput {
5447	s.Name = &v
5448	return s
5449}
5450
5451type DeleteClusterOutput struct {
5452	_ struct{} `type:"structure"`
5453
5454	// The full description of the cluster to delete.
5455	Cluster *Cluster `locationName:"cluster" type:"structure"`
5456}
5457
5458// String returns the string representation
5459func (s DeleteClusterOutput) String() string {
5460	return awsutil.Prettify(s)
5461}
5462
5463// GoString returns the string representation
5464func (s DeleteClusterOutput) GoString() string {
5465	return s.String()
5466}
5467
5468// SetCluster sets the Cluster field's value.
5469func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
5470	s.Cluster = v
5471	return s
5472}
5473
5474type DeleteFargateProfileInput struct {
5475	_ struct{} `type:"structure"`
5476
5477	// The name of the Amazon EKS cluster associated with the Fargate profile to
5478	// delete.
5479	//
5480	// ClusterName is a required field
5481	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
5482
5483	// The name of the Fargate profile to delete.
5484	//
5485	// FargateProfileName is a required field
5486	FargateProfileName *string `location:"uri" locationName:"fargateProfileName" type:"string" required:"true"`
5487}
5488
5489// String returns the string representation
5490func (s DeleteFargateProfileInput) String() string {
5491	return awsutil.Prettify(s)
5492}
5493
5494// GoString returns the string representation
5495func (s DeleteFargateProfileInput) GoString() string {
5496	return s.String()
5497}
5498
5499// Validate inspects the fields of the type to determine if they are valid.
5500func (s *DeleteFargateProfileInput) Validate() error {
5501	invalidParams := request.ErrInvalidParams{Context: "DeleteFargateProfileInput"}
5502	if s.ClusterName == nil {
5503		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5504	}
5505	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
5506		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
5507	}
5508	if s.FargateProfileName == nil {
5509		invalidParams.Add(request.NewErrParamRequired("FargateProfileName"))
5510	}
5511	if s.FargateProfileName != nil && len(*s.FargateProfileName) < 1 {
5512		invalidParams.Add(request.NewErrParamMinLen("FargateProfileName", 1))
5513	}
5514
5515	if invalidParams.Len() > 0 {
5516		return invalidParams
5517	}
5518	return nil
5519}
5520
5521// SetClusterName sets the ClusterName field's value.
5522func (s *DeleteFargateProfileInput) SetClusterName(v string) *DeleteFargateProfileInput {
5523	s.ClusterName = &v
5524	return s
5525}
5526
5527// SetFargateProfileName sets the FargateProfileName field's value.
5528func (s *DeleteFargateProfileInput) SetFargateProfileName(v string) *DeleteFargateProfileInput {
5529	s.FargateProfileName = &v
5530	return s
5531}
5532
5533type DeleteFargateProfileOutput struct {
5534	_ struct{} `type:"structure"`
5535
5536	// The deleted Fargate profile.
5537	FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"`
5538}
5539
5540// String returns the string representation
5541func (s DeleteFargateProfileOutput) String() string {
5542	return awsutil.Prettify(s)
5543}
5544
5545// GoString returns the string representation
5546func (s DeleteFargateProfileOutput) GoString() string {
5547	return s.String()
5548}
5549
5550// SetFargateProfile sets the FargateProfile field's value.
5551func (s *DeleteFargateProfileOutput) SetFargateProfile(v *FargateProfile) *DeleteFargateProfileOutput {
5552	s.FargateProfile = v
5553	return s
5554}
5555
5556type DeleteNodegroupInput struct {
5557	_ struct{} `type:"structure"`
5558
5559	// The name of the Amazon EKS cluster that is associated with your node group.
5560	//
5561	// ClusterName is a required field
5562	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
5563
5564	// The name of the node group to delete.
5565	//
5566	// NodegroupName is a required field
5567	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
5568}
5569
5570// String returns the string representation
5571func (s DeleteNodegroupInput) String() string {
5572	return awsutil.Prettify(s)
5573}
5574
5575// GoString returns the string representation
5576func (s DeleteNodegroupInput) GoString() string {
5577	return s.String()
5578}
5579
5580// Validate inspects the fields of the type to determine if they are valid.
5581func (s *DeleteNodegroupInput) Validate() error {
5582	invalidParams := request.ErrInvalidParams{Context: "DeleteNodegroupInput"}
5583	if s.ClusterName == nil {
5584		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5585	}
5586	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
5587		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
5588	}
5589	if s.NodegroupName == nil {
5590		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
5591	}
5592	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
5593		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
5594	}
5595
5596	if invalidParams.Len() > 0 {
5597		return invalidParams
5598	}
5599	return nil
5600}
5601
5602// SetClusterName sets the ClusterName field's value.
5603func (s *DeleteNodegroupInput) SetClusterName(v string) *DeleteNodegroupInput {
5604	s.ClusterName = &v
5605	return s
5606}
5607
5608// SetNodegroupName sets the NodegroupName field's value.
5609func (s *DeleteNodegroupInput) SetNodegroupName(v string) *DeleteNodegroupInput {
5610	s.NodegroupName = &v
5611	return s
5612}
5613
5614type DeleteNodegroupOutput struct {
5615	_ struct{} `type:"structure"`
5616
5617	// The full description of your deleted node group.
5618	Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"`
5619}
5620
5621// String returns the string representation
5622func (s DeleteNodegroupOutput) String() string {
5623	return awsutil.Prettify(s)
5624}
5625
5626// GoString returns the string representation
5627func (s DeleteNodegroupOutput) GoString() string {
5628	return s.String()
5629}
5630
5631// SetNodegroup sets the Nodegroup field's value.
5632func (s *DeleteNodegroupOutput) SetNodegroup(v *Nodegroup) *DeleteNodegroupOutput {
5633	s.Nodegroup = v
5634	return s
5635}
5636
5637type DescribeAddonInput struct {
5638	_ struct{} `type:"structure"`
5639
5640	// The name of the add-on. The name must match one of the names returned by
5641	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
5642	//
5643	// AddonName is a required field
5644	AddonName *string `location:"uri" locationName:"addonName" type:"string" required:"true"`
5645
5646	// The name of the cluster.
5647	//
5648	// ClusterName is a required field
5649	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5650}
5651
5652// String returns the string representation
5653func (s DescribeAddonInput) String() string {
5654	return awsutil.Prettify(s)
5655}
5656
5657// GoString returns the string representation
5658func (s DescribeAddonInput) GoString() string {
5659	return s.String()
5660}
5661
5662// Validate inspects the fields of the type to determine if they are valid.
5663func (s *DescribeAddonInput) Validate() error {
5664	invalidParams := request.ErrInvalidParams{Context: "DescribeAddonInput"}
5665	if s.AddonName == nil {
5666		invalidParams.Add(request.NewErrParamRequired("AddonName"))
5667	}
5668	if s.AddonName != nil && len(*s.AddonName) < 1 {
5669		invalidParams.Add(request.NewErrParamMinLen("AddonName", 1))
5670	}
5671	if s.ClusterName == nil {
5672		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5673	}
5674	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
5675		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
5676	}
5677
5678	if invalidParams.Len() > 0 {
5679		return invalidParams
5680	}
5681	return nil
5682}
5683
5684// SetAddonName sets the AddonName field's value.
5685func (s *DescribeAddonInput) SetAddonName(v string) *DescribeAddonInput {
5686	s.AddonName = &v
5687	return s
5688}
5689
5690// SetClusterName sets the ClusterName field's value.
5691func (s *DescribeAddonInput) SetClusterName(v string) *DescribeAddonInput {
5692	s.ClusterName = &v
5693	return s
5694}
5695
5696type DescribeAddonOutput struct {
5697	_ struct{} `type:"structure"`
5698
5699	// An Amazon EKS add-on.
5700	Addon *Addon `locationName:"addon" type:"structure"`
5701}
5702
5703// String returns the string representation
5704func (s DescribeAddonOutput) String() string {
5705	return awsutil.Prettify(s)
5706}
5707
5708// GoString returns the string representation
5709func (s DescribeAddonOutput) GoString() string {
5710	return s.String()
5711}
5712
5713// SetAddon sets the Addon field's value.
5714func (s *DescribeAddonOutput) SetAddon(v *Addon) *DescribeAddonOutput {
5715	s.Addon = v
5716	return s
5717}
5718
5719type DescribeAddonVersionsInput struct {
5720	_ struct{} `type:"structure"`
5721
5722	// The name of the add-on. The name must match one of the names returned by
5723	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
5724	AddonName *string `location:"querystring" locationName:"addonName" type:"string"`
5725
5726	// The Kubernetes versions that the add-on can be used with.
5727	KubernetesVersion *string `location:"querystring" locationName:"kubernetesVersion" type:"string"`
5728
5729	// The maximum number of results to return.
5730	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
5731
5732	// The nextToken value returned from a previous paginated DescribeAddonVersionsRequest
5733	// where maxResults was used and the results exceeded the value of that parameter.
5734	// Pagination continues from the end of the previous results that returned the
5735	// nextToken value.
5736	//
5737	// This token should be treated as an opaque identifier that is used only to
5738	// retrieve the next items in a list and not for other programmatic purposes.
5739	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5740}
5741
5742// String returns the string representation
5743func (s DescribeAddonVersionsInput) String() string {
5744	return awsutil.Prettify(s)
5745}
5746
5747// GoString returns the string representation
5748func (s DescribeAddonVersionsInput) GoString() string {
5749	return s.String()
5750}
5751
5752// Validate inspects the fields of the type to determine if they are valid.
5753func (s *DescribeAddonVersionsInput) Validate() error {
5754	invalidParams := request.ErrInvalidParams{Context: "DescribeAddonVersionsInput"}
5755	if s.MaxResults != nil && *s.MaxResults < 1 {
5756		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5757	}
5758
5759	if invalidParams.Len() > 0 {
5760		return invalidParams
5761	}
5762	return nil
5763}
5764
5765// SetAddonName sets the AddonName field's value.
5766func (s *DescribeAddonVersionsInput) SetAddonName(v string) *DescribeAddonVersionsInput {
5767	s.AddonName = &v
5768	return s
5769}
5770
5771// SetKubernetesVersion sets the KubernetesVersion field's value.
5772func (s *DescribeAddonVersionsInput) SetKubernetesVersion(v string) *DescribeAddonVersionsInput {
5773	s.KubernetesVersion = &v
5774	return s
5775}
5776
5777// SetMaxResults sets the MaxResults field's value.
5778func (s *DescribeAddonVersionsInput) SetMaxResults(v int64) *DescribeAddonVersionsInput {
5779	s.MaxResults = &v
5780	return s
5781}
5782
5783// SetNextToken sets the NextToken field's value.
5784func (s *DescribeAddonVersionsInput) SetNextToken(v string) *DescribeAddonVersionsInput {
5785	s.NextToken = &v
5786	return s
5787}
5788
5789type DescribeAddonVersionsOutput struct {
5790	_ struct{} `type:"structure"`
5791
5792	// The list of available versions with Kubernetes version compatibility.
5793	Addons []*AddonInfo `locationName:"addons" type:"list"`
5794
5795	// The nextToken value returned from a previous paginated DescribeAddonVersionsResponse
5796	// where maxResults was used and the results exceeded the value of that parameter.
5797	// Pagination continues from the end of the previous results that returned the
5798	// nextToken value.
5799	//
5800	// This token should be treated as an opaque identifier that is used only to
5801	// retrieve the next items in a list and not for other programmatic purposes.
5802	NextToken *string `locationName:"nextToken" type:"string"`
5803}
5804
5805// String returns the string representation
5806func (s DescribeAddonVersionsOutput) String() string {
5807	return awsutil.Prettify(s)
5808}
5809
5810// GoString returns the string representation
5811func (s DescribeAddonVersionsOutput) GoString() string {
5812	return s.String()
5813}
5814
5815// SetAddons sets the Addons field's value.
5816func (s *DescribeAddonVersionsOutput) SetAddons(v []*AddonInfo) *DescribeAddonVersionsOutput {
5817	s.Addons = v
5818	return s
5819}
5820
5821// SetNextToken sets the NextToken field's value.
5822func (s *DescribeAddonVersionsOutput) SetNextToken(v string) *DescribeAddonVersionsOutput {
5823	s.NextToken = &v
5824	return s
5825}
5826
5827type DescribeClusterInput struct {
5828	_ struct{} `type:"structure"`
5829
5830	// The name of the cluster to describe.
5831	//
5832	// Name is a required field
5833	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
5834}
5835
5836// String returns the string representation
5837func (s DescribeClusterInput) String() string {
5838	return awsutil.Prettify(s)
5839}
5840
5841// GoString returns the string representation
5842func (s DescribeClusterInput) GoString() string {
5843	return s.String()
5844}
5845
5846// Validate inspects the fields of the type to determine if they are valid.
5847func (s *DescribeClusterInput) Validate() error {
5848	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
5849	if s.Name == nil {
5850		invalidParams.Add(request.NewErrParamRequired("Name"))
5851	}
5852	if s.Name != nil && len(*s.Name) < 1 {
5853		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5854	}
5855
5856	if invalidParams.Len() > 0 {
5857		return invalidParams
5858	}
5859	return nil
5860}
5861
5862// SetName sets the Name field's value.
5863func (s *DescribeClusterInput) SetName(v string) *DescribeClusterInput {
5864	s.Name = &v
5865	return s
5866}
5867
5868type DescribeClusterOutput struct {
5869	_ struct{} `type:"structure"`
5870
5871	// The full description of your specified cluster.
5872	Cluster *Cluster `locationName:"cluster" type:"structure"`
5873}
5874
5875// String returns the string representation
5876func (s DescribeClusterOutput) String() string {
5877	return awsutil.Prettify(s)
5878}
5879
5880// GoString returns the string representation
5881func (s DescribeClusterOutput) GoString() string {
5882	return s.String()
5883}
5884
5885// SetCluster sets the Cluster field's value.
5886func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
5887	s.Cluster = v
5888	return s
5889}
5890
5891type DescribeFargateProfileInput struct {
5892	_ struct{} `type:"structure"`
5893
5894	// The name of the Amazon EKS cluster associated with the Fargate profile.
5895	//
5896	// ClusterName is a required field
5897	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
5898
5899	// The name of the Fargate profile to describe.
5900	//
5901	// FargateProfileName is a required field
5902	FargateProfileName *string `location:"uri" locationName:"fargateProfileName" type:"string" required:"true"`
5903}
5904
5905// String returns the string representation
5906func (s DescribeFargateProfileInput) String() string {
5907	return awsutil.Prettify(s)
5908}
5909
5910// GoString returns the string representation
5911func (s DescribeFargateProfileInput) GoString() string {
5912	return s.String()
5913}
5914
5915// Validate inspects the fields of the type to determine if they are valid.
5916func (s *DescribeFargateProfileInput) Validate() error {
5917	invalidParams := request.ErrInvalidParams{Context: "DescribeFargateProfileInput"}
5918	if s.ClusterName == nil {
5919		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5920	}
5921	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
5922		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
5923	}
5924	if s.FargateProfileName == nil {
5925		invalidParams.Add(request.NewErrParamRequired("FargateProfileName"))
5926	}
5927	if s.FargateProfileName != nil && len(*s.FargateProfileName) < 1 {
5928		invalidParams.Add(request.NewErrParamMinLen("FargateProfileName", 1))
5929	}
5930
5931	if invalidParams.Len() > 0 {
5932		return invalidParams
5933	}
5934	return nil
5935}
5936
5937// SetClusterName sets the ClusterName field's value.
5938func (s *DescribeFargateProfileInput) SetClusterName(v string) *DescribeFargateProfileInput {
5939	s.ClusterName = &v
5940	return s
5941}
5942
5943// SetFargateProfileName sets the FargateProfileName field's value.
5944func (s *DescribeFargateProfileInput) SetFargateProfileName(v string) *DescribeFargateProfileInput {
5945	s.FargateProfileName = &v
5946	return s
5947}
5948
5949type DescribeFargateProfileOutput struct {
5950	_ struct{} `type:"structure"`
5951
5952	// The full description of your Fargate profile.
5953	FargateProfile *FargateProfile `locationName:"fargateProfile" type:"structure"`
5954}
5955
5956// String returns the string representation
5957func (s DescribeFargateProfileOutput) String() string {
5958	return awsutil.Prettify(s)
5959}
5960
5961// GoString returns the string representation
5962func (s DescribeFargateProfileOutput) GoString() string {
5963	return s.String()
5964}
5965
5966// SetFargateProfile sets the FargateProfile field's value.
5967func (s *DescribeFargateProfileOutput) SetFargateProfile(v *FargateProfile) *DescribeFargateProfileOutput {
5968	s.FargateProfile = v
5969	return s
5970}
5971
5972type DescribeIdentityProviderConfigInput struct {
5973	_ struct{} `type:"structure"`
5974
5975	// The cluster name that the identity provider configuration is associated to.
5976	//
5977	// ClusterName is a required field
5978	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
5979
5980	// An object that represents an identity provider configuration.
5981	//
5982	// IdentityProviderConfig is a required field
5983	IdentityProviderConfig *IdentityProviderConfig `locationName:"identityProviderConfig" type:"structure" required:"true"`
5984}
5985
5986// String returns the string representation
5987func (s DescribeIdentityProviderConfigInput) String() string {
5988	return awsutil.Prettify(s)
5989}
5990
5991// GoString returns the string representation
5992func (s DescribeIdentityProviderConfigInput) GoString() string {
5993	return s.String()
5994}
5995
5996// Validate inspects the fields of the type to determine if they are valid.
5997func (s *DescribeIdentityProviderConfigInput) Validate() error {
5998	invalidParams := request.ErrInvalidParams{Context: "DescribeIdentityProviderConfigInput"}
5999	if s.ClusterName == nil {
6000		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
6001	}
6002	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
6003		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
6004	}
6005	if s.IdentityProviderConfig == nil {
6006		invalidParams.Add(request.NewErrParamRequired("IdentityProviderConfig"))
6007	}
6008	if s.IdentityProviderConfig != nil {
6009		if err := s.IdentityProviderConfig.Validate(); err != nil {
6010			invalidParams.AddNested("IdentityProviderConfig", err.(request.ErrInvalidParams))
6011		}
6012	}
6013
6014	if invalidParams.Len() > 0 {
6015		return invalidParams
6016	}
6017	return nil
6018}
6019
6020// SetClusterName sets the ClusterName field's value.
6021func (s *DescribeIdentityProviderConfigInput) SetClusterName(v string) *DescribeIdentityProviderConfigInput {
6022	s.ClusterName = &v
6023	return s
6024}
6025
6026// SetIdentityProviderConfig sets the IdentityProviderConfig field's value.
6027func (s *DescribeIdentityProviderConfigInput) SetIdentityProviderConfig(v *IdentityProviderConfig) *DescribeIdentityProviderConfigInput {
6028	s.IdentityProviderConfig = v
6029	return s
6030}
6031
6032type DescribeIdentityProviderConfigOutput struct {
6033	_ struct{} `type:"structure"`
6034
6035	// The object that represents an OpenID Connect (OIDC) identity provider configuration.
6036	IdentityProviderConfig *IdentityProviderConfigResponse `locationName:"identityProviderConfig" type:"structure"`
6037}
6038
6039// String returns the string representation
6040func (s DescribeIdentityProviderConfigOutput) String() string {
6041	return awsutil.Prettify(s)
6042}
6043
6044// GoString returns the string representation
6045func (s DescribeIdentityProviderConfigOutput) GoString() string {
6046	return s.String()
6047}
6048
6049// SetIdentityProviderConfig sets the IdentityProviderConfig field's value.
6050func (s *DescribeIdentityProviderConfigOutput) SetIdentityProviderConfig(v *IdentityProviderConfigResponse) *DescribeIdentityProviderConfigOutput {
6051	s.IdentityProviderConfig = v
6052	return s
6053}
6054
6055type DescribeNodegroupInput struct {
6056	_ struct{} `type:"structure"`
6057
6058	// The name of the Amazon EKS cluster associated with the node group.
6059	//
6060	// ClusterName is a required field
6061	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
6062
6063	// The name of the node group to describe.
6064	//
6065	// NodegroupName is a required field
6066	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
6067}
6068
6069// String returns the string representation
6070func (s DescribeNodegroupInput) String() string {
6071	return awsutil.Prettify(s)
6072}
6073
6074// GoString returns the string representation
6075func (s DescribeNodegroupInput) GoString() string {
6076	return s.String()
6077}
6078
6079// Validate inspects the fields of the type to determine if they are valid.
6080func (s *DescribeNodegroupInput) Validate() error {
6081	invalidParams := request.ErrInvalidParams{Context: "DescribeNodegroupInput"}
6082	if s.ClusterName == nil {
6083		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
6084	}
6085	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
6086		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
6087	}
6088	if s.NodegroupName == nil {
6089		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
6090	}
6091	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
6092		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
6093	}
6094
6095	if invalidParams.Len() > 0 {
6096		return invalidParams
6097	}
6098	return nil
6099}
6100
6101// SetClusterName sets the ClusterName field's value.
6102func (s *DescribeNodegroupInput) SetClusterName(v string) *DescribeNodegroupInput {
6103	s.ClusterName = &v
6104	return s
6105}
6106
6107// SetNodegroupName sets the NodegroupName field's value.
6108func (s *DescribeNodegroupInput) SetNodegroupName(v string) *DescribeNodegroupInput {
6109	s.NodegroupName = &v
6110	return s
6111}
6112
6113type DescribeNodegroupOutput struct {
6114	_ struct{} `type:"structure"`
6115
6116	// The full description of your node group.
6117	Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"`
6118}
6119
6120// String returns the string representation
6121func (s DescribeNodegroupOutput) String() string {
6122	return awsutil.Prettify(s)
6123}
6124
6125// GoString returns the string representation
6126func (s DescribeNodegroupOutput) GoString() string {
6127	return s.String()
6128}
6129
6130// SetNodegroup sets the Nodegroup field's value.
6131func (s *DescribeNodegroupOutput) SetNodegroup(v *Nodegroup) *DescribeNodegroupOutput {
6132	s.Nodegroup = v
6133	return s
6134}
6135
6136type DescribeUpdateInput struct {
6137	_ struct{} `type:"structure"`
6138
6139	// The name of the add-on. The name must match one of the names returned by
6140	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
6141	AddonName *string `location:"querystring" locationName:"addonName" type:"string"`
6142
6143	// The name of the Amazon EKS cluster associated with the update.
6144	//
6145	// Name is a required field
6146	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
6147
6148	// The name of the Amazon EKS node group associated with the update.
6149	NodegroupName *string `location:"querystring" locationName:"nodegroupName" type:"string"`
6150
6151	// The ID of the update to describe.
6152	//
6153	// UpdateId is a required field
6154	UpdateId *string `location:"uri" locationName:"updateId" type:"string" required:"true"`
6155}
6156
6157// String returns the string representation
6158func (s DescribeUpdateInput) String() string {
6159	return awsutil.Prettify(s)
6160}
6161
6162// GoString returns the string representation
6163func (s DescribeUpdateInput) GoString() string {
6164	return s.String()
6165}
6166
6167// Validate inspects the fields of the type to determine if they are valid.
6168func (s *DescribeUpdateInput) Validate() error {
6169	invalidParams := request.ErrInvalidParams{Context: "DescribeUpdateInput"}
6170	if s.Name == nil {
6171		invalidParams.Add(request.NewErrParamRequired("Name"))
6172	}
6173	if s.Name != nil && len(*s.Name) < 1 {
6174		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6175	}
6176	if s.UpdateId == nil {
6177		invalidParams.Add(request.NewErrParamRequired("UpdateId"))
6178	}
6179	if s.UpdateId != nil && len(*s.UpdateId) < 1 {
6180		invalidParams.Add(request.NewErrParamMinLen("UpdateId", 1))
6181	}
6182
6183	if invalidParams.Len() > 0 {
6184		return invalidParams
6185	}
6186	return nil
6187}
6188
6189// SetAddonName sets the AddonName field's value.
6190func (s *DescribeUpdateInput) SetAddonName(v string) *DescribeUpdateInput {
6191	s.AddonName = &v
6192	return s
6193}
6194
6195// SetName sets the Name field's value.
6196func (s *DescribeUpdateInput) SetName(v string) *DescribeUpdateInput {
6197	s.Name = &v
6198	return s
6199}
6200
6201// SetNodegroupName sets the NodegroupName field's value.
6202func (s *DescribeUpdateInput) SetNodegroupName(v string) *DescribeUpdateInput {
6203	s.NodegroupName = &v
6204	return s
6205}
6206
6207// SetUpdateId sets the UpdateId field's value.
6208func (s *DescribeUpdateInput) SetUpdateId(v string) *DescribeUpdateInput {
6209	s.UpdateId = &v
6210	return s
6211}
6212
6213type DescribeUpdateOutput struct {
6214	_ struct{} `type:"structure"`
6215
6216	// The full description of the specified update.
6217	Update *Update `locationName:"update" type:"structure"`
6218}
6219
6220// String returns the string representation
6221func (s DescribeUpdateOutput) String() string {
6222	return awsutil.Prettify(s)
6223}
6224
6225// GoString returns the string representation
6226func (s DescribeUpdateOutput) GoString() string {
6227	return s.String()
6228}
6229
6230// SetUpdate sets the Update field's value.
6231func (s *DescribeUpdateOutput) SetUpdate(v *Update) *DescribeUpdateOutput {
6232	s.Update = v
6233	return s
6234}
6235
6236type DisassociateIdentityProviderConfigInput struct {
6237	_ struct{} `type:"structure"`
6238
6239	// A unique, case-sensitive identifier that you provide to ensure the idempotency
6240	// of the request.
6241	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
6242
6243	// The name of the cluster to disassociate an identity provider from.
6244	//
6245	// ClusterName is a required field
6246	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
6247
6248	// An object that represents an identity provider configuration.
6249	//
6250	// IdentityProviderConfig is a required field
6251	IdentityProviderConfig *IdentityProviderConfig `locationName:"identityProviderConfig" type:"structure" required:"true"`
6252}
6253
6254// String returns the string representation
6255func (s DisassociateIdentityProviderConfigInput) String() string {
6256	return awsutil.Prettify(s)
6257}
6258
6259// GoString returns the string representation
6260func (s DisassociateIdentityProviderConfigInput) GoString() string {
6261	return s.String()
6262}
6263
6264// Validate inspects the fields of the type to determine if they are valid.
6265func (s *DisassociateIdentityProviderConfigInput) Validate() error {
6266	invalidParams := request.ErrInvalidParams{Context: "DisassociateIdentityProviderConfigInput"}
6267	if s.ClusterName == nil {
6268		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
6269	}
6270	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
6271		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
6272	}
6273	if s.IdentityProviderConfig == nil {
6274		invalidParams.Add(request.NewErrParamRequired("IdentityProviderConfig"))
6275	}
6276	if s.IdentityProviderConfig != nil {
6277		if err := s.IdentityProviderConfig.Validate(); err != nil {
6278			invalidParams.AddNested("IdentityProviderConfig", err.(request.ErrInvalidParams))
6279		}
6280	}
6281
6282	if invalidParams.Len() > 0 {
6283		return invalidParams
6284	}
6285	return nil
6286}
6287
6288// SetClientRequestToken sets the ClientRequestToken field's value.
6289func (s *DisassociateIdentityProviderConfigInput) SetClientRequestToken(v string) *DisassociateIdentityProviderConfigInput {
6290	s.ClientRequestToken = &v
6291	return s
6292}
6293
6294// SetClusterName sets the ClusterName field's value.
6295func (s *DisassociateIdentityProviderConfigInput) SetClusterName(v string) *DisassociateIdentityProviderConfigInput {
6296	s.ClusterName = &v
6297	return s
6298}
6299
6300// SetIdentityProviderConfig sets the IdentityProviderConfig field's value.
6301func (s *DisassociateIdentityProviderConfigInput) SetIdentityProviderConfig(v *IdentityProviderConfig) *DisassociateIdentityProviderConfigInput {
6302	s.IdentityProviderConfig = v
6303	return s
6304}
6305
6306type DisassociateIdentityProviderConfigOutput struct {
6307	_ struct{} `type:"structure"`
6308
6309	// An object representing an asynchronous update.
6310	Update *Update `locationName:"update" type:"structure"`
6311}
6312
6313// String returns the string representation
6314func (s DisassociateIdentityProviderConfigOutput) String() string {
6315	return awsutil.Prettify(s)
6316}
6317
6318// GoString returns the string representation
6319func (s DisassociateIdentityProviderConfigOutput) GoString() string {
6320	return s.String()
6321}
6322
6323// SetUpdate sets the Update field's value.
6324func (s *DisassociateIdentityProviderConfigOutput) SetUpdate(v *Update) *DisassociateIdentityProviderConfigOutput {
6325	s.Update = v
6326	return s
6327}
6328
6329// The encryption configuration for the cluster.
6330type EncryptionConfig struct {
6331	_ struct{} `type:"structure"`
6332
6333	// Key Management Service (KMS) key. Either the ARN or the alias can be used.
6334	Provider *Provider `locationName:"provider" type:"structure"`
6335
6336	// Specifies the resources to be encrypted. The only supported value is "secrets".
6337	Resources []*string `locationName:"resources" type:"list"`
6338}
6339
6340// String returns the string representation
6341func (s EncryptionConfig) String() string {
6342	return awsutil.Prettify(s)
6343}
6344
6345// GoString returns the string representation
6346func (s EncryptionConfig) GoString() string {
6347	return s.String()
6348}
6349
6350// SetProvider sets the Provider field's value.
6351func (s *EncryptionConfig) SetProvider(v *Provider) *EncryptionConfig {
6352	s.Provider = v
6353	return s
6354}
6355
6356// SetResources sets the Resources field's value.
6357func (s *EncryptionConfig) SetResources(v []*string) *EncryptionConfig {
6358	s.Resources = v
6359	return s
6360}
6361
6362// An object representing an error when an asynchronous operation fails.
6363type ErrorDetail struct {
6364	_ struct{} `type:"structure"`
6365
6366	// A brief description of the error.
6367	//
6368	//    * SubnetNotFound: We couldn't find one of the subnets associated with
6369	//    the cluster.
6370	//
6371	//    * SecurityGroupNotFound: We couldn't find one of the security groups associated
6372	//    with the cluster.
6373	//
6374	//    * EniLimitReached: You have reached the elastic network interface limit
6375	//    for your account.
6376	//
6377	//    * IpNotAvailable: A subnet associated with the cluster doesn't have any
6378	//    free IP addresses.
6379	//
6380	//    * AccessDenied: You don't have permissions to perform the specified operation.
6381	//
6382	//    * OperationNotPermitted: The service role associated with the cluster
6383	//    doesn't have the required access permissions for Amazon EKS.
6384	//
6385	//    * VpcIdNotFound: We couldn't find the VPC associated with the cluster.
6386	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
6387
6388	// A more complete description of the error.
6389	ErrorMessage *string `locationName:"errorMessage" type:"string"`
6390
6391	// An optional field that contains the resource IDs associated with the error.
6392	ResourceIds []*string `locationName:"resourceIds" type:"list"`
6393}
6394
6395// String returns the string representation
6396func (s ErrorDetail) String() string {
6397	return awsutil.Prettify(s)
6398}
6399
6400// GoString returns the string representation
6401func (s ErrorDetail) GoString() string {
6402	return s.String()
6403}
6404
6405// SetErrorCode sets the ErrorCode field's value.
6406func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail {
6407	s.ErrorCode = &v
6408	return s
6409}
6410
6411// SetErrorMessage sets the ErrorMessage field's value.
6412func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail {
6413	s.ErrorMessage = &v
6414	return s
6415}
6416
6417// SetResourceIds sets the ResourceIds field's value.
6418func (s *ErrorDetail) SetResourceIds(v []*string) *ErrorDetail {
6419	s.ResourceIds = v
6420	return s
6421}
6422
6423// An object representing an Fargate profile.
6424type FargateProfile struct {
6425	_ struct{} `type:"structure"`
6426
6427	// The name of the Amazon EKS cluster that the Fargate profile belongs to.
6428	ClusterName *string `locationName:"clusterName" type:"string"`
6429
6430	// The Unix epoch timestamp in seconds for when the Fargate profile was created.
6431	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
6432
6433	// The full Amazon Resource Name (ARN) of the Fargate profile.
6434	FargateProfileArn *string `locationName:"fargateProfileArn" type:"string"`
6435
6436	// The name of the Fargate profile.
6437	FargateProfileName *string `locationName:"fargateProfileName" type:"string"`
6438
6439	// The Amazon Resource Name (ARN) of the pod execution role to use for pods
6440	// that match the selectors in the Fargate profile. For more information, see
6441	// Pod Execution Role (https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html)
6442	// in the Amazon EKS User Guide.
6443	PodExecutionRoleArn *string `locationName:"podExecutionRoleArn" type:"string"`
6444
6445	// The selectors to match for pods to use this Fargate profile.
6446	Selectors []*FargateProfileSelector `locationName:"selectors" type:"list"`
6447
6448	// The current status of the Fargate profile.
6449	Status *string `locationName:"status" type:"string" enum:"FargateProfileStatus"`
6450
6451	// The IDs of subnets to launch pods into.
6452	Subnets []*string `locationName:"subnets" type:"list"`
6453
6454	// The metadata applied to the Fargate profile to assist with categorization
6455	// and organization. Each tag consists of a key and an optional value, both
6456	// of which you define. Fargate profile tags do not propagate to any other resources
6457	// associated with the Fargate profile, such as the pods that are scheduled
6458	// with it.
6459	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
6460}
6461
6462// String returns the string representation
6463func (s FargateProfile) String() string {
6464	return awsutil.Prettify(s)
6465}
6466
6467// GoString returns the string representation
6468func (s FargateProfile) GoString() string {
6469	return s.String()
6470}
6471
6472// SetClusterName sets the ClusterName field's value.
6473func (s *FargateProfile) SetClusterName(v string) *FargateProfile {
6474	s.ClusterName = &v
6475	return s
6476}
6477
6478// SetCreatedAt sets the CreatedAt field's value.
6479func (s *FargateProfile) SetCreatedAt(v time.Time) *FargateProfile {
6480	s.CreatedAt = &v
6481	return s
6482}
6483
6484// SetFargateProfileArn sets the FargateProfileArn field's value.
6485func (s *FargateProfile) SetFargateProfileArn(v string) *FargateProfile {
6486	s.FargateProfileArn = &v
6487	return s
6488}
6489
6490// SetFargateProfileName sets the FargateProfileName field's value.
6491func (s *FargateProfile) SetFargateProfileName(v string) *FargateProfile {
6492	s.FargateProfileName = &v
6493	return s
6494}
6495
6496// SetPodExecutionRoleArn sets the PodExecutionRoleArn field's value.
6497func (s *FargateProfile) SetPodExecutionRoleArn(v string) *FargateProfile {
6498	s.PodExecutionRoleArn = &v
6499	return s
6500}
6501
6502// SetSelectors sets the Selectors field's value.
6503func (s *FargateProfile) SetSelectors(v []*FargateProfileSelector) *FargateProfile {
6504	s.Selectors = v
6505	return s
6506}
6507
6508// SetStatus sets the Status field's value.
6509func (s *FargateProfile) SetStatus(v string) *FargateProfile {
6510	s.Status = &v
6511	return s
6512}
6513
6514// SetSubnets sets the Subnets field's value.
6515func (s *FargateProfile) SetSubnets(v []*string) *FargateProfile {
6516	s.Subnets = v
6517	return s
6518}
6519
6520// SetTags sets the Tags field's value.
6521func (s *FargateProfile) SetTags(v map[string]*string) *FargateProfile {
6522	s.Tags = v
6523	return s
6524}
6525
6526// An object representing an Fargate profile selector.
6527type FargateProfileSelector struct {
6528	_ struct{} `type:"structure"`
6529
6530	// The Kubernetes labels that the selector should match. A pod must contain
6531	// all of the labels that are specified in the selector for it to be considered
6532	// a match.
6533	Labels map[string]*string `locationName:"labels" type:"map"`
6534
6535	// The Kubernetes namespace that the selector should match.
6536	Namespace *string `locationName:"namespace" type:"string"`
6537}
6538
6539// String returns the string representation
6540func (s FargateProfileSelector) String() string {
6541	return awsutil.Prettify(s)
6542}
6543
6544// GoString returns the string representation
6545func (s FargateProfileSelector) GoString() string {
6546	return s.String()
6547}
6548
6549// SetLabels sets the Labels field's value.
6550func (s *FargateProfileSelector) SetLabels(v map[string]*string) *FargateProfileSelector {
6551	s.Labels = v
6552	return s
6553}
6554
6555// SetNamespace sets the Namespace field's value.
6556func (s *FargateProfileSelector) SetNamespace(v string) *FargateProfileSelector {
6557	s.Namespace = &v
6558	return s
6559}
6560
6561// An object representing an identity provider.
6562type Identity struct {
6563	_ struct{} `type:"structure"`
6564
6565	// An object representing the OpenID Connect (https://openid.net/connect/) identity
6566	// provider information.
6567	Oidc *OIDC `locationName:"oidc" type:"structure"`
6568}
6569
6570// String returns the string representation
6571func (s Identity) String() string {
6572	return awsutil.Prettify(s)
6573}
6574
6575// GoString returns the string representation
6576func (s Identity) GoString() string {
6577	return s.String()
6578}
6579
6580// SetOidc sets the Oidc field's value.
6581func (s *Identity) SetOidc(v *OIDC) *Identity {
6582	s.Oidc = v
6583	return s
6584}
6585
6586// An object representing an identity provider configuration.
6587type IdentityProviderConfig struct {
6588	_ struct{} `type:"structure"`
6589
6590	// The name of the identity provider configuration.
6591	//
6592	// Name is a required field
6593	Name *string `locationName:"name" type:"string" required:"true"`
6594
6595	// The type of the identity provider configuration.
6596	//
6597	// Type is a required field
6598	Type *string `locationName:"type" type:"string" required:"true"`
6599}
6600
6601// String returns the string representation
6602func (s IdentityProviderConfig) String() string {
6603	return awsutil.Prettify(s)
6604}
6605
6606// GoString returns the string representation
6607func (s IdentityProviderConfig) GoString() string {
6608	return s.String()
6609}
6610
6611// Validate inspects the fields of the type to determine if they are valid.
6612func (s *IdentityProviderConfig) Validate() error {
6613	invalidParams := request.ErrInvalidParams{Context: "IdentityProviderConfig"}
6614	if s.Name == nil {
6615		invalidParams.Add(request.NewErrParamRequired("Name"))
6616	}
6617	if s.Type == nil {
6618		invalidParams.Add(request.NewErrParamRequired("Type"))
6619	}
6620
6621	if invalidParams.Len() > 0 {
6622		return invalidParams
6623	}
6624	return nil
6625}
6626
6627// SetName sets the Name field's value.
6628func (s *IdentityProviderConfig) SetName(v string) *IdentityProviderConfig {
6629	s.Name = &v
6630	return s
6631}
6632
6633// SetType sets the Type field's value.
6634func (s *IdentityProviderConfig) SetType(v string) *IdentityProviderConfig {
6635	s.Type = &v
6636	return s
6637}
6638
6639// An object that represents an identity configuration.
6640type IdentityProviderConfigResponse struct {
6641	_ struct{} `type:"structure"`
6642
6643	// An object that represents an OpenID Connect (OIDC) identity provider configuration.
6644	Oidc *OidcIdentityProviderConfig `locationName:"oidc" type:"structure"`
6645}
6646
6647// String returns the string representation
6648func (s IdentityProviderConfigResponse) String() string {
6649	return awsutil.Prettify(s)
6650}
6651
6652// GoString returns the string representation
6653func (s IdentityProviderConfigResponse) GoString() string {
6654	return s.String()
6655}
6656
6657// SetOidc sets the Oidc field's value.
6658func (s *IdentityProviderConfigResponse) SetOidc(v *OidcIdentityProviderConfig) *IdentityProviderConfigResponse {
6659	s.Oidc = v
6660	return s
6661}
6662
6663// The specified parameter is invalid. Review the available parameters for the
6664// API request.
6665type InvalidParameterException struct {
6666	_            struct{}                  `type:"structure"`
6667	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6668
6669	AddonName *string `locationName:"addonName" type:"string"`
6670
6671	// The Amazon EKS cluster associated with the exception.
6672	ClusterName *string `locationName:"clusterName" type:"string"`
6673
6674	// The Fargate profile associated with the exception.
6675	FargateProfileName *string `locationName:"fargateProfileName" type:"string"`
6676
6677	Message_ *string `locationName:"message" type:"string"`
6678
6679	// The Amazon EKS managed node group associated with the exception.
6680	NodegroupName *string `locationName:"nodegroupName" type:"string"`
6681}
6682
6683// String returns the string representation
6684func (s InvalidParameterException) String() string {
6685	return awsutil.Prettify(s)
6686}
6687
6688// GoString returns the string representation
6689func (s InvalidParameterException) GoString() string {
6690	return s.String()
6691}
6692
6693func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
6694	return &InvalidParameterException{
6695		RespMetadata: v,
6696	}
6697}
6698
6699// Code returns the exception type name.
6700func (s *InvalidParameterException) Code() string {
6701	return "InvalidParameterException"
6702}
6703
6704// Message returns the exception's message.
6705func (s *InvalidParameterException) Message() string {
6706	if s.Message_ != nil {
6707		return *s.Message_
6708	}
6709	return ""
6710}
6711
6712// OrigErr always returns nil, satisfies awserr.Error interface.
6713func (s *InvalidParameterException) OrigErr() error {
6714	return nil
6715}
6716
6717func (s *InvalidParameterException) Error() string {
6718	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6719}
6720
6721// Status code returns the HTTP status code for the request's response error.
6722func (s *InvalidParameterException) StatusCode() int {
6723	return s.RespMetadata.StatusCode
6724}
6725
6726// RequestID returns the service's response RequestID for request.
6727func (s *InvalidParameterException) RequestID() string {
6728	return s.RespMetadata.RequestID
6729}
6730
6731// The request is invalid given the state of the cluster. Check the state of
6732// the cluster and the associated operations.
6733type InvalidRequestException struct {
6734	_            struct{}                  `type:"structure"`
6735	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6736
6737	AddonName *string `locationName:"addonName" type:"string"`
6738
6739	// The Amazon EKS cluster associated with the exception.
6740	ClusterName *string `locationName:"clusterName" type:"string"`
6741
6742	Message_ *string `locationName:"message" type:"string"`
6743
6744	// The Amazon EKS managed node group associated with the exception.
6745	NodegroupName *string `locationName:"nodegroupName" type:"string"`
6746}
6747
6748// String returns the string representation
6749func (s InvalidRequestException) String() string {
6750	return awsutil.Prettify(s)
6751}
6752
6753// GoString returns the string representation
6754func (s InvalidRequestException) GoString() string {
6755	return s.String()
6756}
6757
6758func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
6759	return &InvalidRequestException{
6760		RespMetadata: v,
6761	}
6762}
6763
6764// Code returns the exception type name.
6765func (s *InvalidRequestException) Code() string {
6766	return "InvalidRequestException"
6767}
6768
6769// Message returns the exception's message.
6770func (s *InvalidRequestException) Message() string {
6771	if s.Message_ != nil {
6772		return *s.Message_
6773	}
6774	return ""
6775}
6776
6777// OrigErr always returns nil, satisfies awserr.Error interface.
6778func (s *InvalidRequestException) OrigErr() error {
6779	return nil
6780}
6781
6782func (s *InvalidRequestException) Error() string {
6783	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6784}
6785
6786// Status code returns the HTTP status code for the request's response error.
6787func (s *InvalidRequestException) StatusCode() int {
6788	return s.RespMetadata.StatusCode
6789}
6790
6791// RequestID returns the service's response RequestID for request.
6792func (s *InvalidRequestException) RequestID() string {
6793	return s.RespMetadata.RequestID
6794}
6795
6796// An object representing an issue with an Amazon EKS resource.
6797type Issue struct {
6798	_ struct{} `type:"structure"`
6799
6800	// A brief description of the error.
6801	//
6802	//    * AccessDenied: Amazon EKS or one or more of your managed nodes is failing
6803	//    to authenticate or authorize with your Kubernetes cluster API server.
6804	//
6805	//    * AsgInstanceLaunchFailures: Your Auto Scaling group is experiencing failures
6806	//    while attempting to launch instances.
6807	//
6808	//    * AutoScalingGroupNotFound: We couldn't find the Auto Scaling group associated
6809	//    with the managed node group. You may be able to recreate an Auto Scaling
6810	//    group with the same settings to recover.
6811	//
6812	//    * ClusterUnreachable: Amazon EKS or one or more of your managed nodes
6813	//    is unable to to communicate with your Kubernetes cluster API server. This
6814	//    can happen if there are network disruptions or if API servers are timing
6815	//    out processing requests.
6816	//
6817	//    * Ec2LaunchTemplateNotFound: We couldn't find the Amazon EC2 launch template
6818	//    for your managed node group. You may be able to recreate a launch template
6819	//    with the same settings to recover.
6820	//
6821	//    * Ec2LaunchTemplateVersionMismatch: The Amazon EC2 launch template version
6822	//    for your managed node group does not match the version that Amazon EKS
6823	//    created. You may be able to revert to the version that Amazon EKS created
6824	//    to recover.
6825	//
6826	//    * Ec2SecurityGroupDeletionFailure: We could not delete the remote access
6827	//    security group for your managed node group. Remove any dependencies from
6828	//    the security group.
6829	//
6830	//    * Ec2SecurityGroupNotFound: We couldn't find the cluster security group
6831	//    for the cluster. You must recreate your cluster.
6832	//
6833	//    * Ec2SubnetInvalidConfiguration: One or more Amazon EC2 subnets specified
6834	//    for a node group do not automatically assign public IP addresses to instances
6835	//    launched into it. If you want your instances to be assigned a public IP
6836	//    address, then you need to enable the auto-assign public IP address setting
6837	//    for the subnet. See Modifying the public IPv4 addressing attribute for
6838	//    your subnet (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip)
6839	//    in the Amazon VPC User Guide.
6840	//
6841	//    * IamInstanceProfileNotFound: We couldn't find the IAM instance profile
6842	//    for your managed node group. You may be able to recreate an instance profile
6843	//    with the same settings to recover.
6844	//
6845	//    * IamNodeRoleNotFound: We couldn't find the IAM role for your managed
6846	//    node group. You may be able to recreate an IAM role with the same settings
6847	//    to recover.
6848	//
6849	//    * InstanceLimitExceeded: Your Amazon Web Services account is unable to
6850	//    launch any more instances of the specified instance type. You may be able
6851	//    to request an Amazon EC2 instance limit increase to recover.
6852	//
6853	//    * InsufficientFreeAddresses: One or more of the subnets associated with
6854	//    your managed node group does not have enough available IP addresses for
6855	//    new nodes.
6856	//
6857	//    * InternalFailure: These errors are usually caused by an Amazon EKS server-side
6858	//    issue.
6859	//
6860	//    * NodeCreationFailure: Your launched instances are unable to register
6861	//    with your Amazon EKS cluster. Common causes of this failure are insufficient
6862	//    node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html)
6863	//    permissions or lack of outbound internet access for the nodes.
6864	Code *string `locationName:"code" type:"string" enum:"NodegroupIssueCode"`
6865
6866	// The error message associated with the issue.
6867	Message *string `locationName:"message" type:"string"`
6868
6869	// The Amazon Web Services resources that are afflicted by this issue.
6870	ResourceIds []*string `locationName:"resourceIds" type:"list"`
6871}
6872
6873// String returns the string representation
6874func (s Issue) String() string {
6875	return awsutil.Prettify(s)
6876}
6877
6878// GoString returns the string representation
6879func (s Issue) GoString() string {
6880	return s.String()
6881}
6882
6883// SetCode sets the Code field's value.
6884func (s *Issue) SetCode(v string) *Issue {
6885	s.Code = &v
6886	return s
6887}
6888
6889// SetMessage sets the Message field's value.
6890func (s *Issue) SetMessage(v string) *Issue {
6891	s.Message = &v
6892	return s
6893}
6894
6895// SetResourceIds sets the ResourceIds field's value.
6896func (s *Issue) SetResourceIds(v []*string) *Issue {
6897	s.ResourceIds = v
6898	return s
6899}
6900
6901// The Kubernetes network configuration for the cluster.
6902type KubernetesNetworkConfigRequest struct {
6903	_ struct{} `type:"structure"`
6904
6905	// The CIDR block to assign Kubernetes service IP addresses from. If you don't
6906	// specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16
6907	// or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that
6908	// does not overlap with resources in other networks that are peered or connected
6909	// to your VPC. The block must meet the following requirements:
6910	//
6911	//    * Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0.0/12,
6912	//    or 192.168.0.0/16.
6913	//
6914	//    * Doesn't overlap with any CIDR block assigned to the VPC that you selected
6915	//    for VPC.
6916	//
6917	//    * Between /24 and /12.
6918	//
6919	// You can only specify a custom CIDR block when you create a cluster and can't
6920	// change this value once the cluster is created.
6921	ServiceIpv4Cidr *string `locationName:"serviceIpv4Cidr" type:"string"`
6922}
6923
6924// String returns the string representation
6925func (s KubernetesNetworkConfigRequest) String() string {
6926	return awsutil.Prettify(s)
6927}
6928
6929// GoString returns the string representation
6930func (s KubernetesNetworkConfigRequest) GoString() string {
6931	return s.String()
6932}
6933
6934// SetServiceIpv4Cidr sets the ServiceIpv4Cidr field's value.
6935func (s *KubernetesNetworkConfigRequest) SetServiceIpv4Cidr(v string) *KubernetesNetworkConfigRequest {
6936	s.ServiceIpv4Cidr = &v
6937	return s
6938}
6939
6940// The Kubernetes network configuration for the cluster.
6941type KubernetesNetworkConfigResponse struct {
6942	_ struct{} `type:"structure"`
6943
6944	// The CIDR block that Kubernetes service IP addresses are assigned from. If
6945	// you didn't specify a CIDR block when you created the cluster, then Kubernetes
6946	// assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks.
6947	// If this was specified, then it was specified when the cluster was created
6948	// and it cannot be changed.
6949	ServiceIpv4Cidr *string `locationName:"serviceIpv4Cidr" type:"string"`
6950}
6951
6952// String returns the string representation
6953func (s KubernetesNetworkConfigResponse) String() string {
6954	return awsutil.Prettify(s)
6955}
6956
6957// GoString returns the string representation
6958func (s KubernetesNetworkConfigResponse) GoString() string {
6959	return s.String()
6960}
6961
6962// SetServiceIpv4Cidr sets the ServiceIpv4Cidr field's value.
6963func (s *KubernetesNetworkConfigResponse) SetServiceIpv4Cidr(v string) *KubernetesNetworkConfigResponse {
6964	s.ServiceIpv4Cidr = &v
6965	return s
6966}
6967
6968// An object representing a node group launch template specification. The launch
6969// template cannot include SubnetId (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html),
6970// IamInstanceProfile (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html),
6971// RequestSpotInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html),
6972// HibernationOptions (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html),
6973// or TerminateInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html),
6974// or the node group deployment or update will fail. For more information about
6975// launch templates, see CreateLaunchTemplate (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html)
6976// in the Amazon EC2 API Reference. For more information about using launch
6977// templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
6978// in the Amazon EKS User Guide.
6979//
6980// Specify either name or id, but not both.
6981type LaunchTemplateSpecification struct {
6982	_ struct{} `type:"structure"`
6983
6984	// The ID of the launch template.
6985	Id *string `locationName:"id" type:"string"`
6986
6987	// The name of the launch template.
6988	Name *string `locationName:"name" type:"string"`
6989
6990	// The version of the launch template to use. If no version is specified, then
6991	// the template's default version is used.
6992	Version *string `locationName:"version" type:"string"`
6993}
6994
6995// String returns the string representation
6996func (s LaunchTemplateSpecification) String() string {
6997	return awsutil.Prettify(s)
6998}
6999
7000// GoString returns the string representation
7001func (s LaunchTemplateSpecification) GoString() string {
7002	return s.String()
7003}
7004
7005// SetId sets the Id field's value.
7006func (s *LaunchTemplateSpecification) SetId(v string) *LaunchTemplateSpecification {
7007	s.Id = &v
7008	return s
7009}
7010
7011// SetName sets the Name field's value.
7012func (s *LaunchTemplateSpecification) SetName(v string) *LaunchTemplateSpecification {
7013	s.Name = &v
7014	return s
7015}
7016
7017// SetVersion sets the Version field's value.
7018func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification {
7019	s.Version = &v
7020	return s
7021}
7022
7023type ListAddonsInput struct {
7024	_ struct{} `type:"structure"`
7025
7026	// The name of the cluster.
7027	//
7028	// ClusterName is a required field
7029	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
7030
7031	// The maximum number of add-on results returned by ListAddonsRequest in paginated
7032	// output. When you use this parameter, ListAddonsRequest returns only maxResults
7033	// results in a single page along with a nextToken response element. You can
7034	// see the remaining results of the initial request by sending another ListAddonsRequest
7035	// request with the returned nextToken value. This value can be between 1 and
7036	// 100. If you don't use this parameter, ListAddonsRequest returns up to 100
7037	// results and a nextToken value, if applicable.
7038	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7039
7040	// The nextToken value returned from a previous paginated ListAddonsRequest
7041	// where maxResults was used and the results exceeded the value of that parameter.
7042	// Pagination continues from the end of the previous results that returned the
7043	// nextToken value.
7044	//
7045	// This token should be treated as an opaque identifier that is used only to
7046	// retrieve the next items in a list and not for other programmatic purposes.
7047	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7048}
7049
7050// String returns the string representation
7051func (s ListAddonsInput) String() string {
7052	return awsutil.Prettify(s)
7053}
7054
7055// GoString returns the string representation
7056func (s ListAddonsInput) GoString() string {
7057	return s.String()
7058}
7059
7060// Validate inspects the fields of the type to determine if they are valid.
7061func (s *ListAddonsInput) Validate() error {
7062	invalidParams := request.ErrInvalidParams{Context: "ListAddonsInput"}
7063	if s.ClusterName == nil {
7064		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
7065	}
7066	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
7067		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
7068	}
7069	if s.MaxResults != nil && *s.MaxResults < 1 {
7070		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7071	}
7072
7073	if invalidParams.Len() > 0 {
7074		return invalidParams
7075	}
7076	return nil
7077}
7078
7079// SetClusterName sets the ClusterName field's value.
7080func (s *ListAddonsInput) SetClusterName(v string) *ListAddonsInput {
7081	s.ClusterName = &v
7082	return s
7083}
7084
7085// SetMaxResults sets the MaxResults field's value.
7086func (s *ListAddonsInput) SetMaxResults(v int64) *ListAddonsInput {
7087	s.MaxResults = &v
7088	return s
7089}
7090
7091// SetNextToken sets the NextToken field's value.
7092func (s *ListAddonsInput) SetNextToken(v string) *ListAddonsInput {
7093	s.NextToken = &v
7094	return s
7095}
7096
7097type ListAddonsOutput struct {
7098	_ struct{} `type:"structure"`
7099
7100	// A list of available add-ons.
7101	Addons []*string `locationName:"addons" type:"list"`
7102
7103	// The nextToken value returned from a previous paginated ListAddonsResponse
7104	// where maxResults was used and the results exceeded the value of that parameter.
7105	// Pagination continues from the end of the previous results that returned the
7106	// nextToken value.
7107	//
7108	// This token should be treated as an opaque identifier that is used only to
7109	// retrieve the next items in a list and not for other programmatic purposes.
7110	NextToken *string `locationName:"nextToken" type:"string"`
7111}
7112
7113// String returns the string representation
7114func (s ListAddonsOutput) String() string {
7115	return awsutil.Prettify(s)
7116}
7117
7118// GoString returns the string representation
7119func (s ListAddonsOutput) GoString() string {
7120	return s.String()
7121}
7122
7123// SetAddons sets the Addons field's value.
7124func (s *ListAddonsOutput) SetAddons(v []*string) *ListAddonsOutput {
7125	s.Addons = v
7126	return s
7127}
7128
7129// SetNextToken sets the NextToken field's value.
7130func (s *ListAddonsOutput) SetNextToken(v string) *ListAddonsOutput {
7131	s.NextToken = &v
7132	return s
7133}
7134
7135type ListClustersInput struct {
7136	_ struct{} `type:"structure"`
7137
7138	// The maximum number of cluster results returned by ListClusters in paginated
7139	// output. When you use this parameter, ListClusters returns only maxResults
7140	// results in a single page along with a nextToken response element. You can
7141	// see the remaining results of the initial request by sending another ListClusters
7142	// request with the returned nextToken value. This value can be between 1 and
7143	// 100. If you don't use this parameter, ListClusters returns up to 100 results
7144	// and a nextToken value if applicable.
7145	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7146
7147	// The nextToken value returned from a previous paginated ListClusters request
7148	// where maxResults was used and the results exceeded the value of that parameter.
7149	// Pagination continues from the end of the previous results that returned the
7150	// nextToken value.
7151	//
7152	// This token should be treated as an opaque identifier that is used only to
7153	// retrieve the next items in a list and not for other programmatic purposes.
7154	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7155}
7156
7157// String returns the string representation
7158func (s ListClustersInput) String() string {
7159	return awsutil.Prettify(s)
7160}
7161
7162// GoString returns the string representation
7163func (s ListClustersInput) GoString() string {
7164	return s.String()
7165}
7166
7167// Validate inspects the fields of the type to determine if they are valid.
7168func (s *ListClustersInput) Validate() error {
7169	invalidParams := request.ErrInvalidParams{Context: "ListClustersInput"}
7170	if s.MaxResults != nil && *s.MaxResults < 1 {
7171		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7172	}
7173
7174	if invalidParams.Len() > 0 {
7175		return invalidParams
7176	}
7177	return nil
7178}
7179
7180// SetMaxResults sets the MaxResults field's value.
7181func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
7182	s.MaxResults = &v
7183	return s
7184}
7185
7186// SetNextToken sets the NextToken field's value.
7187func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
7188	s.NextToken = &v
7189	return s
7190}
7191
7192type ListClustersOutput struct {
7193	_ struct{} `type:"structure"`
7194
7195	// A list of all of the clusters for your account in the specified Region.
7196	Clusters []*string `locationName:"clusters" type:"list"`
7197
7198	// The nextToken value to include in a future ListClusters request. When the
7199	// results of a ListClusters request exceed maxResults, you can use this value
7200	// to retrieve the next page of results. This value is null when there are no
7201	// more results to return.
7202	NextToken *string `locationName:"nextToken" type:"string"`
7203}
7204
7205// String returns the string representation
7206func (s ListClustersOutput) String() string {
7207	return awsutil.Prettify(s)
7208}
7209
7210// GoString returns the string representation
7211func (s ListClustersOutput) GoString() string {
7212	return s.String()
7213}
7214
7215// SetClusters sets the Clusters field's value.
7216func (s *ListClustersOutput) SetClusters(v []*string) *ListClustersOutput {
7217	s.Clusters = v
7218	return s
7219}
7220
7221// SetNextToken sets the NextToken field's value.
7222func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
7223	s.NextToken = &v
7224	return s
7225}
7226
7227type ListFargateProfilesInput struct {
7228	_ struct{} `type:"structure"`
7229
7230	// The name of the Amazon EKS cluster that you would like to list Fargate profiles
7231	// in.
7232	//
7233	// ClusterName is a required field
7234	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
7235
7236	// The maximum number of Fargate profile results returned by ListFargateProfiles
7237	// in paginated output. When you use this parameter, ListFargateProfiles returns
7238	// only maxResults results in a single page along with a nextToken response
7239	// element. You can see the remaining results of the initial request by sending
7240	// another ListFargateProfiles request with the returned nextToken value. This
7241	// value can be between 1 and 100. If you don't use this parameter, ListFargateProfiles
7242	// returns up to 100 results and a nextToken value if applicable.
7243	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7244
7245	// The nextToken value returned from a previous paginated ListFargateProfiles
7246	// request where maxResults was used and the results exceeded the value of that
7247	// parameter. Pagination continues from the end of the previous results that
7248	// returned the nextToken value.
7249	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7250}
7251
7252// String returns the string representation
7253func (s ListFargateProfilesInput) String() string {
7254	return awsutil.Prettify(s)
7255}
7256
7257// GoString returns the string representation
7258func (s ListFargateProfilesInput) GoString() string {
7259	return s.String()
7260}
7261
7262// Validate inspects the fields of the type to determine if they are valid.
7263func (s *ListFargateProfilesInput) Validate() error {
7264	invalidParams := request.ErrInvalidParams{Context: "ListFargateProfilesInput"}
7265	if s.ClusterName == nil {
7266		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
7267	}
7268	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
7269		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
7270	}
7271	if s.MaxResults != nil && *s.MaxResults < 1 {
7272		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7273	}
7274
7275	if invalidParams.Len() > 0 {
7276		return invalidParams
7277	}
7278	return nil
7279}
7280
7281// SetClusterName sets the ClusterName field's value.
7282func (s *ListFargateProfilesInput) SetClusterName(v string) *ListFargateProfilesInput {
7283	s.ClusterName = &v
7284	return s
7285}
7286
7287// SetMaxResults sets the MaxResults field's value.
7288func (s *ListFargateProfilesInput) SetMaxResults(v int64) *ListFargateProfilesInput {
7289	s.MaxResults = &v
7290	return s
7291}
7292
7293// SetNextToken sets the NextToken field's value.
7294func (s *ListFargateProfilesInput) SetNextToken(v string) *ListFargateProfilesInput {
7295	s.NextToken = &v
7296	return s
7297}
7298
7299type ListFargateProfilesOutput struct {
7300	_ struct{} `type:"structure"`
7301
7302	// A list of all of the Fargate profiles associated with the specified cluster.
7303	FargateProfileNames []*string `locationName:"fargateProfileNames" type:"list"`
7304
7305	// The nextToken value to include in a future ListFargateProfiles request. When
7306	// the results of a ListFargateProfiles request exceed maxResults, you can use
7307	// this value to retrieve the next page of results. This value is null when
7308	// there are no more results to return.
7309	NextToken *string `locationName:"nextToken" type:"string"`
7310}
7311
7312// String returns the string representation
7313func (s ListFargateProfilesOutput) String() string {
7314	return awsutil.Prettify(s)
7315}
7316
7317// GoString returns the string representation
7318func (s ListFargateProfilesOutput) GoString() string {
7319	return s.String()
7320}
7321
7322// SetFargateProfileNames sets the FargateProfileNames field's value.
7323func (s *ListFargateProfilesOutput) SetFargateProfileNames(v []*string) *ListFargateProfilesOutput {
7324	s.FargateProfileNames = v
7325	return s
7326}
7327
7328// SetNextToken sets the NextToken field's value.
7329func (s *ListFargateProfilesOutput) SetNextToken(v string) *ListFargateProfilesOutput {
7330	s.NextToken = &v
7331	return s
7332}
7333
7334type ListIdentityProviderConfigsInput struct {
7335	_ struct{} `type:"structure"`
7336
7337	// The cluster name that you want to list identity provider configurations for.
7338	//
7339	// ClusterName is a required field
7340	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
7341
7342	// The maximum number of identity provider configurations returned by ListIdentityProviderConfigs
7343	// in paginated output. When you use this parameter, ListIdentityProviderConfigs
7344	// returns only maxResults results in a single page along with a nextToken response
7345	// element. You can see the remaining results of the initial request by sending
7346	// another ListIdentityProviderConfigs request with the returned nextToken value.
7347	// This value can be between 1 and 100. If you don't use this parameter, ListIdentityProviderConfigs
7348	// returns up to 100 results and a nextToken value, if applicable.
7349	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7350
7351	// The nextToken value returned from a previous paginated IdentityProviderConfigsRequest
7352	// where maxResults was used and the results exceeded the value of that parameter.
7353	// Pagination continues from the end of the previous results that returned the
7354	// nextToken value.
7355	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7356}
7357
7358// String returns the string representation
7359func (s ListIdentityProviderConfigsInput) String() string {
7360	return awsutil.Prettify(s)
7361}
7362
7363// GoString returns the string representation
7364func (s ListIdentityProviderConfigsInput) GoString() string {
7365	return s.String()
7366}
7367
7368// Validate inspects the fields of the type to determine if they are valid.
7369func (s *ListIdentityProviderConfigsInput) Validate() error {
7370	invalidParams := request.ErrInvalidParams{Context: "ListIdentityProviderConfigsInput"}
7371	if s.ClusterName == nil {
7372		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
7373	}
7374	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
7375		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
7376	}
7377	if s.MaxResults != nil && *s.MaxResults < 1 {
7378		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7379	}
7380
7381	if invalidParams.Len() > 0 {
7382		return invalidParams
7383	}
7384	return nil
7385}
7386
7387// SetClusterName sets the ClusterName field's value.
7388func (s *ListIdentityProviderConfigsInput) SetClusterName(v string) *ListIdentityProviderConfigsInput {
7389	s.ClusterName = &v
7390	return s
7391}
7392
7393// SetMaxResults sets the MaxResults field's value.
7394func (s *ListIdentityProviderConfigsInput) SetMaxResults(v int64) *ListIdentityProviderConfigsInput {
7395	s.MaxResults = &v
7396	return s
7397}
7398
7399// SetNextToken sets the NextToken field's value.
7400func (s *ListIdentityProviderConfigsInput) SetNextToken(v string) *ListIdentityProviderConfigsInput {
7401	s.NextToken = &v
7402	return s
7403}
7404
7405type ListIdentityProviderConfigsOutput struct {
7406	_ struct{} `type:"structure"`
7407
7408	// The identity provider configurations for the cluster.
7409	IdentityProviderConfigs []*IdentityProviderConfig `locationName:"identityProviderConfigs" type:"list"`
7410
7411	// The nextToken value returned from a previous paginated ListIdentityProviderConfigsResponse
7412	// where maxResults was used and the results exceeded the value of that parameter.
7413	// Pagination continues from the end of the previous results that returned the
7414	// nextToken value.
7415	NextToken *string `locationName:"nextToken" type:"string"`
7416}
7417
7418// String returns the string representation
7419func (s ListIdentityProviderConfigsOutput) String() string {
7420	return awsutil.Prettify(s)
7421}
7422
7423// GoString returns the string representation
7424func (s ListIdentityProviderConfigsOutput) GoString() string {
7425	return s.String()
7426}
7427
7428// SetIdentityProviderConfigs sets the IdentityProviderConfigs field's value.
7429func (s *ListIdentityProviderConfigsOutput) SetIdentityProviderConfigs(v []*IdentityProviderConfig) *ListIdentityProviderConfigsOutput {
7430	s.IdentityProviderConfigs = v
7431	return s
7432}
7433
7434// SetNextToken sets the NextToken field's value.
7435func (s *ListIdentityProviderConfigsOutput) SetNextToken(v string) *ListIdentityProviderConfigsOutput {
7436	s.NextToken = &v
7437	return s
7438}
7439
7440type ListNodegroupsInput struct {
7441	_ struct{} `type:"structure"`
7442
7443	// The name of the Amazon EKS cluster that you would like to list node groups
7444	// in.
7445	//
7446	// ClusterName is a required field
7447	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
7448
7449	// The maximum number of node group results returned by ListNodegroups in paginated
7450	// output. When you use this parameter, ListNodegroups returns only maxResults
7451	// results in a single page along with a nextToken response element. You can
7452	// see the remaining results of the initial request by sending another ListNodegroups
7453	// request with the returned nextToken value. This value can be between 1 and
7454	// 100. If you don't use this parameter, ListNodegroups returns up to 100 results
7455	// and a nextToken value if applicable.
7456	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7457
7458	// The nextToken value returned from a previous paginated ListNodegroups request
7459	// where maxResults was used and the results exceeded the value of that parameter.
7460	// Pagination continues from the end of the previous results that returned the
7461	// nextToken value.
7462	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7463}
7464
7465// String returns the string representation
7466func (s ListNodegroupsInput) String() string {
7467	return awsutil.Prettify(s)
7468}
7469
7470// GoString returns the string representation
7471func (s ListNodegroupsInput) GoString() string {
7472	return s.String()
7473}
7474
7475// Validate inspects the fields of the type to determine if they are valid.
7476func (s *ListNodegroupsInput) Validate() error {
7477	invalidParams := request.ErrInvalidParams{Context: "ListNodegroupsInput"}
7478	if s.ClusterName == nil {
7479		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
7480	}
7481	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
7482		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
7483	}
7484	if s.MaxResults != nil && *s.MaxResults < 1 {
7485		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7486	}
7487
7488	if invalidParams.Len() > 0 {
7489		return invalidParams
7490	}
7491	return nil
7492}
7493
7494// SetClusterName sets the ClusterName field's value.
7495func (s *ListNodegroupsInput) SetClusterName(v string) *ListNodegroupsInput {
7496	s.ClusterName = &v
7497	return s
7498}
7499
7500// SetMaxResults sets the MaxResults field's value.
7501func (s *ListNodegroupsInput) SetMaxResults(v int64) *ListNodegroupsInput {
7502	s.MaxResults = &v
7503	return s
7504}
7505
7506// SetNextToken sets the NextToken field's value.
7507func (s *ListNodegroupsInput) SetNextToken(v string) *ListNodegroupsInput {
7508	s.NextToken = &v
7509	return s
7510}
7511
7512type ListNodegroupsOutput struct {
7513	_ struct{} `type:"structure"`
7514
7515	// The nextToken value to include in a future ListNodegroups request. When the
7516	// results of a ListNodegroups request exceed maxResults, you can use this value
7517	// to retrieve the next page of results. This value is null when there are no
7518	// more results to return.
7519	NextToken *string `locationName:"nextToken" type:"string"`
7520
7521	// A list of all of the node groups associated with the specified cluster.
7522	Nodegroups []*string `locationName:"nodegroups" type:"list"`
7523}
7524
7525// String returns the string representation
7526func (s ListNodegroupsOutput) String() string {
7527	return awsutil.Prettify(s)
7528}
7529
7530// GoString returns the string representation
7531func (s ListNodegroupsOutput) GoString() string {
7532	return s.String()
7533}
7534
7535// SetNextToken sets the NextToken field's value.
7536func (s *ListNodegroupsOutput) SetNextToken(v string) *ListNodegroupsOutput {
7537	s.NextToken = &v
7538	return s
7539}
7540
7541// SetNodegroups sets the Nodegroups field's value.
7542func (s *ListNodegroupsOutput) SetNodegroups(v []*string) *ListNodegroupsOutput {
7543	s.Nodegroups = v
7544	return s
7545}
7546
7547type ListTagsForResourceInput struct {
7548	_ struct{} `type:"structure"`
7549
7550	// The Amazon Resource Name (ARN) that identifies the resource for which to
7551	// list the tags. Currently, the supported resources are Amazon EKS clusters
7552	// and managed node groups.
7553	//
7554	// ResourceArn is a required field
7555	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
7556}
7557
7558// String returns the string representation
7559func (s ListTagsForResourceInput) String() string {
7560	return awsutil.Prettify(s)
7561}
7562
7563// GoString returns the string representation
7564func (s ListTagsForResourceInput) GoString() string {
7565	return s.String()
7566}
7567
7568// Validate inspects the fields of the type to determine if they are valid.
7569func (s *ListTagsForResourceInput) Validate() error {
7570	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
7571	if s.ResourceArn == nil {
7572		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7573	}
7574	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7575		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7576	}
7577
7578	if invalidParams.Len() > 0 {
7579		return invalidParams
7580	}
7581	return nil
7582}
7583
7584// SetResourceArn sets the ResourceArn field's value.
7585func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
7586	s.ResourceArn = &v
7587	return s
7588}
7589
7590type ListTagsForResourceOutput struct {
7591	_ struct{} `type:"structure"`
7592
7593	// The tags for the resource.
7594	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
7595}
7596
7597// String returns the string representation
7598func (s ListTagsForResourceOutput) String() string {
7599	return awsutil.Prettify(s)
7600}
7601
7602// GoString returns the string representation
7603func (s ListTagsForResourceOutput) GoString() string {
7604	return s.String()
7605}
7606
7607// SetTags sets the Tags field's value.
7608func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
7609	s.Tags = v
7610	return s
7611}
7612
7613type ListUpdatesInput struct {
7614	_ struct{} `type:"structure"`
7615
7616	// The names of the installed add-ons that have available updates.
7617	AddonName *string `location:"querystring" locationName:"addonName" type:"string"`
7618
7619	// The maximum number of update results returned by ListUpdates in paginated
7620	// output. When you use this parameter, ListUpdates returns only maxResults
7621	// results in a single page along with a nextToken response element. You can
7622	// see the remaining results of the initial request by sending another ListUpdates
7623	// request with the returned nextToken value. This value can be between 1 and
7624	// 100. If you don't use this parameter, ListUpdates returns up to 100 results
7625	// and a nextToken value if applicable.
7626	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7627
7628	// The name of the Amazon EKS cluster to list updates for.
7629	//
7630	// Name is a required field
7631	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
7632
7633	// The nextToken value returned from a previous paginated ListUpdates request
7634	// where maxResults was used and the results exceeded the value of that parameter.
7635	// Pagination continues from the end of the previous results that returned the
7636	// nextToken value.
7637	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7638
7639	// The name of the Amazon EKS managed node group to list updates for.
7640	NodegroupName *string `location:"querystring" locationName:"nodegroupName" type:"string"`
7641}
7642
7643// String returns the string representation
7644func (s ListUpdatesInput) String() string {
7645	return awsutil.Prettify(s)
7646}
7647
7648// GoString returns the string representation
7649func (s ListUpdatesInput) GoString() string {
7650	return s.String()
7651}
7652
7653// Validate inspects the fields of the type to determine if they are valid.
7654func (s *ListUpdatesInput) Validate() error {
7655	invalidParams := request.ErrInvalidParams{Context: "ListUpdatesInput"}
7656	if s.MaxResults != nil && *s.MaxResults < 1 {
7657		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7658	}
7659	if s.Name == nil {
7660		invalidParams.Add(request.NewErrParamRequired("Name"))
7661	}
7662	if s.Name != nil && len(*s.Name) < 1 {
7663		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7664	}
7665
7666	if invalidParams.Len() > 0 {
7667		return invalidParams
7668	}
7669	return nil
7670}
7671
7672// SetAddonName sets the AddonName field's value.
7673func (s *ListUpdatesInput) SetAddonName(v string) *ListUpdatesInput {
7674	s.AddonName = &v
7675	return s
7676}
7677
7678// SetMaxResults sets the MaxResults field's value.
7679func (s *ListUpdatesInput) SetMaxResults(v int64) *ListUpdatesInput {
7680	s.MaxResults = &v
7681	return s
7682}
7683
7684// SetName sets the Name field's value.
7685func (s *ListUpdatesInput) SetName(v string) *ListUpdatesInput {
7686	s.Name = &v
7687	return s
7688}
7689
7690// SetNextToken sets the NextToken field's value.
7691func (s *ListUpdatesInput) SetNextToken(v string) *ListUpdatesInput {
7692	s.NextToken = &v
7693	return s
7694}
7695
7696// SetNodegroupName sets the NodegroupName field's value.
7697func (s *ListUpdatesInput) SetNodegroupName(v string) *ListUpdatesInput {
7698	s.NodegroupName = &v
7699	return s
7700}
7701
7702type ListUpdatesOutput struct {
7703	_ struct{} `type:"structure"`
7704
7705	// The nextToken value to include in a future ListUpdates request. When the
7706	// results of a ListUpdates request exceed maxResults, you can use this value
7707	// to retrieve the next page of results. This value is null when there are no
7708	// more results to return.
7709	NextToken *string `locationName:"nextToken" type:"string"`
7710
7711	// A list of all the updates for the specified cluster and Region.
7712	UpdateIds []*string `locationName:"updateIds" type:"list"`
7713}
7714
7715// String returns the string representation
7716func (s ListUpdatesOutput) String() string {
7717	return awsutil.Prettify(s)
7718}
7719
7720// GoString returns the string representation
7721func (s ListUpdatesOutput) GoString() string {
7722	return s.String()
7723}
7724
7725// SetNextToken sets the NextToken field's value.
7726func (s *ListUpdatesOutput) SetNextToken(v string) *ListUpdatesOutput {
7727	s.NextToken = &v
7728	return s
7729}
7730
7731// SetUpdateIds sets the UpdateIds field's value.
7732func (s *ListUpdatesOutput) SetUpdateIds(v []*string) *ListUpdatesOutput {
7733	s.UpdateIds = v
7734	return s
7735}
7736
7737// An object representing the enabled or disabled Kubernetes control plane logs
7738// for your cluster.
7739type LogSetup struct {
7740	_ struct{} `type:"structure"`
7741
7742	// If a log type is enabled, that log type exports its control plane logs to
7743	// CloudWatch Logs. If a log type isn't enabled, that log type doesn't export
7744	// its control plane logs. Each individual log type can be enabled or disabled
7745	// independently.
7746	Enabled *bool `locationName:"enabled" type:"boolean"`
7747
7748	// The available cluster control plane log types.
7749	Types []*string `locationName:"types" type:"list"`
7750}
7751
7752// String returns the string representation
7753func (s LogSetup) String() string {
7754	return awsutil.Prettify(s)
7755}
7756
7757// GoString returns the string representation
7758func (s LogSetup) GoString() string {
7759	return s.String()
7760}
7761
7762// SetEnabled sets the Enabled field's value.
7763func (s *LogSetup) SetEnabled(v bool) *LogSetup {
7764	s.Enabled = &v
7765	return s
7766}
7767
7768// SetTypes sets the Types field's value.
7769func (s *LogSetup) SetTypes(v []*string) *LogSetup {
7770	s.Types = v
7771	return s
7772}
7773
7774// An object representing the logging configuration for resources in your cluster.
7775type Logging struct {
7776	_ struct{} `type:"structure"`
7777
7778	// The cluster control plane logging configuration for your cluster.
7779	ClusterLogging []*LogSetup `locationName:"clusterLogging" type:"list"`
7780}
7781
7782// String returns the string representation
7783func (s Logging) String() string {
7784	return awsutil.Prettify(s)
7785}
7786
7787// GoString returns the string representation
7788func (s Logging) GoString() string {
7789	return s.String()
7790}
7791
7792// SetClusterLogging sets the ClusterLogging field's value.
7793func (s *Logging) SetClusterLogging(v []*LogSetup) *Logging {
7794	s.ClusterLogging = v
7795	return s
7796}
7797
7798// An object representing an Amazon EKS managed node group.
7799type Nodegroup struct {
7800	_ struct{} `type:"structure"`
7801
7802	// If the node group was deployed using a launch template with a custom AMI,
7803	// then this is CUSTOM. For node groups that weren't deployed using a launch
7804	// template, this is the AMI type that was specified in the node group configuration.
7805	AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"`
7806
7807	// The capacity type of your managed node group.
7808	CapacityType *string `locationName:"capacityType" type:"string" enum:"CapacityTypes"`
7809
7810	// The name of the cluster that the managed node group resides in.
7811	ClusterName *string `locationName:"clusterName" type:"string"`
7812
7813	// The Unix epoch timestamp in seconds for when the managed node group was created.
7814	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
7815
7816	// If the node group wasn't deployed with a launch template, then this is the
7817	// disk size in the node group configuration. If the node group was deployed
7818	// with a launch template, then this is null.
7819	DiskSize *int64 `locationName:"diskSize" type:"integer"`
7820
7821	// The health status of the node group. If there are issues with your node group's
7822	// health, they are listed here.
7823	Health *NodegroupHealth `locationName:"health" type:"structure"`
7824
7825	// If the node group wasn't deployed with a launch template, then this is the
7826	// instance type that is associated with the node group. If the node group was
7827	// deployed with a launch template, then this is null.
7828	InstanceTypes []*string `locationName:"instanceTypes" type:"list"`
7829
7830	// The Kubernetes labels applied to the nodes in the node group.
7831	//
7832	// Only labels that are applied with the Amazon EKS API are shown here. There
7833	// may be other Kubernetes labels applied to the nodes in this group.
7834	Labels map[string]*string `locationName:"labels" type:"map"`
7835
7836	// If a launch template was used to create the node group, then this is the
7837	// launch template that was used.
7838	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
7839
7840	// The Unix epoch timestamp in seconds for when the managed node group was last
7841	// modified.
7842	ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"`
7843
7844	// The IAM role associated with your node group. The Amazon EKS node kubelet
7845	// daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive
7846	// permissions for these API calls through an IAM instance profile and associated
7847	// policies.
7848	NodeRole *string `locationName:"nodeRole" type:"string"`
7849
7850	// The Amazon Resource Name (ARN) associated with the managed node group.
7851	NodegroupArn *string `locationName:"nodegroupArn" type:"string"`
7852
7853	// The name associated with an Amazon EKS managed node group.
7854	NodegroupName *string `locationName:"nodegroupName" type:"string"`
7855
7856	// If the node group was deployed using a launch template with a custom AMI,
7857	// then this is the AMI ID that was specified in the launch template. For node
7858	// groups that weren't deployed using a launch template, this is the version
7859	// of the Amazon EKS optimized AMI that the node group was deployed with.
7860	ReleaseVersion *string `locationName:"releaseVersion" type:"string"`
7861
7862	// If the node group wasn't deployed with a launch template, then this is the
7863	// remote access configuration that is associated with the node group. If the
7864	// node group was deployed with a launch template, then this is null.
7865	RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"`
7866
7867	// The resources associated with the node group, such as Auto Scaling groups
7868	// and security groups for remote access.
7869	Resources *NodegroupResources `locationName:"resources" type:"structure"`
7870
7871	// The scaling configuration details for the Auto Scaling group that is associated
7872	// with your node group.
7873	ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"`
7874
7875	// The current status of the managed node group.
7876	Status *string `locationName:"status" type:"string" enum:"NodegroupStatus"`
7877
7878	// The subnets that were specified for the Auto Scaling group that is associated
7879	// with your node group.
7880	Subnets []*string `locationName:"subnets" type:"list"`
7881
7882	// The metadata applied to the node group to assist with categorization and
7883	// organization. Each tag consists of a key and an optional value, both of which
7884	// you define. Node group tags do not propagate to any other resources associated
7885	// with the node group, such as the Amazon EC2 instances or subnets.
7886	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
7887
7888	// The Kubernetes taints to be applied to the nodes in the node group when they
7889	// are created. Effect is one of No_Schedule, Prefer_No_Schedule, or No_Execute.
7890	// Kubernetes taints can be used together with tolerations to control how workloads
7891	// are scheduled to your nodes.
7892	Taints []*Taint `locationName:"taints" type:"list"`
7893
7894	// The node group update configuration.
7895	UpdateConfig *NodegroupUpdateConfig `locationName:"updateConfig" type:"structure"`
7896
7897	// The Kubernetes version of the managed node group.
7898	Version *string `locationName:"version" type:"string"`
7899}
7900
7901// String returns the string representation
7902func (s Nodegroup) String() string {
7903	return awsutil.Prettify(s)
7904}
7905
7906// GoString returns the string representation
7907func (s Nodegroup) GoString() string {
7908	return s.String()
7909}
7910
7911// SetAmiType sets the AmiType field's value.
7912func (s *Nodegroup) SetAmiType(v string) *Nodegroup {
7913	s.AmiType = &v
7914	return s
7915}
7916
7917// SetCapacityType sets the CapacityType field's value.
7918func (s *Nodegroup) SetCapacityType(v string) *Nodegroup {
7919	s.CapacityType = &v
7920	return s
7921}
7922
7923// SetClusterName sets the ClusterName field's value.
7924func (s *Nodegroup) SetClusterName(v string) *Nodegroup {
7925	s.ClusterName = &v
7926	return s
7927}
7928
7929// SetCreatedAt sets the CreatedAt field's value.
7930func (s *Nodegroup) SetCreatedAt(v time.Time) *Nodegroup {
7931	s.CreatedAt = &v
7932	return s
7933}
7934
7935// SetDiskSize sets the DiskSize field's value.
7936func (s *Nodegroup) SetDiskSize(v int64) *Nodegroup {
7937	s.DiskSize = &v
7938	return s
7939}
7940
7941// SetHealth sets the Health field's value.
7942func (s *Nodegroup) SetHealth(v *NodegroupHealth) *Nodegroup {
7943	s.Health = v
7944	return s
7945}
7946
7947// SetInstanceTypes sets the InstanceTypes field's value.
7948func (s *Nodegroup) SetInstanceTypes(v []*string) *Nodegroup {
7949	s.InstanceTypes = v
7950	return s
7951}
7952
7953// SetLabels sets the Labels field's value.
7954func (s *Nodegroup) SetLabels(v map[string]*string) *Nodegroup {
7955	s.Labels = v
7956	return s
7957}
7958
7959// SetLaunchTemplate sets the LaunchTemplate field's value.
7960func (s *Nodegroup) SetLaunchTemplate(v *LaunchTemplateSpecification) *Nodegroup {
7961	s.LaunchTemplate = v
7962	return s
7963}
7964
7965// SetModifiedAt sets the ModifiedAt field's value.
7966func (s *Nodegroup) SetModifiedAt(v time.Time) *Nodegroup {
7967	s.ModifiedAt = &v
7968	return s
7969}
7970
7971// SetNodeRole sets the NodeRole field's value.
7972func (s *Nodegroup) SetNodeRole(v string) *Nodegroup {
7973	s.NodeRole = &v
7974	return s
7975}
7976
7977// SetNodegroupArn sets the NodegroupArn field's value.
7978func (s *Nodegroup) SetNodegroupArn(v string) *Nodegroup {
7979	s.NodegroupArn = &v
7980	return s
7981}
7982
7983// SetNodegroupName sets the NodegroupName field's value.
7984func (s *Nodegroup) SetNodegroupName(v string) *Nodegroup {
7985	s.NodegroupName = &v
7986	return s
7987}
7988
7989// SetReleaseVersion sets the ReleaseVersion field's value.
7990func (s *Nodegroup) SetReleaseVersion(v string) *Nodegroup {
7991	s.ReleaseVersion = &v
7992	return s
7993}
7994
7995// SetRemoteAccess sets the RemoteAccess field's value.
7996func (s *Nodegroup) SetRemoteAccess(v *RemoteAccessConfig) *Nodegroup {
7997	s.RemoteAccess = v
7998	return s
7999}
8000
8001// SetResources sets the Resources field's value.
8002func (s *Nodegroup) SetResources(v *NodegroupResources) *Nodegroup {
8003	s.Resources = v
8004	return s
8005}
8006
8007// SetScalingConfig sets the ScalingConfig field's value.
8008func (s *Nodegroup) SetScalingConfig(v *NodegroupScalingConfig) *Nodegroup {
8009	s.ScalingConfig = v
8010	return s
8011}
8012
8013// SetStatus sets the Status field's value.
8014func (s *Nodegroup) SetStatus(v string) *Nodegroup {
8015	s.Status = &v
8016	return s
8017}
8018
8019// SetSubnets sets the Subnets field's value.
8020func (s *Nodegroup) SetSubnets(v []*string) *Nodegroup {
8021	s.Subnets = v
8022	return s
8023}
8024
8025// SetTags sets the Tags field's value.
8026func (s *Nodegroup) SetTags(v map[string]*string) *Nodegroup {
8027	s.Tags = v
8028	return s
8029}
8030
8031// SetTaints sets the Taints field's value.
8032func (s *Nodegroup) SetTaints(v []*Taint) *Nodegroup {
8033	s.Taints = v
8034	return s
8035}
8036
8037// SetUpdateConfig sets the UpdateConfig field's value.
8038func (s *Nodegroup) SetUpdateConfig(v *NodegroupUpdateConfig) *Nodegroup {
8039	s.UpdateConfig = v
8040	return s
8041}
8042
8043// SetVersion sets the Version field's value.
8044func (s *Nodegroup) SetVersion(v string) *Nodegroup {
8045	s.Version = &v
8046	return s
8047}
8048
8049// An object representing the health status of the node group.
8050type NodegroupHealth struct {
8051	_ struct{} `type:"structure"`
8052
8053	// Any issues that are associated with the node group.
8054	Issues []*Issue `locationName:"issues" type:"list"`
8055}
8056
8057// String returns the string representation
8058func (s NodegroupHealth) String() string {
8059	return awsutil.Prettify(s)
8060}
8061
8062// GoString returns the string representation
8063func (s NodegroupHealth) GoString() string {
8064	return s.String()
8065}
8066
8067// SetIssues sets the Issues field's value.
8068func (s *NodegroupHealth) SetIssues(v []*Issue) *NodegroupHealth {
8069	s.Issues = v
8070	return s
8071}
8072
8073// An object representing the resources associated with the node group, such
8074// as Auto Scaling groups and security groups for remote access.
8075type NodegroupResources struct {
8076	_ struct{} `type:"structure"`
8077
8078	// The Auto Scaling groups associated with the node group.
8079	AutoScalingGroups []*AutoScalingGroup `locationName:"autoScalingGroups" type:"list"`
8080
8081	// The remote access security group associated with the node group. This security
8082	// group controls SSH access to the nodes.
8083	RemoteAccessSecurityGroup *string `locationName:"remoteAccessSecurityGroup" type:"string"`
8084}
8085
8086// String returns the string representation
8087func (s NodegroupResources) String() string {
8088	return awsutil.Prettify(s)
8089}
8090
8091// GoString returns the string representation
8092func (s NodegroupResources) GoString() string {
8093	return s.String()
8094}
8095
8096// SetAutoScalingGroups sets the AutoScalingGroups field's value.
8097func (s *NodegroupResources) SetAutoScalingGroups(v []*AutoScalingGroup) *NodegroupResources {
8098	s.AutoScalingGroups = v
8099	return s
8100}
8101
8102// SetRemoteAccessSecurityGroup sets the RemoteAccessSecurityGroup field's value.
8103func (s *NodegroupResources) SetRemoteAccessSecurityGroup(v string) *NodegroupResources {
8104	s.RemoteAccessSecurityGroup = &v
8105	return s
8106}
8107
8108// An object representing the scaling configuration details for the Auto Scaling
8109// group that is associated with your node group. When creating a node group,
8110// you must specify all or none of the properties. When updating a node group,
8111// you can specify any or none of the properties.
8112type NodegroupScalingConfig struct {
8113	_ struct{} `type:"structure"`
8114
8115	// The current number of nodes that the managed node group should maintain.
8116	DesiredSize *int64 `locationName:"desiredSize" type:"integer"`
8117
8118	// The maximum number of nodes that the managed node group can scale out to.
8119	// For information about the maximum number that you can specify, see Amazon
8120	// EKS service quotas (https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html)
8121	// in the Amazon EKS User Guide.
8122	MaxSize *int64 `locationName:"maxSize" min:"1" type:"integer"`
8123
8124	// The minimum number of nodes that the managed node group can scale in to.
8125	MinSize *int64 `locationName:"minSize" type:"integer"`
8126}
8127
8128// String returns the string representation
8129func (s NodegroupScalingConfig) String() string {
8130	return awsutil.Prettify(s)
8131}
8132
8133// GoString returns the string representation
8134func (s NodegroupScalingConfig) GoString() string {
8135	return s.String()
8136}
8137
8138// Validate inspects the fields of the type to determine if they are valid.
8139func (s *NodegroupScalingConfig) Validate() error {
8140	invalidParams := request.ErrInvalidParams{Context: "NodegroupScalingConfig"}
8141	if s.MaxSize != nil && *s.MaxSize < 1 {
8142		invalidParams.Add(request.NewErrParamMinValue("MaxSize", 1))
8143	}
8144
8145	if invalidParams.Len() > 0 {
8146		return invalidParams
8147	}
8148	return nil
8149}
8150
8151// SetDesiredSize sets the DesiredSize field's value.
8152func (s *NodegroupScalingConfig) SetDesiredSize(v int64) *NodegroupScalingConfig {
8153	s.DesiredSize = &v
8154	return s
8155}
8156
8157// SetMaxSize sets the MaxSize field's value.
8158func (s *NodegroupScalingConfig) SetMaxSize(v int64) *NodegroupScalingConfig {
8159	s.MaxSize = &v
8160	return s
8161}
8162
8163// SetMinSize sets the MinSize field's value.
8164func (s *NodegroupScalingConfig) SetMinSize(v int64) *NodegroupScalingConfig {
8165	s.MinSize = &v
8166	return s
8167}
8168
8169// The node group update configuration.
8170type NodegroupUpdateConfig struct {
8171	_ struct{} `type:"structure"`
8172
8173	// The maximum number of nodes unavailable at once during a version update.
8174	// Nodes will be updated in parallel. This value or maxUnavailablePercentage
8175	// is required to have a value.The maximum number is 100.
8176	MaxUnavailable *int64 `locationName:"maxUnavailable" min:"1" type:"integer"`
8177
8178	// The maximum percentage of nodes unavailable during a version update. This
8179	// percentage of nodes will be updated in parallel, up to 100 nodes at once.
8180	// This value or maxUnavailable is required to have a value.
8181	MaxUnavailablePercentage *int64 `locationName:"maxUnavailablePercentage" min:"1" type:"integer"`
8182}
8183
8184// String returns the string representation
8185func (s NodegroupUpdateConfig) String() string {
8186	return awsutil.Prettify(s)
8187}
8188
8189// GoString returns the string representation
8190func (s NodegroupUpdateConfig) GoString() string {
8191	return s.String()
8192}
8193
8194// Validate inspects the fields of the type to determine if they are valid.
8195func (s *NodegroupUpdateConfig) Validate() error {
8196	invalidParams := request.ErrInvalidParams{Context: "NodegroupUpdateConfig"}
8197	if s.MaxUnavailable != nil && *s.MaxUnavailable < 1 {
8198		invalidParams.Add(request.NewErrParamMinValue("MaxUnavailable", 1))
8199	}
8200	if s.MaxUnavailablePercentage != nil && *s.MaxUnavailablePercentage < 1 {
8201		invalidParams.Add(request.NewErrParamMinValue("MaxUnavailablePercentage", 1))
8202	}
8203
8204	if invalidParams.Len() > 0 {
8205		return invalidParams
8206	}
8207	return nil
8208}
8209
8210// SetMaxUnavailable sets the MaxUnavailable field's value.
8211func (s *NodegroupUpdateConfig) SetMaxUnavailable(v int64) *NodegroupUpdateConfig {
8212	s.MaxUnavailable = &v
8213	return s
8214}
8215
8216// SetMaxUnavailablePercentage sets the MaxUnavailablePercentage field's value.
8217func (s *NodegroupUpdateConfig) SetMaxUnavailablePercentage(v int64) *NodegroupUpdateConfig {
8218	s.MaxUnavailablePercentage = &v
8219	return s
8220}
8221
8222// A service resource associated with the request could not be found. Clients
8223// should not retry such requests.
8224type NotFoundException struct {
8225	_            struct{}                  `type:"structure"`
8226	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8227
8228	Message_ *string `locationName:"message" type:"string"`
8229}
8230
8231// String returns the string representation
8232func (s NotFoundException) String() string {
8233	return awsutil.Prettify(s)
8234}
8235
8236// GoString returns the string representation
8237func (s NotFoundException) GoString() string {
8238	return s.String()
8239}
8240
8241func newErrorNotFoundException(v protocol.ResponseMetadata) error {
8242	return &NotFoundException{
8243		RespMetadata: v,
8244	}
8245}
8246
8247// Code returns the exception type name.
8248func (s *NotFoundException) Code() string {
8249	return "NotFoundException"
8250}
8251
8252// Message returns the exception's message.
8253func (s *NotFoundException) Message() string {
8254	if s.Message_ != nil {
8255		return *s.Message_
8256	}
8257	return ""
8258}
8259
8260// OrigErr always returns nil, satisfies awserr.Error interface.
8261func (s *NotFoundException) OrigErr() error {
8262	return nil
8263}
8264
8265func (s *NotFoundException) Error() string {
8266	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8267}
8268
8269// Status code returns the HTTP status code for the request's response error.
8270func (s *NotFoundException) StatusCode() int {
8271	return s.RespMetadata.StatusCode
8272}
8273
8274// RequestID returns the service's response RequestID for request.
8275func (s *NotFoundException) RequestID() string {
8276	return s.RespMetadata.RequestID
8277}
8278
8279// An object representing the OpenID Connect (https://openid.net/connect/) (OIDC)
8280// identity provider information for the cluster.
8281type OIDC struct {
8282	_ struct{} `type:"structure"`
8283
8284	// The issuer URL for the OIDC identity provider.
8285	Issuer *string `locationName:"issuer" type:"string"`
8286}
8287
8288// String returns the string representation
8289func (s OIDC) String() string {
8290	return awsutil.Prettify(s)
8291}
8292
8293// GoString returns the string representation
8294func (s OIDC) GoString() string {
8295	return s.String()
8296}
8297
8298// SetIssuer sets the Issuer field's value.
8299func (s *OIDC) SetIssuer(v string) *OIDC {
8300	s.Issuer = &v
8301	return s
8302}
8303
8304// An object that represents the configuration for an OpenID Connect (OIDC)
8305// identity provider.
8306type OidcIdentityProviderConfig struct {
8307	_ struct{} `type:"structure"`
8308
8309	// This is also known as audience. The ID of the client application that makes
8310	// authentication requests to the OIDC identity provider.
8311	ClientId *string `locationName:"clientId" type:"string"`
8312
8313	// The cluster that the configuration is associated to.
8314	ClusterName *string `locationName:"clusterName" type:"string"`
8315
8316	// The JSON web token (JWT) claim that the provider uses to return your groups.
8317	GroupsClaim *string `locationName:"groupsClaim" type:"string"`
8318
8319	// The prefix that is prepended to group claims to prevent clashes with existing
8320	// names (such as system: groups). For example, the valueoidc: creates group
8321	// names like oidc:engineering and oidc:infra. The prefix can't contain system:
8322	GroupsPrefix *string `locationName:"groupsPrefix" type:"string"`
8323
8324	// The ARN of the configuration.
8325	IdentityProviderConfigArn *string `locationName:"identityProviderConfigArn" type:"string"`
8326
8327	// The name of the configuration.
8328	IdentityProviderConfigName *string `locationName:"identityProviderConfigName" type:"string"`
8329
8330	// The URL of the OIDC identity provider that allows the API server to discover
8331	// public signing keys for verifying tokens.
8332	IssuerUrl *string `locationName:"issuerUrl" type:"string"`
8333
8334	// The key-value pairs that describe required claims in the identity token.
8335	// If set, each claim is verified to be present in the token with a matching
8336	// value.
8337	RequiredClaims map[string]*string `locationName:"requiredClaims" type:"map"`
8338
8339	// The status of the OIDC identity provider.
8340	Status *string `locationName:"status" type:"string" enum:"ConfigStatus"`
8341
8342	// The metadata to apply to the provider configuration to assist with categorization
8343	// and organization. Each tag consists of a key and an optional value, both
8344	// of which you defined.
8345	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
8346
8347	// The JSON Web token (JWT) claim that is used as the username.
8348	UsernameClaim *string `locationName:"usernameClaim" type:"string"`
8349
8350	// The prefix that is prepended to username claims to prevent clashes with existing
8351	// names. The prefix can't contain system:
8352	UsernamePrefix *string `locationName:"usernamePrefix" type:"string"`
8353}
8354
8355// String returns the string representation
8356func (s OidcIdentityProviderConfig) String() string {
8357	return awsutil.Prettify(s)
8358}
8359
8360// GoString returns the string representation
8361func (s OidcIdentityProviderConfig) GoString() string {
8362	return s.String()
8363}
8364
8365// SetClientId sets the ClientId field's value.
8366func (s *OidcIdentityProviderConfig) SetClientId(v string) *OidcIdentityProviderConfig {
8367	s.ClientId = &v
8368	return s
8369}
8370
8371// SetClusterName sets the ClusterName field's value.
8372func (s *OidcIdentityProviderConfig) SetClusterName(v string) *OidcIdentityProviderConfig {
8373	s.ClusterName = &v
8374	return s
8375}
8376
8377// SetGroupsClaim sets the GroupsClaim field's value.
8378func (s *OidcIdentityProviderConfig) SetGroupsClaim(v string) *OidcIdentityProviderConfig {
8379	s.GroupsClaim = &v
8380	return s
8381}
8382
8383// SetGroupsPrefix sets the GroupsPrefix field's value.
8384func (s *OidcIdentityProviderConfig) SetGroupsPrefix(v string) *OidcIdentityProviderConfig {
8385	s.GroupsPrefix = &v
8386	return s
8387}
8388
8389// SetIdentityProviderConfigArn sets the IdentityProviderConfigArn field's value.
8390func (s *OidcIdentityProviderConfig) SetIdentityProviderConfigArn(v string) *OidcIdentityProviderConfig {
8391	s.IdentityProviderConfigArn = &v
8392	return s
8393}
8394
8395// SetIdentityProviderConfigName sets the IdentityProviderConfigName field's value.
8396func (s *OidcIdentityProviderConfig) SetIdentityProviderConfigName(v string) *OidcIdentityProviderConfig {
8397	s.IdentityProviderConfigName = &v
8398	return s
8399}
8400
8401// SetIssuerUrl sets the IssuerUrl field's value.
8402func (s *OidcIdentityProviderConfig) SetIssuerUrl(v string) *OidcIdentityProviderConfig {
8403	s.IssuerUrl = &v
8404	return s
8405}
8406
8407// SetRequiredClaims sets the RequiredClaims field's value.
8408func (s *OidcIdentityProviderConfig) SetRequiredClaims(v map[string]*string) *OidcIdentityProviderConfig {
8409	s.RequiredClaims = v
8410	return s
8411}
8412
8413// SetStatus sets the Status field's value.
8414func (s *OidcIdentityProviderConfig) SetStatus(v string) *OidcIdentityProviderConfig {
8415	s.Status = &v
8416	return s
8417}
8418
8419// SetTags sets the Tags field's value.
8420func (s *OidcIdentityProviderConfig) SetTags(v map[string]*string) *OidcIdentityProviderConfig {
8421	s.Tags = v
8422	return s
8423}
8424
8425// SetUsernameClaim sets the UsernameClaim field's value.
8426func (s *OidcIdentityProviderConfig) SetUsernameClaim(v string) *OidcIdentityProviderConfig {
8427	s.UsernameClaim = &v
8428	return s
8429}
8430
8431// SetUsernamePrefix sets the UsernamePrefix field's value.
8432func (s *OidcIdentityProviderConfig) SetUsernamePrefix(v string) *OidcIdentityProviderConfig {
8433	s.UsernamePrefix = &v
8434	return s
8435}
8436
8437// An object representing an OpenID Connect (OIDC) configuration. Before associating
8438// an OIDC identity provider to your cluster, review the considerations in Authenticating
8439// users for your cluster from an OpenID Connect identity provider (https://docs.aws.amazon.com/eks/latest/userguide/authenticate-oidc-identity-provider.html)
8440// in the Amazon EKS User Guide.
8441type OidcIdentityProviderConfigRequest struct {
8442	_ struct{} `type:"structure"`
8443
8444	// This is also known as audience. The ID for the client application that makes
8445	// authentication requests to the OpenID identity provider.
8446	//
8447	// ClientId is a required field
8448	ClientId *string `locationName:"clientId" type:"string" required:"true"`
8449
8450	// The JWT claim that the provider uses to return your groups.
8451	GroupsClaim *string `locationName:"groupsClaim" type:"string"`
8452
8453	// The prefix that is prepended to group claims to prevent clashes with existing
8454	// names (such as system: groups). For example, the valueoidc: will create group
8455	// names like oidc:engineering and oidc:infra.
8456	GroupsPrefix *string `locationName:"groupsPrefix" type:"string"`
8457
8458	// The name of the OIDC provider configuration.
8459	//
8460	// IdentityProviderConfigName is a required field
8461	IdentityProviderConfigName *string `locationName:"identityProviderConfigName" type:"string" required:"true"`
8462
8463	// The URL of the OpenID identity provider that allows the API server to discover
8464	// public signing keys for verifying tokens. The URL must begin with https://
8465	// and should correspond to the iss claim in the provider's OIDC ID tokens.
8466	// Per the OIDC standard, path components are allowed but query parameters are
8467	// not. Typically the URL consists of only a hostname, like https://server.example.org
8468	// or https://example.com. This URL should point to the level below .well-known/openid-configuration
8469	// and must be publicly accessible over the internet.
8470	//
8471	// IssuerUrl is a required field
8472	IssuerUrl *string `locationName:"issuerUrl" type:"string" required:"true"`
8473
8474	// The key value pairs that describe required claims in the identity token.
8475	// If set, each claim is verified to be present in the token with a matching
8476	// value. For the maximum number of claims that you can require, see Amazon
8477	// EKS service quotas (https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html)
8478	// in the Amazon EKS User Guide.
8479	RequiredClaims map[string]*string `locationName:"requiredClaims" type:"map"`
8480
8481	// The JSON Web Token (JWT) claim to use as the username. The default is sub,
8482	// which is expected to be a unique identifier of the end user. You can choose
8483	// other claims, such as email or name, depending on the OpenID identity provider.
8484	// Claims other than email are prefixed with the issuer URL to prevent naming
8485	// clashes with other plug-ins.
8486	UsernameClaim *string `locationName:"usernameClaim" type:"string"`
8487
8488	// The prefix that is prepended to username claims to prevent clashes with existing
8489	// names. If you do not provide this field, and username is a value other than
8490	// email, the prefix defaults to issuerurl#. You can use the value - to disable
8491	// all prefixing.
8492	UsernamePrefix *string `locationName:"usernamePrefix" type:"string"`
8493}
8494
8495// String returns the string representation
8496func (s OidcIdentityProviderConfigRequest) String() string {
8497	return awsutil.Prettify(s)
8498}
8499
8500// GoString returns the string representation
8501func (s OidcIdentityProviderConfigRequest) GoString() string {
8502	return s.String()
8503}
8504
8505// Validate inspects the fields of the type to determine if they are valid.
8506func (s *OidcIdentityProviderConfigRequest) Validate() error {
8507	invalidParams := request.ErrInvalidParams{Context: "OidcIdentityProviderConfigRequest"}
8508	if s.ClientId == nil {
8509		invalidParams.Add(request.NewErrParamRequired("ClientId"))
8510	}
8511	if s.IdentityProviderConfigName == nil {
8512		invalidParams.Add(request.NewErrParamRequired("IdentityProviderConfigName"))
8513	}
8514	if s.IssuerUrl == nil {
8515		invalidParams.Add(request.NewErrParamRequired("IssuerUrl"))
8516	}
8517
8518	if invalidParams.Len() > 0 {
8519		return invalidParams
8520	}
8521	return nil
8522}
8523
8524// SetClientId sets the ClientId field's value.
8525func (s *OidcIdentityProviderConfigRequest) SetClientId(v string) *OidcIdentityProviderConfigRequest {
8526	s.ClientId = &v
8527	return s
8528}
8529
8530// SetGroupsClaim sets the GroupsClaim field's value.
8531func (s *OidcIdentityProviderConfigRequest) SetGroupsClaim(v string) *OidcIdentityProviderConfigRequest {
8532	s.GroupsClaim = &v
8533	return s
8534}
8535
8536// SetGroupsPrefix sets the GroupsPrefix field's value.
8537func (s *OidcIdentityProviderConfigRequest) SetGroupsPrefix(v string) *OidcIdentityProviderConfigRequest {
8538	s.GroupsPrefix = &v
8539	return s
8540}
8541
8542// SetIdentityProviderConfigName sets the IdentityProviderConfigName field's value.
8543func (s *OidcIdentityProviderConfigRequest) SetIdentityProviderConfigName(v string) *OidcIdentityProviderConfigRequest {
8544	s.IdentityProviderConfigName = &v
8545	return s
8546}
8547
8548// SetIssuerUrl sets the IssuerUrl field's value.
8549func (s *OidcIdentityProviderConfigRequest) SetIssuerUrl(v string) *OidcIdentityProviderConfigRequest {
8550	s.IssuerUrl = &v
8551	return s
8552}
8553
8554// SetRequiredClaims sets the RequiredClaims field's value.
8555func (s *OidcIdentityProviderConfigRequest) SetRequiredClaims(v map[string]*string) *OidcIdentityProviderConfigRequest {
8556	s.RequiredClaims = v
8557	return s
8558}
8559
8560// SetUsernameClaim sets the UsernameClaim field's value.
8561func (s *OidcIdentityProviderConfigRequest) SetUsernameClaim(v string) *OidcIdentityProviderConfigRequest {
8562	s.UsernameClaim = &v
8563	return s
8564}
8565
8566// SetUsernamePrefix sets the UsernamePrefix field's value.
8567func (s *OidcIdentityProviderConfigRequest) SetUsernamePrefix(v string) *OidcIdentityProviderConfigRequest {
8568	s.UsernamePrefix = &v
8569	return s
8570}
8571
8572// Identifies the Key Management Service (KMS) key used to encrypt the secrets.
8573type Provider struct {
8574	_ struct{} `type:"structure"`
8575
8576	// Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric,
8577	// created in the same region as the cluster, and if the KMS key was created
8578	// in a different account, the user must have access to the KMS key. For more
8579	// 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)
8580	// in the Key Management Service Developer Guide.
8581	KeyArn *string `locationName:"keyArn" type:"string"`
8582}
8583
8584// String returns the string representation
8585func (s Provider) String() string {
8586	return awsutil.Prettify(s)
8587}
8588
8589// GoString returns the string representation
8590func (s Provider) GoString() string {
8591	return s.String()
8592}
8593
8594// SetKeyArn sets the KeyArn field's value.
8595func (s *Provider) SetKeyArn(v string) *Provider {
8596	s.KeyArn = &v
8597	return s
8598}
8599
8600// An object representing the remote access configuration for the managed node
8601// group.
8602type RemoteAccessConfig struct {
8603	_ struct{} `type:"structure"`
8604
8605	// The Amazon EC2 SSH key that provides access for SSH communication with the
8606	// nodes in the managed node group. For more information, see Amazon EC2 key
8607	// pairs and Linux instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)
8608	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances.
8609	Ec2SshKey *string `locationName:"ec2SshKey" type:"string"`
8610
8611	// The security groups that are allowed SSH access (port 22) to the nodes. If
8612	// you specify an Amazon EC2 SSH key but do not specify a source security group
8613	// when you create a managed node group, then port 22 on the nodes is opened
8614	// to the internet (0.0.0.0/0). For more information, see Security Groups for
8615	// Your VPC (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)
8616	// in the Amazon Virtual Private Cloud User Guide.
8617	SourceSecurityGroups []*string `locationName:"sourceSecurityGroups" type:"list"`
8618}
8619
8620// String returns the string representation
8621func (s RemoteAccessConfig) String() string {
8622	return awsutil.Prettify(s)
8623}
8624
8625// GoString returns the string representation
8626func (s RemoteAccessConfig) GoString() string {
8627	return s.String()
8628}
8629
8630// SetEc2SshKey sets the Ec2SshKey field's value.
8631func (s *RemoteAccessConfig) SetEc2SshKey(v string) *RemoteAccessConfig {
8632	s.Ec2SshKey = &v
8633	return s
8634}
8635
8636// SetSourceSecurityGroups sets the SourceSecurityGroups field's value.
8637func (s *RemoteAccessConfig) SetSourceSecurityGroups(v []*string) *RemoteAccessConfig {
8638	s.SourceSecurityGroups = v
8639	return s
8640}
8641
8642// The specified resource is in use.
8643type ResourceInUseException struct {
8644	_            struct{}                  `type:"structure"`
8645	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8646
8647	AddonName *string `locationName:"addonName" type:"string"`
8648
8649	// The Amazon EKS cluster associated with the exception.
8650	ClusterName *string `locationName:"clusterName" type:"string"`
8651
8652	Message_ *string `locationName:"message" type:"string"`
8653
8654	// The Amazon EKS managed node group associated with the exception.
8655	NodegroupName *string `locationName:"nodegroupName" type:"string"`
8656}
8657
8658// String returns the string representation
8659func (s ResourceInUseException) String() string {
8660	return awsutil.Prettify(s)
8661}
8662
8663// GoString returns the string representation
8664func (s ResourceInUseException) GoString() string {
8665	return s.String()
8666}
8667
8668func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
8669	return &ResourceInUseException{
8670		RespMetadata: v,
8671	}
8672}
8673
8674// Code returns the exception type name.
8675func (s *ResourceInUseException) Code() string {
8676	return "ResourceInUseException"
8677}
8678
8679// Message returns the exception's message.
8680func (s *ResourceInUseException) Message() string {
8681	if s.Message_ != nil {
8682		return *s.Message_
8683	}
8684	return ""
8685}
8686
8687// OrigErr always returns nil, satisfies awserr.Error interface.
8688func (s *ResourceInUseException) OrigErr() error {
8689	return nil
8690}
8691
8692func (s *ResourceInUseException) Error() string {
8693	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8694}
8695
8696// Status code returns the HTTP status code for the request's response error.
8697func (s *ResourceInUseException) StatusCode() int {
8698	return s.RespMetadata.StatusCode
8699}
8700
8701// RequestID returns the service's response RequestID for request.
8702func (s *ResourceInUseException) RequestID() string {
8703	return s.RespMetadata.RequestID
8704}
8705
8706// You have encountered a service limit on the specified resource.
8707type ResourceLimitExceededException struct {
8708	_            struct{}                  `type:"structure"`
8709	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8710
8711	// The Amazon EKS cluster associated with the exception.
8712	ClusterName *string `locationName:"clusterName" type:"string"`
8713
8714	Message_ *string `locationName:"message" type:"string"`
8715
8716	// The Amazon EKS managed node group associated with the exception.
8717	NodegroupName *string `locationName:"nodegroupName" type:"string"`
8718}
8719
8720// String returns the string representation
8721func (s ResourceLimitExceededException) String() string {
8722	return awsutil.Prettify(s)
8723}
8724
8725// GoString returns the string representation
8726func (s ResourceLimitExceededException) GoString() string {
8727	return s.String()
8728}
8729
8730func newErrorResourceLimitExceededException(v protocol.ResponseMetadata) error {
8731	return &ResourceLimitExceededException{
8732		RespMetadata: v,
8733	}
8734}
8735
8736// Code returns the exception type name.
8737func (s *ResourceLimitExceededException) Code() string {
8738	return "ResourceLimitExceededException"
8739}
8740
8741// Message returns the exception's message.
8742func (s *ResourceLimitExceededException) Message() string {
8743	if s.Message_ != nil {
8744		return *s.Message_
8745	}
8746	return ""
8747}
8748
8749// OrigErr always returns nil, satisfies awserr.Error interface.
8750func (s *ResourceLimitExceededException) OrigErr() error {
8751	return nil
8752}
8753
8754func (s *ResourceLimitExceededException) Error() string {
8755	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8756}
8757
8758// Status code returns the HTTP status code for the request's response error.
8759func (s *ResourceLimitExceededException) StatusCode() int {
8760	return s.RespMetadata.StatusCode
8761}
8762
8763// RequestID returns the service's response RequestID for request.
8764func (s *ResourceLimitExceededException) RequestID() string {
8765	return s.RespMetadata.RequestID
8766}
8767
8768// The specified resource could not be found. You can view your available clusters
8769// with ListClusters. You can view your available managed node groups with ListNodegroups.
8770// Amazon EKS clusters and node groups are Region-specific.
8771type ResourceNotFoundException struct {
8772	_            struct{}                  `type:"structure"`
8773	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8774
8775	AddonName *string `locationName:"addonName" type:"string"`
8776
8777	// The Amazon EKS cluster associated with the exception.
8778	ClusterName *string `locationName:"clusterName" type:"string"`
8779
8780	// The Fargate profile associated with the exception.
8781	FargateProfileName *string `locationName:"fargateProfileName" type:"string"`
8782
8783	Message_ *string `locationName:"message" type:"string"`
8784
8785	// The Amazon EKS managed node group associated with the exception.
8786	NodegroupName *string `locationName:"nodegroupName" type:"string"`
8787}
8788
8789// String returns the string representation
8790func (s ResourceNotFoundException) String() string {
8791	return awsutil.Prettify(s)
8792}
8793
8794// GoString returns the string representation
8795func (s ResourceNotFoundException) GoString() string {
8796	return s.String()
8797}
8798
8799func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
8800	return &ResourceNotFoundException{
8801		RespMetadata: v,
8802	}
8803}
8804
8805// Code returns the exception type name.
8806func (s *ResourceNotFoundException) Code() string {
8807	return "ResourceNotFoundException"
8808}
8809
8810// Message returns the exception's message.
8811func (s *ResourceNotFoundException) Message() string {
8812	if s.Message_ != nil {
8813		return *s.Message_
8814	}
8815	return ""
8816}
8817
8818// OrigErr always returns nil, satisfies awserr.Error interface.
8819func (s *ResourceNotFoundException) OrigErr() error {
8820	return nil
8821}
8822
8823func (s *ResourceNotFoundException) Error() string {
8824	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8825}
8826
8827// Status code returns the HTTP status code for the request's response error.
8828func (s *ResourceNotFoundException) StatusCode() int {
8829	return s.RespMetadata.StatusCode
8830}
8831
8832// RequestID returns the service's response RequestID for request.
8833func (s *ResourceNotFoundException) RequestID() string {
8834	return s.RespMetadata.RequestID
8835}
8836
8837// These errors are usually caused by a server-side issue.
8838type ServerException struct {
8839	_            struct{}                  `type:"structure"`
8840	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8841
8842	AddonName *string `locationName:"addonName" type:"string"`
8843
8844	// The Amazon EKS cluster associated with the exception.
8845	ClusterName *string `locationName:"clusterName" type:"string"`
8846
8847	Message_ *string `locationName:"message" type:"string"`
8848
8849	// The Amazon EKS managed node group associated with the exception.
8850	NodegroupName *string `locationName:"nodegroupName" type:"string"`
8851}
8852
8853// String returns the string representation
8854func (s ServerException) String() string {
8855	return awsutil.Prettify(s)
8856}
8857
8858// GoString returns the string representation
8859func (s ServerException) GoString() string {
8860	return s.String()
8861}
8862
8863func newErrorServerException(v protocol.ResponseMetadata) error {
8864	return &ServerException{
8865		RespMetadata: v,
8866	}
8867}
8868
8869// Code returns the exception type name.
8870func (s *ServerException) Code() string {
8871	return "ServerException"
8872}
8873
8874// Message returns the exception's message.
8875func (s *ServerException) Message() string {
8876	if s.Message_ != nil {
8877		return *s.Message_
8878	}
8879	return ""
8880}
8881
8882// OrigErr always returns nil, satisfies awserr.Error interface.
8883func (s *ServerException) OrigErr() error {
8884	return nil
8885}
8886
8887func (s *ServerException) Error() string {
8888	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8889}
8890
8891// Status code returns the HTTP status code for the request's response error.
8892func (s *ServerException) StatusCode() int {
8893	return s.RespMetadata.StatusCode
8894}
8895
8896// RequestID returns the service's response RequestID for request.
8897func (s *ServerException) RequestID() string {
8898	return s.RespMetadata.RequestID
8899}
8900
8901// The service is unavailable. Back off and retry the operation.
8902type ServiceUnavailableException struct {
8903	_            struct{}                  `type:"structure"`
8904	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8905
8906	Message_ *string `locationName:"message" type:"string"`
8907}
8908
8909// String returns the string representation
8910func (s ServiceUnavailableException) String() string {
8911	return awsutil.Prettify(s)
8912}
8913
8914// GoString returns the string representation
8915func (s ServiceUnavailableException) GoString() string {
8916	return s.String()
8917}
8918
8919func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
8920	return &ServiceUnavailableException{
8921		RespMetadata: v,
8922	}
8923}
8924
8925// Code returns the exception type name.
8926func (s *ServiceUnavailableException) Code() string {
8927	return "ServiceUnavailableException"
8928}
8929
8930// Message returns the exception's message.
8931func (s *ServiceUnavailableException) Message() string {
8932	if s.Message_ != nil {
8933		return *s.Message_
8934	}
8935	return ""
8936}
8937
8938// OrigErr always returns nil, satisfies awserr.Error interface.
8939func (s *ServiceUnavailableException) OrigErr() error {
8940	return nil
8941}
8942
8943func (s *ServiceUnavailableException) Error() string {
8944	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8945}
8946
8947// Status code returns the HTTP status code for the request's response error.
8948func (s *ServiceUnavailableException) StatusCode() int {
8949	return s.RespMetadata.StatusCode
8950}
8951
8952// RequestID returns the service's response RequestID for request.
8953func (s *ServiceUnavailableException) RequestID() string {
8954	return s.RespMetadata.RequestID
8955}
8956
8957type TagResourceInput struct {
8958	_ struct{} `type:"structure"`
8959
8960	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
8961	// the supported resources are Amazon EKS clusters and managed node groups.
8962	//
8963	// ResourceArn is a required field
8964	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
8965
8966	// The tags to add to the resource. A tag is an array of key-value pairs.
8967	//
8968	// Tags is a required field
8969	Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"`
8970}
8971
8972// String returns the string representation
8973func (s TagResourceInput) String() string {
8974	return awsutil.Prettify(s)
8975}
8976
8977// GoString returns the string representation
8978func (s TagResourceInput) GoString() string {
8979	return s.String()
8980}
8981
8982// Validate inspects the fields of the type to determine if they are valid.
8983func (s *TagResourceInput) Validate() error {
8984	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
8985	if s.ResourceArn == nil {
8986		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
8987	}
8988	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
8989		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
8990	}
8991	if s.Tags == nil {
8992		invalidParams.Add(request.NewErrParamRequired("Tags"))
8993	}
8994	if s.Tags != nil && len(s.Tags) < 1 {
8995		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
8996	}
8997
8998	if invalidParams.Len() > 0 {
8999		return invalidParams
9000	}
9001	return nil
9002}
9003
9004// SetResourceArn sets the ResourceArn field's value.
9005func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
9006	s.ResourceArn = &v
9007	return s
9008}
9009
9010// SetTags sets the Tags field's value.
9011func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
9012	s.Tags = v
9013	return s
9014}
9015
9016type TagResourceOutput struct {
9017	_ struct{} `type:"structure"`
9018}
9019
9020// String returns the string representation
9021func (s TagResourceOutput) String() string {
9022	return awsutil.Prettify(s)
9023}
9024
9025// GoString returns the string representation
9026func (s TagResourceOutput) GoString() string {
9027	return s.String()
9028}
9029
9030// A property that allows a node to repel a set of pods.
9031type Taint struct {
9032	_ struct{} `type:"structure"`
9033
9034	// The effect of the taint.
9035	Effect *string `locationName:"effect" type:"string" enum:"TaintEffect"`
9036
9037	// The key of the taint.
9038	Key *string `locationName:"key" min:"1" type:"string"`
9039
9040	// The value of the taint.
9041	Value *string `locationName:"value" type:"string"`
9042}
9043
9044// String returns the string representation
9045func (s Taint) String() string {
9046	return awsutil.Prettify(s)
9047}
9048
9049// GoString returns the string representation
9050func (s Taint) GoString() string {
9051	return s.String()
9052}
9053
9054// Validate inspects the fields of the type to determine if they are valid.
9055func (s *Taint) Validate() error {
9056	invalidParams := request.ErrInvalidParams{Context: "Taint"}
9057	if s.Key != nil && len(*s.Key) < 1 {
9058		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
9059	}
9060
9061	if invalidParams.Len() > 0 {
9062		return invalidParams
9063	}
9064	return nil
9065}
9066
9067// SetEffect sets the Effect field's value.
9068func (s *Taint) SetEffect(v string) *Taint {
9069	s.Effect = &v
9070	return s
9071}
9072
9073// SetKey sets the Key field's value.
9074func (s *Taint) SetKey(v string) *Taint {
9075	s.Key = &v
9076	return s
9077}
9078
9079// SetValue sets the Value field's value.
9080func (s *Taint) SetValue(v string) *Taint {
9081	s.Value = &v
9082	return s
9083}
9084
9085// At least one of your specified cluster subnets is in an Availability Zone
9086// that does not support Amazon EKS. The exception output specifies the supported
9087// Availability Zones for your account, from which you can choose subnets for
9088// your cluster.
9089type UnsupportedAvailabilityZoneException struct {
9090	_            struct{}                  `type:"structure"`
9091	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9092
9093	// The Amazon EKS cluster associated with the exception.
9094	ClusterName *string `locationName:"clusterName" type:"string"`
9095
9096	Message_ *string `locationName:"message" type:"string"`
9097
9098	// The Amazon EKS managed node group associated with the exception.
9099	NodegroupName *string `locationName:"nodegroupName" type:"string"`
9100
9101	// The supported Availability Zones for your account. Choose subnets in these
9102	// Availability Zones for your cluster.
9103	ValidZones []*string `locationName:"validZones" type:"list"`
9104}
9105
9106// String returns the string representation
9107func (s UnsupportedAvailabilityZoneException) String() string {
9108	return awsutil.Prettify(s)
9109}
9110
9111// GoString returns the string representation
9112func (s UnsupportedAvailabilityZoneException) GoString() string {
9113	return s.String()
9114}
9115
9116func newErrorUnsupportedAvailabilityZoneException(v protocol.ResponseMetadata) error {
9117	return &UnsupportedAvailabilityZoneException{
9118		RespMetadata: v,
9119	}
9120}
9121
9122// Code returns the exception type name.
9123func (s *UnsupportedAvailabilityZoneException) Code() string {
9124	return "UnsupportedAvailabilityZoneException"
9125}
9126
9127// Message returns the exception's message.
9128func (s *UnsupportedAvailabilityZoneException) Message() string {
9129	if s.Message_ != nil {
9130		return *s.Message_
9131	}
9132	return ""
9133}
9134
9135// OrigErr always returns nil, satisfies awserr.Error interface.
9136func (s *UnsupportedAvailabilityZoneException) OrigErr() error {
9137	return nil
9138}
9139
9140func (s *UnsupportedAvailabilityZoneException) Error() string {
9141	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9142}
9143
9144// Status code returns the HTTP status code for the request's response error.
9145func (s *UnsupportedAvailabilityZoneException) StatusCode() int {
9146	return s.RespMetadata.StatusCode
9147}
9148
9149// RequestID returns the service's response RequestID for request.
9150func (s *UnsupportedAvailabilityZoneException) RequestID() string {
9151	return s.RespMetadata.RequestID
9152}
9153
9154type UntagResourceInput struct {
9155	_ struct{} `type:"structure"`
9156
9157	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
9158	// Currently, the supported resources are Amazon EKS clusters and managed node
9159	// groups.
9160	//
9161	// ResourceArn is a required field
9162	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
9163
9164	// The keys of the tags to be removed.
9165	//
9166	// TagKeys is a required field
9167	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
9168}
9169
9170// String returns the string representation
9171func (s UntagResourceInput) String() string {
9172	return awsutil.Prettify(s)
9173}
9174
9175// GoString returns the string representation
9176func (s UntagResourceInput) GoString() string {
9177	return s.String()
9178}
9179
9180// Validate inspects the fields of the type to determine if they are valid.
9181func (s *UntagResourceInput) Validate() error {
9182	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9183	if s.ResourceArn == nil {
9184		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9185	}
9186	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9187		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9188	}
9189	if s.TagKeys == nil {
9190		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9191	}
9192	if s.TagKeys != nil && len(s.TagKeys) < 1 {
9193		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
9194	}
9195
9196	if invalidParams.Len() > 0 {
9197		return invalidParams
9198	}
9199	return nil
9200}
9201
9202// SetResourceArn sets the ResourceArn field's value.
9203func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
9204	s.ResourceArn = &v
9205	return s
9206}
9207
9208// SetTagKeys sets the TagKeys field's value.
9209func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9210	s.TagKeys = v
9211	return s
9212}
9213
9214type UntagResourceOutput struct {
9215	_ struct{} `type:"structure"`
9216}
9217
9218// String returns the string representation
9219func (s UntagResourceOutput) String() string {
9220	return awsutil.Prettify(s)
9221}
9222
9223// GoString returns the string representation
9224func (s UntagResourceOutput) GoString() string {
9225	return s.String()
9226}
9227
9228// An object representing an asynchronous update.
9229type Update struct {
9230	_ struct{} `type:"structure"`
9231
9232	// The Unix epoch timestamp in seconds for when the update was created.
9233	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
9234
9235	// Any errors associated with a Failed update.
9236	Errors []*ErrorDetail `locationName:"errors" type:"list"`
9237
9238	// A UUID that is used to track the update.
9239	Id *string `locationName:"id" type:"string"`
9240
9241	// A key-value map that contains the parameters associated with the update.
9242	Params []*UpdateParam `locationName:"params" type:"list"`
9243
9244	// The current status of the update.
9245	Status *string `locationName:"status" type:"string" enum:"UpdateStatus"`
9246
9247	// The type of the update.
9248	Type *string `locationName:"type" type:"string" enum:"UpdateType"`
9249}
9250
9251// String returns the string representation
9252func (s Update) String() string {
9253	return awsutil.Prettify(s)
9254}
9255
9256// GoString returns the string representation
9257func (s Update) GoString() string {
9258	return s.String()
9259}
9260
9261// SetCreatedAt sets the CreatedAt field's value.
9262func (s *Update) SetCreatedAt(v time.Time) *Update {
9263	s.CreatedAt = &v
9264	return s
9265}
9266
9267// SetErrors sets the Errors field's value.
9268func (s *Update) SetErrors(v []*ErrorDetail) *Update {
9269	s.Errors = v
9270	return s
9271}
9272
9273// SetId sets the Id field's value.
9274func (s *Update) SetId(v string) *Update {
9275	s.Id = &v
9276	return s
9277}
9278
9279// SetParams sets the Params field's value.
9280func (s *Update) SetParams(v []*UpdateParam) *Update {
9281	s.Params = v
9282	return s
9283}
9284
9285// SetStatus sets the Status field's value.
9286func (s *Update) SetStatus(v string) *Update {
9287	s.Status = &v
9288	return s
9289}
9290
9291// SetType sets the Type field's value.
9292func (s *Update) SetType(v string) *Update {
9293	s.Type = &v
9294	return s
9295}
9296
9297type UpdateAddonInput struct {
9298	_ struct{} `type:"structure"`
9299
9300	// The name of the add-on. The name must match one of the names returned by
9301	// ListAddons (https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html).
9302	//
9303	// AddonName is a required field
9304	AddonName *string `location:"uri" locationName:"addonName" type:"string" required:"true"`
9305
9306	// The version of the add-on. The version must match one of the versions returned
9307	// by DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html).
9308	AddonVersion *string `locationName:"addonVersion" type:"string"`
9309
9310	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9311	// of the request.
9312	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
9313
9314	// The name of the cluster.
9315	//
9316	// ClusterName is a required field
9317	ClusterName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
9318
9319	// How to resolve parameter value conflicts when applying the new version of
9320	// the add-on to the cluster.
9321	ResolveConflicts *string `locationName:"resolveConflicts" type:"string" enum:"ResolveConflicts"`
9322
9323	// The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's
9324	// service account. The role must be assigned the IAM permissions required by
9325	// the add-on. If you don't specify an existing IAM role, then the add-on uses
9326	// the permissions assigned to the node IAM role. For more information, see
9327	// Amazon EKS node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html)
9328	// in the Amazon EKS User Guide.
9329	//
9330	// To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC)
9331	// provider created for your cluster. For more information, see Enabling IAM
9332	// roles for service accounts on your cluster (https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)
9333	// in the Amazon EKS User Guide.
9334	ServiceAccountRoleArn *string `locationName:"serviceAccountRoleArn" min:"1" type:"string"`
9335}
9336
9337// String returns the string representation
9338func (s UpdateAddonInput) String() string {
9339	return awsutil.Prettify(s)
9340}
9341
9342// GoString returns the string representation
9343func (s UpdateAddonInput) GoString() string {
9344	return s.String()
9345}
9346
9347// Validate inspects the fields of the type to determine if they are valid.
9348func (s *UpdateAddonInput) Validate() error {
9349	invalidParams := request.ErrInvalidParams{Context: "UpdateAddonInput"}
9350	if s.AddonName == nil {
9351		invalidParams.Add(request.NewErrParamRequired("AddonName"))
9352	}
9353	if s.AddonName != nil && len(*s.AddonName) < 1 {
9354		invalidParams.Add(request.NewErrParamMinLen("AddonName", 1))
9355	}
9356	if s.ClusterName == nil {
9357		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
9358	}
9359	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
9360		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
9361	}
9362	if s.ServiceAccountRoleArn != nil && len(*s.ServiceAccountRoleArn) < 1 {
9363		invalidParams.Add(request.NewErrParamMinLen("ServiceAccountRoleArn", 1))
9364	}
9365
9366	if invalidParams.Len() > 0 {
9367		return invalidParams
9368	}
9369	return nil
9370}
9371
9372// SetAddonName sets the AddonName field's value.
9373func (s *UpdateAddonInput) SetAddonName(v string) *UpdateAddonInput {
9374	s.AddonName = &v
9375	return s
9376}
9377
9378// SetAddonVersion sets the AddonVersion field's value.
9379func (s *UpdateAddonInput) SetAddonVersion(v string) *UpdateAddonInput {
9380	s.AddonVersion = &v
9381	return s
9382}
9383
9384// SetClientRequestToken sets the ClientRequestToken field's value.
9385func (s *UpdateAddonInput) SetClientRequestToken(v string) *UpdateAddonInput {
9386	s.ClientRequestToken = &v
9387	return s
9388}
9389
9390// SetClusterName sets the ClusterName field's value.
9391func (s *UpdateAddonInput) SetClusterName(v string) *UpdateAddonInput {
9392	s.ClusterName = &v
9393	return s
9394}
9395
9396// SetResolveConflicts sets the ResolveConflicts field's value.
9397func (s *UpdateAddonInput) SetResolveConflicts(v string) *UpdateAddonInput {
9398	s.ResolveConflicts = &v
9399	return s
9400}
9401
9402// SetServiceAccountRoleArn sets the ServiceAccountRoleArn field's value.
9403func (s *UpdateAddonInput) SetServiceAccountRoleArn(v string) *UpdateAddonInput {
9404	s.ServiceAccountRoleArn = &v
9405	return s
9406}
9407
9408type UpdateAddonOutput struct {
9409	_ struct{} `type:"structure"`
9410
9411	// An object representing an asynchronous update.
9412	Update *Update `locationName:"update" type:"structure"`
9413}
9414
9415// String returns the string representation
9416func (s UpdateAddonOutput) String() string {
9417	return awsutil.Prettify(s)
9418}
9419
9420// GoString returns the string representation
9421func (s UpdateAddonOutput) GoString() string {
9422	return s.String()
9423}
9424
9425// SetUpdate sets the Update field's value.
9426func (s *UpdateAddonOutput) SetUpdate(v *Update) *UpdateAddonOutput {
9427	s.Update = v
9428	return s
9429}
9430
9431type UpdateClusterConfigInput struct {
9432	_ struct{} `type:"structure"`
9433
9434	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9435	// of the request.
9436	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
9437
9438	// Enable or disable exporting the Kubernetes control plane logs for your cluster
9439	// to CloudWatch Logs. By default, cluster control plane logs aren't exported
9440	// to CloudWatch Logs. For more information, see Amazon EKS cluster control
9441	// plane logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)
9442	// in the Amazon EKS User Guide .
9443	//
9444	// CloudWatch Logs ingestion, archive storage, and data scanning rates apply
9445	// to exported control plane logs. For more information, see CloudWatch Pricing
9446	// (http://aws.amazon.com/cloudwatch/pricing/).
9447	Logging *Logging `locationName:"logging" type:"structure"`
9448
9449	// The name of the Amazon EKS cluster to update.
9450	//
9451	// Name is a required field
9452	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
9453
9454	// An object representing the VPC configuration to use for an Amazon EKS cluster.
9455	ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure"`
9456}
9457
9458// String returns the string representation
9459func (s UpdateClusterConfigInput) String() string {
9460	return awsutil.Prettify(s)
9461}
9462
9463// GoString returns the string representation
9464func (s UpdateClusterConfigInput) GoString() string {
9465	return s.String()
9466}
9467
9468// Validate inspects the fields of the type to determine if they are valid.
9469func (s *UpdateClusterConfigInput) Validate() error {
9470	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterConfigInput"}
9471	if s.Name == nil {
9472		invalidParams.Add(request.NewErrParamRequired("Name"))
9473	}
9474	if s.Name != nil && len(*s.Name) < 1 {
9475		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9476	}
9477
9478	if invalidParams.Len() > 0 {
9479		return invalidParams
9480	}
9481	return nil
9482}
9483
9484// SetClientRequestToken sets the ClientRequestToken field's value.
9485func (s *UpdateClusterConfigInput) SetClientRequestToken(v string) *UpdateClusterConfigInput {
9486	s.ClientRequestToken = &v
9487	return s
9488}
9489
9490// SetLogging sets the Logging field's value.
9491func (s *UpdateClusterConfigInput) SetLogging(v *Logging) *UpdateClusterConfigInput {
9492	s.Logging = v
9493	return s
9494}
9495
9496// SetName sets the Name field's value.
9497func (s *UpdateClusterConfigInput) SetName(v string) *UpdateClusterConfigInput {
9498	s.Name = &v
9499	return s
9500}
9501
9502// SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.
9503func (s *UpdateClusterConfigInput) SetResourcesVpcConfig(v *VpcConfigRequest) *UpdateClusterConfigInput {
9504	s.ResourcesVpcConfig = v
9505	return s
9506}
9507
9508type UpdateClusterConfigOutput struct {
9509	_ struct{} `type:"structure"`
9510
9511	// An object representing an asynchronous update.
9512	Update *Update `locationName:"update" type:"structure"`
9513}
9514
9515// String returns the string representation
9516func (s UpdateClusterConfigOutput) String() string {
9517	return awsutil.Prettify(s)
9518}
9519
9520// GoString returns the string representation
9521func (s UpdateClusterConfigOutput) GoString() string {
9522	return s.String()
9523}
9524
9525// SetUpdate sets the Update field's value.
9526func (s *UpdateClusterConfigOutput) SetUpdate(v *Update) *UpdateClusterConfigOutput {
9527	s.Update = v
9528	return s
9529}
9530
9531type UpdateClusterVersionInput struct {
9532	_ struct{} `type:"structure"`
9533
9534	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9535	// of the request.
9536	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
9537
9538	// The name of the Amazon EKS cluster to update.
9539	//
9540	// Name is a required field
9541	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
9542
9543	// The desired Kubernetes version following a successful update.
9544	//
9545	// Version is a required field
9546	Version *string `locationName:"version" type:"string" required:"true"`
9547}
9548
9549// String returns the string representation
9550func (s UpdateClusterVersionInput) String() string {
9551	return awsutil.Prettify(s)
9552}
9553
9554// GoString returns the string representation
9555func (s UpdateClusterVersionInput) GoString() string {
9556	return s.String()
9557}
9558
9559// Validate inspects the fields of the type to determine if they are valid.
9560func (s *UpdateClusterVersionInput) Validate() error {
9561	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterVersionInput"}
9562	if s.Name == nil {
9563		invalidParams.Add(request.NewErrParamRequired("Name"))
9564	}
9565	if s.Name != nil && len(*s.Name) < 1 {
9566		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9567	}
9568	if s.Version == nil {
9569		invalidParams.Add(request.NewErrParamRequired("Version"))
9570	}
9571
9572	if invalidParams.Len() > 0 {
9573		return invalidParams
9574	}
9575	return nil
9576}
9577
9578// SetClientRequestToken sets the ClientRequestToken field's value.
9579func (s *UpdateClusterVersionInput) SetClientRequestToken(v string) *UpdateClusterVersionInput {
9580	s.ClientRequestToken = &v
9581	return s
9582}
9583
9584// SetName sets the Name field's value.
9585func (s *UpdateClusterVersionInput) SetName(v string) *UpdateClusterVersionInput {
9586	s.Name = &v
9587	return s
9588}
9589
9590// SetVersion sets the Version field's value.
9591func (s *UpdateClusterVersionInput) SetVersion(v string) *UpdateClusterVersionInput {
9592	s.Version = &v
9593	return s
9594}
9595
9596type UpdateClusterVersionOutput struct {
9597	_ struct{} `type:"structure"`
9598
9599	// The full description of the specified update
9600	Update *Update `locationName:"update" type:"structure"`
9601}
9602
9603// String returns the string representation
9604func (s UpdateClusterVersionOutput) String() string {
9605	return awsutil.Prettify(s)
9606}
9607
9608// GoString returns the string representation
9609func (s UpdateClusterVersionOutput) GoString() string {
9610	return s.String()
9611}
9612
9613// SetUpdate sets the Update field's value.
9614func (s *UpdateClusterVersionOutput) SetUpdate(v *Update) *UpdateClusterVersionOutput {
9615	s.Update = v
9616	return s
9617}
9618
9619// An object representing a Kubernetes label change for a managed node group.
9620type UpdateLabelsPayload struct {
9621	_ struct{} `type:"structure"`
9622
9623	// Kubernetes labels to be added or updated.
9624	AddOrUpdateLabels map[string]*string `locationName:"addOrUpdateLabels" type:"map"`
9625
9626	// Kubernetes labels to be removed.
9627	RemoveLabels []*string `locationName:"removeLabels" type:"list"`
9628}
9629
9630// String returns the string representation
9631func (s UpdateLabelsPayload) String() string {
9632	return awsutil.Prettify(s)
9633}
9634
9635// GoString returns the string representation
9636func (s UpdateLabelsPayload) GoString() string {
9637	return s.String()
9638}
9639
9640// SetAddOrUpdateLabels sets the AddOrUpdateLabels field's value.
9641func (s *UpdateLabelsPayload) SetAddOrUpdateLabels(v map[string]*string) *UpdateLabelsPayload {
9642	s.AddOrUpdateLabels = v
9643	return s
9644}
9645
9646// SetRemoveLabels sets the RemoveLabels field's value.
9647func (s *UpdateLabelsPayload) SetRemoveLabels(v []*string) *UpdateLabelsPayload {
9648	s.RemoveLabels = v
9649	return s
9650}
9651
9652type UpdateNodegroupConfigInput struct {
9653	_ struct{} `type:"structure"`
9654
9655	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9656	// of the request.
9657	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
9658
9659	// The name of the Amazon EKS cluster that the managed node group resides in.
9660	//
9661	// ClusterName is a required field
9662	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
9663
9664	// The Kubernetes labels to be applied to the nodes in the node group after
9665	// the update.
9666	Labels *UpdateLabelsPayload `locationName:"labels" type:"structure"`
9667
9668	// The name of the managed node group to update.
9669	//
9670	// NodegroupName is a required field
9671	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
9672
9673	// The scaling configuration details for the Auto Scaling group after the update.
9674	ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"`
9675
9676	// The Kubernetes taints to be applied to the nodes in the node group after
9677	// the update.
9678	Taints *UpdateTaintsPayload `locationName:"taints" type:"structure"`
9679
9680	// The node group update configuration.
9681	UpdateConfig *NodegroupUpdateConfig `locationName:"updateConfig" type:"structure"`
9682}
9683
9684// String returns the string representation
9685func (s UpdateNodegroupConfigInput) String() string {
9686	return awsutil.Prettify(s)
9687}
9688
9689// GoString returns the string representation
9690func (s UpdateNodegroupConfigInput) GoString() string {
9691	return s.String()
9692}
9693
9694// Validate inspects the fields of the type to determine if they are valid.
9695func (s *UpdateNodegroupConfigInput) Validate() error {
9696	invalidParams := request.ErrInvalidParams{Context: "UpdateNodegroupConfigInput"}
9697	if s.ClusterName == nil {
9698		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
9699	}
9700	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
9701		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
9702	}
9703	if s.NodegroupName == nil {
9704		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
9705	}
9706	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
9707		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
9708	}
9709	if s.ScalingConfig != nil {
9710		if err := s.ScalingConfig.Validate(); err != nil {
9711			invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams))
9712		}
9713	}
9714	if s.Taints != nil {
9715		if err := s.Taints.Validate(); err != nil {
9716			invalidParams.AddNested("Taints", err.(request.ErrInvalidParams))
9717		}
9718	}
9719	if s.UpdateConfig != nil {
9720		if err := s.UpdateConfig.Validate(); err != nil {
9721			invalidParams.AddNested("UpdateConfig", err.(request.ErrInvalidParams))
9722		}
9723	}
9724
9725	if invalidParams.Len() > 0 {
9726		return invalidParams
9727	}
9728	return nil
9729}
9730
9731// SetClientRequestToken sets the ClientRequestToken field's value.
9732func (s *UpdateNodegroupConfigInput) SetClientRequestToken(v string) *UpdateNodegroupConfigInput {
9733	s.ClientRequestToken = &v
9734	return s
9735}
9736
9737// SetClusterName sets the ClusterName field's value.
9738func (s *UpdateNodegroupConfigInput) SetClusterName(v string) *UpdateNodegroupConfigInput {
9739	s.ClusterName = &v
9740	return s
9741}
9742
9743// SetLabels sets the Labels field's value.
9744func (s *UpdateNodegroupConfigInput) SetLabels(v *UpdateLabelsPayload) *UpdateNodegroupConfigInput {
9745	s.Labels = v
9746	return s
9747}
9748
9749// SetNodegroupName sets the NodegroupName field's value.
9750func (s *UpdateNodegroupConfigInput) SetNodegroupName(v string) *UpdateNodegroupConfigInput {
9751	s.NodegroupName = &v
9752	return s
9753}
9754
9755// SetScalingConfig sets the ScalingConfig field's value.
9756func (s *UpdateNodegroupConfigInput) SetScalingConfig(v *NodegroupScalingConfig) *UpdateNodegroupConfigInput {
9757	s.ScalingConfig = v
9758	return s
9759}
9760
9761// SetTaints sets the Taints field's value.
9762func (s *UpdateNodegroupConfigInput) SetTaints(v *UpdateTaintsPayload) *UpdateNodegroupConfigInput {
9763	s.Taints = v
9764	return s
9765}
9766
9767// SetUpdateConfig sets the UpdateConfig field's value.
9768func (s *UpdateNodegroupConfigInput) SetUpdateConfig(v *NodegroupUpdateConfig) *UpdateNodegroupConfigInput {
9769	s.UpdateConfig = v
9770	return s
9771}
9772
9773type UpdateNodegroupConfigOutput struct {
9774	_ struct{} `type:"structure"`
9775
9776	// An object representing an asynchronous update.
9777	Update *Update `locationName:"update" type:"structure"`
9778}
9779
9780// String returns the string representation
9781func (s UpdateNodegroupConfigOutput) String() string {
9782	return awsutil.Prettify(s)
9783}
9784
9785// GoString returns the string representation
9786func (s UpdateNodegroupConfigOutput) GoString() string {
9787	return s.String()
9788}
9789
9790// SetUpdate sets the Update field's value.
9791func (s *UpdateNodegroupConfigOutput) SetUpdate(v *Update) *UpdateNodegroupConfigOutput {
9792	s.Update = v
9793	return s
9794}
9795
9796type UpdateNodegroupVersionInput struct {
9797	_ struct{} `type:"structure"`
9798
9799	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9800	// of the request.
9801	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
9802
9803	// The name of the Amazon EKS cluster that is associated with the managed node
9804	// group to update.
9805	//
9806	// ClusterName is a required field
9807	ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"`
9808
9809	// Force the update if the existing node group's pods are unable to be drained
9810	// due to a pod disruption budget issue. If an update fails because pods could
9811	// not be drained, you can force the update after it fails to terminate the
9812	// old node whether or not any pods are running on the node.
9813	Force *bool `locationName:"force" type:"boolean"`
9814
9815	// An object representing a node group's launch template specification. You
9816	// can only update a node group using a launch template if the node group was
9817	// originally deployed with a launch template.
9818	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
9819
9820	// The name of the managed node group to update.
9821	//
9822	// NodegroupName is a required field
9823	NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"`
9824
9825	// The AMI version of the Amazon EKS optimized AMI to use for the update. By
9826	// default, the latest available AMI version for the node group's Kubernetes
9827	// version is used. For more information, see Amazon EKS optimized Amazon Linux
9828	// 2 AMI versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)
9829	// in the Amazon EKS User Guide. If you specify launchTemplate, and your launch
9830	// template uses a custom AMI, then don't specify releaseVersion, or the node
9831	// group update will fail. For more information about using launch templates
9832	// with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
9833	// in the Amazon EKS User Guide.
9834	ReleaseVersion *string `locationName:"releaseVersion" type:"string"`
9835
9836	// The Kubernetes version to update to. If no version is specified, then the
9837	// Kubernetes version of the node group does not change. You can specify the
9838	// Kubernetes version of the cluster to update the node group to the latest
9839	// AMI version of the cluster's Kubernetes version. If you specify launchTemplate,
9840	// and your launch template uses a custom AMI, then don't specify version, or
9841	// the node group update will fail. For more information about using launch
9842	// templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
9843	// in the Amazon EKS User Guide.
9844	Version *string `locationName:"version" type:"string"`
9845}
9846
9847// String returns the string representation
9848func (s UpdateNodegroupVersionInput) String() string {
9849	return awsutil.Prettify(s)
9850}
9851
9852// GoString returns the string representation
9853func (s UpdateNodegroupVersionInput) GoString() string {
9854	return s.String()
9855}
9856
9857// Validate inspects the fields of the type to determine if they are valid.
9858func (s *UpdateNodegroupVersionInput) Validate() error {
9859	invalidParams := request.ErrInvalidParams{Context: "UpdateNodegroupVersionInput"}
9860	if s.ClusterName == nil {
9861		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
9862	}
9863	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
9864		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
9865	}
9866	if s.NodegroupName == nil {
9867		invalidParams.Add(request.NewErrParamRequired("NodegroupName"))
9868	}
9869	if s.NodegroupName != nil && len(*s.NodegroupName) < 1 {
9870		invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1))
9871	}
9872
9873	if invalidParams.Len() > 0 {
9874		return invalidParams
9875	}
9876	return nil
9877}
9878
9879// SetClientRequestToken sets the ClientRequestToken field's value.
9880func (s *UpdateNodegroupVersionInput) SetClientRequestToken(v string) *UpdateNodegroupVersionInput {
9881	s.ClientRequestToken = &v
9882	return s
9883}
9884
9885// SetClusterName sets the ClusterName field's value.
9886func (s *UpdateNodegroupVersionInput) SetClusterName(v string) *UpdateNodegroupVersionInput {
9887	s.ClusterName = &v
9888	return s
9889}
9890
9891// SetForce sets the Force field's value.
9892func (s *UpdateNodegroupVersionInput) SetForce(v bool) *UpdateNodegroupVersionInput {
9893	s.Force = &v
9894	return s
9895}
9896
9897// SetLaunchTemplate sets the LaunchTemplate field's value.
9898func (s *UpdateNodegroupVersionInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *UpdateNodegroupVersionInput {
9899	s.LaunchTemplate = v
9900	return s
9901}
9902
9903// SetNodegroupName sets the NodegroupName field's value.
9904func (s *UpdateNodegroupVersionInput) SetNodegroupName(v string) *UpdateNodegroupVersionInput {
9905	s.NodegroupName = &v
9906	return s
9907}
9908
9909// SetReleaseVersion sets the ReleaseVersion field's value.
9910func (s *UpdateNodegroupVersionInput) SetReleaseVersion(v string) *UpdateNodegroupVersionInput {
9911	s.ReleaseVersion = &v
9912	return s
9913}
9914
9915// SetVersion sets the Version field's value.
9916func (s *UpdateNodegroupVersionInput) SetVersion(v string) *UpdateNodegroupVersionInput {
9917	s.Version = &v
9918	return s
9919}
9920
9921type UpdateNodegroupVersionOutput struct {
9922	_ struct{} `type:"structure"`
9923
9924	// An object representing an asynchronous update.
9925	Update *Update `locationName:"update" type:"structure"`
9926}
9927
9928// String returns the string representation
9929func (s UpdateNodegroupVersionOutput) String() string {
9930	return awsutil.Prettify(s)
9931}
9932
9933// GoString returns the string representation
9934func (s UpdateNodegroupVersionOutput) GoString() string {
9935	return s.String()
9936}
9937
9938// SetUpdate sets the Update field's value.
9939func (s *UpdateNodegroupVersionOutput) SetUpdate(v *Update) *UpdateNodegroupVersionOutput {
9940	s.Update = v
9941	return s
9942}
9943
9944// An object representing the details of an update request.
9945type UpdateParam struct {
9946	_ struct{} `type:"structure"`
9947
9948	// The keys associated with an update request.
9949	Type *string `locationName:"type" type:"string" enum:"UpdateParamType"`
9950
9951	// The value of the keys submitted as part of an update request.
9952	Value *string `locationName:"value" type:"string"`
9953}
9954
9955// String returns the string representation
9956func (s UpdateParam) String() string {
9957	return awsutil.Prettify(s)
9958}
9959
9960// GoString returns the string representation
9961func (s UpdateParam) GoString() string {
9962	return s.String()
9963}
9964
9965// SetType sets the Type field's value.
9966func (s *UpdateParam) SetType(v string) *UpdateParam {
9967	s.Type = &v
9968	return s
9969}
9970
9971// SetValue sets the Value field's value.
9972func (s *UpdateParam) SetValue(v string) *UpdateParam {
9973	s.Value = &v
9974	return s
9975}
9976
9977// An object representing the details of an update to a taints payload.
9978type UpdateTaintsPayload struct {
9979	_ struct{} `type:"structure"`
9980
9981	// Kubernetes taints to be added or updated.
9982	AddOrUpdateTaints []*Taint `locationName:"addOrUpdateTaints" type:"list"`
9983
9984	// Kubernetes taints to be removed.
9985	RemoveTaints []*Taint `locationName:"removeTaints" type:"list"`
9986}
9987
9988// String returns the string representation
9989func (s UpdateTaintsPayload) String() string {
9990	return awsutil.Prettify(s)
9991}
9992
9993// GoString returns the string representation
9994func (s UpdateTaintsPayload) GoString() string {
9995	return s.String()
9996}
9997
9998// Validate inspects the fields of the type to determine if they are valid.
9999func (s *UpdateTaintsPayload) Validate() error {
10000	invalidParams := request.ErrInvalidParams{Context: "UpdateTaintsPayload"}
10001	if s.AddOrUpdateTaints != nil {
10002		for i, v := range s.AddOrUpdateTaints {
10003			if v == nil {
10004				continue
10005			}
10006			if err := v.Validate(); err != nil {
10007				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AddOrUpdateTaints", i), err.(request.ErrInvalidParams))
10008			}
10009		}
10010	}
10011	if s.RemoveTaints != nil {
10012		for i, v := range s.RemoveTaints {
10013			if v == nil {
10014				continue
10015			}
10016			if err := v.Validate(); err != nil {
10017				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RemoveTaints", i), err.(request.ErrInvalidParams))
10018			}
10019		}
10020	}
10021
10022	if invalidParams.Len() > 0 {
10023		return invalidParams
10024	}
10025	return nil
10026}
10027
10028// SetAddOrUpdateTaints sets the AddOrUpdateTaints field's value.
10029func (s *UpdateTaintsPayload) SetAddOrUpdateTaints(v []*Taint) *UpdateTaintsPayload {
10030	s.AddOrUpdateTaints = v
10031	return s
10032}
10033
10034// SetRemoveTaints sets the RemoveTaints field's value.
10035func (s *UpdateTaintsPayload) SetRemoveTaints(v []*Taint) *UpdateTaintsPayload {
10036	s.RemoveTaints = v
10037	return s
10038}
10039
10040// An object representing the VPC configuration to use for an Amazon EKS cluster.
10041type VpcConfigRequest struct {
10042	_ struct{} `type:"structure"`
10043
10044	// Set this value to true to enable private access for your cluster's Kubernetes
10045	// API server endpoint. If you enable private access, Kubernetes API requests
10046	// from within your cluster's VPC use the private VPC endpoint. The default
10047	// value for this parameter is false, which disables private access for your
10048	// Kubernetes API server. If you disable private access and you have nodes or
10049	// Fargate pods in the cluster, then ensure that publicAccessCidrs includes
10050	// the necessary CIDR blocks for communication with the nodes or Fargate pods.
10051	// For more information, see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
10052	// in the Amazon EKS User Guide .
10053	EndpointPrivateAccess *bool `locationName:"endpointPrivateAccess" type:"boolean"`
10054
10055	// Set this value to false to disable public access to your cluster's Kubernetes
10056	// API server endpoint. If you disable public access, your cluster's Kubernetes
10057	// API server can only receive requests from within the cluster VPC. The default
10058	// value for this parameter is true, which enables public access for your Kubernetes
10059	// API server. For more information, see Amazon EKS cluster endpoint access
10060	// control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
10061	// in the Amazon EKS User Guide .
10062	EndpointPublicAccess *bool `locationName:"endpointPublicAccess" type:"boolean"`
10063
10064	// The CIDR blocks that are allowed access to your cluster's public Kubernetes
10065	// API server endpoint. Communication to the endpoint from addresses outside
10066	// of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0.
10067	// If you've disabled private endpoint access and you have nodes or Fargate
10068	// pods in the cluster, then ensure that you specify the necessary CIDR blocks.
10069	// For more information, see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
10070	// in the Amazon EKS User Guide .
10071	PublicAccessCidrs []*string `locationName:"publicAccessCidrs" type:"list"`
10072
10073	// Specify one or more security groups for the cross-account elastic network
10074	// interfaces that Amazon EKS creates to use that allow communication between
10075	// your nodes and the Kubernetes control plane. If you don't specify any security
10076	// groups, then familiarize yourself with the difference between Amazon EKS
10077	// defaults for clusters deployed with Kubernetes:
10078	//
10079	//    * 1.14 Amazon EKS platform version eks.2 and earlier
10080	//
10081	//    * 1.14 Amazon EKS platform version eks.3 and later
10082	//
10083	// For more information, see Amazon EKS security group considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
10084	// in the Amazon EKS User Guide .
10085	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
10086
10087	// Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account
10088	// elastic network interfaces in these subnets to allow communication between
10089	// your nodes and the Kubernetes control plane.
10090	SubnetIds []*string `locationName:"subnetIds" type:"list"`
10091}
10092
10093// String returns the string representation
10094func (s VpcConfigRequest) String() string {
10095	return awsutil.Prettify(s)
10096}
10097
10098// GoString returns the string representation
10099func (s VpcConfigRequest) GoString() string {
10100	return s.String()
10101}
10102
10103// SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value.
10104func (s *VpcConfigRequest) SetEndpointPrivateAccess(v bool) *VpcConfigRequest {
10105	s.EndpointPrivateAccess = &v
10106	return s
10107}
10108
10109// SetEndpointPublicAccess sets the EndpointPublicAccess field's value.
10110func (s *VpcConfigRequest) SetEndpointPublicAccess(v bool) *VpcConfigRequest {
10111	s.EndpointPublicAccess = &v
10112	return s
10113}
10114
10115// SetPublicAccessCidrs sets the PublicAccessCidrs field's value.
10116func (s *VpcConfigRequest) SetPublicAccessCidrs(v []*string) *VpcConfigRequest {
10117	s.PublicAccessCidrs = v
10118	return s
10119}
10120
10121// SetSecurityGroupIds sets the SecurityGroupIds field's value.
10122func (s *VpcConfigRequest) SetSecurityGroupIds(v []*string) *VpcConfigRequest {
10123	s.SecurityGroupIds = v
10124	return s
10125}
10126
10127// SetSubnetIds sets the SubnetIds field's value.
10128func (s *VpcConfigRequest) SetSubnetIds(v []*string) *VpcConfigRequest {
10129	s.SubnetIds = v
10130	return s
10131}
10132
10133// An object representing an Amazon EKS cluster VPC configuration response.
10134type VpcConfigResponse struct {
10135	_ struct{} `type:"structure"`
10136
10137	// The cluster security group that was created by Amazon EKS for the cluster.
10138	// Managed node groups use this security group for control-plane-to-data-plane
10139	// communication.
10140	ClusterSecurityGroupId *string `locationName:"clusterSecurityGroupId" type:"string"`
10141
10142	// This parameter indicates whether the Amazon EKS private API server endpoint
10143	// is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes
10144	// API requests that originate from within your cluster's VPC use the private
10145	// VPC endpoint instead of traversing the internet. If this value is disabled
10146	// and you have nodes or Fargate pods in the cluster, then ensure that publicAccessCidrs
10147	// includes the necessary CIDR blocks for communication with the nodes or Fargate
10148	// pods. For more information, see Amazon EKS cluster endpoint access control
10149	// (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
10150	// in the Amazon EKS User Guide .
10151	EndpointPrivateAccess *bool `locationName:"endpointPrivateAccess" type:"boolean"`
10152
10153	// This parameter indicates whether the Amazon EKS public API server endpoint
10154	// is enabled. If the Amazon EKS public API server endpoint is disabled, your
10155	// cluster's Kubernetes API server can only receive requests that originate
10156	// from within the cluster VPC.
10157	EndpointPublicAccess *bool `locationName:"endpointPublicAccess" type:"boolean"`
10158
10159	// The CIDR blocks that are allowed access to your cluster's public Kubernetes
10160	// API server endpoint. Communication to the endpoint from addresses outside
10161	// of the listed CIDR blocks is denied. The default value is 0.0.0.0/0. If you've
10162	// disabled private endpoint access and you have nodes or Fargate pods in the
10163	// cluster, then ensure that the necessary CIDR blocks are listed. For more
10164	// information, see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)
10165	// in the Amazon EKS User Guide .
10166	PublicAccessCidrs []*string `locationName:"publicAccessCidrs" type:"list"`
10167
10168	// The security groups associated with the cross-account elastic network interfaces
10169	// that are used to allow communication between your nodes and the Kubernetes
10170	// control plane.
10171	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
10172
10173	// The subnets associated with your cluster.
10174	SubnetIds []*string `locationName:"subnetIds" type:"list"`
10175
10176	// The VPC associated with your cluster.
10177	VpcId *string `locationName:"vpcId" type:"string"`
10178}
10179
10180// String returns the string representation
10181func (s VpcConfigResponse) String() string {
10182	return awsutil.Prettify(s)
10183}
10184
10185// GoString returns the string representation
10186func (s VpcConfigResponse) GoString() string {
10187	return s.String()
10188}
10189
10190// SetClusterSecurityGroupId sets the ClusterSecurityGroupId field's value.
10191func (s *VpcConfigResponse) SetClusterSecurityGroupId(v string) *VpcConfigResponse {
10192	s.ClusterSecurityGroupId = &v
10193	return s
10194}
10195
10196// SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value.
10197func (s *VpcConfigResponse) SetEndpointPrivateAccess(v bool) *VpcConfigResponse {
10198	s.EndpointPrivateAccess = &v
10199	return s
10200}
10201
10202// SetEndpointPublicAccess sets the EndpointPublicAccess field's value.
10203func (s *VpcConfigResponse) SetEndpointPublicAccess(v bool) *VpcConfigResponse {
10204	s.EndpointPublicAccess = &v
10205	return s
10206}
10207
10208// SetPublicAccessCidrs sets the PublicAccessCidrs field's value.
10209func (s *VpcConfigResponse) SetPublicAccessCidrs(v []*string) *VpcConfigResponse {
10210	s.PublicAccessCidrs = v
10211	return s
10212}
10213
10214// SetSecurityGroupIds sets the SecurityGroupIds field's value.
10215func (s *VpcConfigResponse) SetSecurityGroupIds(v []*string) *VpcConfigResponse {
10216	s.SecurityGroupIds = v
10217	return s
10218}
10219
10220// SetSubnetIds sets the SubnetIds field's value.
10221func (s *VpcConfigResponse) SetSubnetIds(v []*string) *VpcConfigResponse {
10222	s.SubnetIds = v
10223	return s
10224}
10225
10226// SetVpcId sets the VpcId field's value.
10227func (s *VpcConfigResponse) SetVpcId(v string) *VpcConfigResponse {
10228	s.VpcId = &v
10229	return s
10230}
10231
10232const (
10233	// AMITypesAl2X8664 is a AMITypes enum value
10234	AMITypesAl2X8664 = "AL2_x86_64"
10235
10236	// AMITypesAl2X8664Gpu is a AMITypes enum value
10237	AMITypesAl2X8664Gpu = "AL2_x86_64_GPU"
10238
10239	// AMITypesAl2Arm64 is a AMITypes enum value
10240	AMITypesAl2Arm64 = "AL2_ARM_64"
10241
10242	// AMITypesCustom is a AMITypes enum value
10243	AMITypesCustom = "CUSTOM"
10244)
10245
10246// AMITypes_Values returns all elements of the AMITypes enum
10247func AMITypes_Values() []string {
10248	return []string{
10249		AMITypesAl2X8664,
10250		AMITypesAl2X8664Gpu,
10251		AMITypesAl2Arm64,
10252		AMITypesCustom,
10253	}
10254}
10255
10256const (
10257	// AddonIssueCodeAccessDenied is a AddonIssueCode enum value
10258	AddonIssueCodeAccessDenied = "AccessDenied"
10259
10260	// AddonIssueCodeInternalFailure is a AddonIssueCode enum value
10261	AddonIssueCodeInternalFailure = "InternalFailure"
10262
10263	// AddonIssueCodeClusterUnreachable is a AddonIssueCode enum value
10264	AddonIssueCodeClusterUnreachable = "ClusterUnreachable"
10265
10266	// AddonIssueCodeInsufficientNumberOfReplicas is a AddonIssueCode enum value
10267	AddonIssueCodeInsufficientNumberOfReplicas = "InsufficientNumberOfReplicas"
10268
10269	// AddonIssueCodeConfigurationConflict is a AddonIssueCode enum value
10270	AddonIssueCodeConfigurationConflict = "ConfigurationConflict"
10271
10272	// AddonIssueCodeAdmissionRequestDenied is a AddonIssueCode enum value
10273	AddonIssueCodeAdmissionRequestDenied = "AdmissionRequestDenied"
10274
10275	// AddonIssueCodeUnsupportedAddonModification is a AddonIssueCode enum value
10276	AddonIssueCodeUnsupportedAddonModification = "UnsupportedAddonModification"
10277
10278	// AddonIssueCodeK8sResourceNotFound is a AddonIssueCode enum value
10279	AddonIssueCodeK8sResourceNotFound = "K8sResourceNotFound"
10280)
10281
10282// AddonIssueCode_Values returns all elements of the AddonIssueCode enum
10283func AddonIssueCode_Values() []string {
10284	return []string{
10285		AddonIssueCodeAccessDenied,
10286		AddonIssueCodeInternalFailure,
10287		AddonIssueCodeClusterUnreachable,
10288		AddonIssueCodeInsufficientNumberOfReplicas,
10289		AddonIssueCodeConfigurationConflict,
10290		AddonIssueCodeAdmissionRequestDenied,
10291		AddonIssueCodeUnsupportedAddonModification,
10292		AddonIssueCodeK8sResourceNotFound,
10293	}
10294}
10295
10296const (
10297	// AddonStatusCreating is a AddonStatus enum value
10298	AddonStatusCreating = "CREATING"
10299
10300	// AddonStatusActive is a AddonStatus enum value
10301	AddonStatusActive = "ACTIVE"
10302
10303	// AddonStatusCreateFailed is a AddonStatus enum value
10304	AddonStatusCreateFailed = "CREATE_FAILED"
10305
10306	// AddonStatusUpdating is a AddonStatus enum value
10307	AddonStatusUpdating = "UPDATING"
10308
10309	// AddonStatusDeleting is a AddonStatus enum value
10310	AddonStatusDeleting = "DELETING"
10311
10312	// AddonStatusDeleteFailed is a AddonStatus enum value
10313	AddonStatusDeleteFailed = "DELETE_FAILED"
10314
10315	// AddonStatusDegraded is a AddonStatus enum value
10316	AddonStatusDegraded = "DEGRADED"
10317)
10318
10319// AddonStatus_Values returns all elements of the AddonStatus enum
10320func AddonStatus_Values() []string {
10321	return []string{
10322		AddonStatusCreating,
10323		AddonStatusActive,
10324		AddonStatusCreateFailed,
10325		AddonStatusUpdating,
10326		AddonStatusDeleting,
10327		AddonStatusDeleteFailed,
10328		AddonStatusDegraded,
10329	}
10330}
10331
10332const (
10333	// CapacityTypesOnDemand is a CapacityTypes enum value
10334	CapacityTypesOnDemand = "ON_DEMAND"
10335
10336	// CapacityTypesSpot is a CapacityTypes enum value
10337	CapacityTypesSpot = "SPOT"
10338)
10339
10340// CapacityTypes_Values returns all elements of the CapacityTypes enum
10341func CapacityTypes_Values() []string {
10342	return []string{
10343		CapacityTypesOnDemand,
10344		CapacityTypesSpot,
10345	}
10346}
10347
10348const (
10349	// ClusterStatusCreating is a ClusterStatus enum value
10350	ClusterStatusCreating = "CREATING"
10351
10352	// ClusterStatusActive is a ClusterStatus enum value
10353	ClusterStatusActive = "ACTIVE"
10354
10355	// ClusterStatusDeleting is a ClusterStatus enum value
10356	ClusterStatusDeleting = "DELETING"
10357
10358	// ClusterStatusFailed is a ClusterStatus enum value
10359	ClusterStatusFailed = "FAILED"
10360
10361	// ClusterStatusUpdating is a ClusterStatus enum value
10362	ClusterStatusUpdating = "UPDATING"
10363)
10364
10365// ClusterStatus_Values returns all elements of the ClusterStatus enum
10366func ClusterStatus_Values() []string {
10367	return []string{
10368		ClusterStatusCreating,
10369		ClusterStatusActive,
10370		ClusterStatusDeleting,
10371		ClusterStatusFailed,
10372		ClusterStatusUpdating,
10373	}
10374}
10375
10376const (
10377	// ConfigStatusCreating is a ConfigStatus enum value
10378	ConfigStatusCreating = "CREATING"
10379
10380	// ConfigStatusDeleting is a ConfigStatus enum value
10381	ConfigStatusDeleting = "DELETING"
10382
10383	// ConfigStatusActive is a ConfigStatus enum value
10384	ConfigStatusActive = "ACTIVE"
10385)
10386
10387// ConfigStatus_Values returns all elements of the ConfigStatus enum
10388func ConfigStatus_Values() []string {
10389	return []string{
10390		ConfigStatusCreating,
10391		ConfigStatusDeleting,
10392		ConfigStatusActive,
10393	}
10394}
10395
10396const (
10397	// ErrorCodeSubnetNotFound is a ErrorCode enum value
10398	ErrorCodeSubnetNotFound = "SubnetNotFound"
10399
10400	// ErrorCodeSecurityGroupNotFound is a ErrorCode enum value
10401	ErrorCodeSecurityGroupNotFound = "SecurityGroupNotFound"
10402
10403	// ErrorCodeEniLimitReached is a ErrorCode enum value
10404	ErrorCodeEniLimitReached = "EniLimitReached"
10405
10406	// ErrorCodeIpNotAvailable is a ErrorCode enum value
10407	ErrorCodeIpNotAvailable = "IpNotAvailable"
10408
10409	// ErrorCodeAccessDenied is a ErrorCode enum value
10410	ErrorCodeAccessDenied = "AccessDenied"
10411
10412	// ErrorCodeOperationNotPermitted is a ErrorCode enum value
10413	ErrorCodeOperationNotPermitted = "OperationNotPermitted"
10414
10415	// ErrorCodeVpcIdNotFound is a ErrorCode enum value
10416	ErrorCodeVpcIdNotFound = "VpcIdNotFound"
10417
10418	// ErrorCodeUnknown is a ErrorCode enum value
10419	ErrorCodeUnknown = "Unknown"
10420
10421	// ErrorCodeNodeCreationFailure is a ErrorCode enum value
10422	ErrorCodeNodeCreationFailure = "NodeCreationFailure"
10423
10424	// ErrorCodePodEvictionFailure is a ErrorCode enum value
10425	ErrorCodePodEvictionFailure = "PodEvictionFailure"
10426
10427	// ErrorCodeInsufficientFreeAddresses is a ErrorCode enum value
10428	ErrorCodeInsufficientFreeAddresses = "InsufficientFreeAddresses"
10429
10430	// ErrorCodeClusterUnreachable is a ErrorCode enum value
10431	ErrorCodeClusterUnreachable = "ClusterUnreachable"
10432
10433	// ErrorCodeInsufficientNumberOfReplicas is a ErrorCode enum value
10434	ErrorCodeInsufficientNumberOfReplicas = "InsufficientNumberOfReplicas"
10435
10436	// ErrorCodeConfigurationConflict is a ErrorCode enum value
10437	ErrorCodeConfigurationConflict = "ConfigurationConflict"
10438
10439	// ErrorCodeAdmissionRequestDenied is a ErrorCode enum value
10440	ErrorCodeAdmissionRequestDenied = "AdmissionRequestDenied"
10441
10442	// ErrorCodeUnsupportedAddonModification is a ErrorCode enum value
10443	ErrorCodeUnsupportedAddonModification = "UnsupportedAddonModification"
10444
10445	// ErrorCodeK8sResourceNotFound is a ErrorCode enum value
10446	ErrorCodeK8sResourceNotFound = "K8sResourceNotFound"
10447)
10448
10449// ErrorCode_Values returns all elements of the ErrorCode enum
10450func ErrorCode_Values() []string {
10451	return []string{
10452		ErrorCodeSubnetNotFound,
10453		ErrorCodeSecurityGroupNotFound,
10454		ErrorCodeEniLimitReached,
10455		ErrorCodeIpNotAvailable,
10456		ErrorCodeAccessDenied,
10457		ErrorCodeOperationNotPermitted,
10458		ErrorCodeVpcIdNotFound,
10459		ErrorCodeUnknown,
10460		ErrorCodeNodeCreationFailure,
10461		ErrorCodePodEvictionFailure,
10462		ErrorCodeInsufficientFreeAddresses,
10463		ErrorCodeClusterUnreachable,
10464		ErrorCodeInsufficientNumberOfReplicas,
10465		ErrorCodeConfigurationConflict,
10466		ErrorCodeAdmissionRequestDenied,
10467		ErrorCodeUnsupportedAddonModification,
10468		ErrorCodeK8sResourceNotFound,
10469	}
10470}
10471
10472const (
10473	// FargateProfileStatusCreating is a FargateProfileStatus enum value
10474	FargateProfileStatusCreating = "CREATING"
10475
10476	// FargateProfileStatusActive is a FargateProfileStatus enum value
10477	FargateProfileStatusActive = "ACTIVE"
10478
10479	// FargateProfileStatusDeleting is a FargateProfileStatus enum value
10480	FargateProfileStatusDeleting = "DELETING"
10481
10482	// FargateProfileStatusCreateFailed is a FargateProfileStatus enum value
10483	FargateProfileStatusCreateFailed = "CREATE_FAILED"
10484
10485	// FargateProfileStatusDeleteFailed is a FargateProfileStatus enum value
10486	FargateProfileStatusDeleteFailed = "DELETE_FAILED"
10487)
10488
10489// FargateProfileStatus_Values returns all elements of the FargateProfileStatus enum
10490func FargateProfileStatus_Values() []string {
10491	return []string{
10492		FargateProfileStatusCreating,
10493		FargateProfileStatusActive,
10494		FargateProfileStatusDeleting,
10495		FargateProfileStatusCreateFailed,
10496		FargateProfileStatusDeleteFailed,
10497	}
10498}
10499
10500const (
10501	// LogTypeApi is a LogType enum value
10502	LogTypeApi = "api"
10503
10504	// LogTypeAudit is a LogType enum value
10505	LogTypeAudit = "audit"
10506
10507	// LogTypeAuthenticator is a LogType enum value
10508	LogTypeAuthenticator = "authenticator"
10509
10510	// LogTypeControllerManager is a LogType enum value
10511	LogTypeControllerManager = "controllerManager"
10512
10513	// LogTypeScheduler is a LogType enum value
10514	LogTypeScheduler = "scheduler"
10515)
10516
10517// LogType_Values returns all elements of the LogType enum
10518func LogType_Values() []string {
10519	return []string{
10520		LogTypeApi,
10521		LogTypeAudit,
10522		LogTypeAuthenticator,
10523		LogTypeControllerManager,
10524		LogTypeScheduler,
10525	}
10526}
10527
10528const (
10529	// NodegroupIssueCodeAutoScalingGroupNotFound is a NodegroupIssueCode enum value
10530	NodegroupIssueCodeAutoScalingGroupNotFound = "AutoScalingGroupNotFound"
10531
10532	// NodegroupIssueCodeAutoScalingGroupInvalidConfiguration is a NodegroupIssueCode enum value
10533	NodegroupIssueCodeAutoScalingGroupInvalidConfiguration = "AutoScalingGroupInvalidConfiguration"
10534
10535	// NodegroupIssueCodeEc2securityGroupNotFound is a NodegroupIssueCode enum value
10536	NodegroupIssueCodeEc2securityGroupNotFound = "Ec2SecurityGroupNotFound"
10537
10538	// NodegroupIssueCodeEc2securityGroupDeletionFailure is a NodegroupIssueCode enum value
10539	NodegroupIssueCodeEc2securityGroupDeletionFailure = "Ec2SecurityGroupDeletionFailure"
10540
10541	// NodegroupIssueCodeEc2launchTemplateNotFound is a NodegroupIssueCode enum value
10542	NodegroupIssueCodeEc2launchTemplateNotFound = "Ec2LaunchTemplateNotFound"
10543
10544	// NodegroupIssueCodeEc2launchTemplateVersionMismatch is a NodegroupIssueCode enum value
10545	NodegroupIssueCodeEc2launchTemplateVersionMismatch = "Ec2LaunchTemplateVersionMismatch"
10546
10547	// NodegroupIssueCodeEc2subnetNotFound is a NodegroupIssueCode enum value
10548	NodegroupIssueCodeEc2subnetNotFound = "Ec2SubnetNotFound"
10549
10550	// NodegroupIssueCodeEc2subnetInvalidConfiguration is a NodegroupIssueCode enum value
10551	NodegroupIssueCodeEc2subnetInvalidConfiguration = "Ec2SubnetInvalidConfiguration"
10552
10553	// NodegroupIssueCodeIamInstanceProfileNotFound is a NodegroupIssueCode enum value
10554	NodegroupIssueCodeIamInstanceProfileNotFound = "IamInstanceProfileNotFound"
10555
10556	// NodegroupIssueCodeIamLimitExceeded is a NodegroupIssueCode enum value
10557	NodegroupIssueCodeIamLimitExceeded = "IamLimitExceeded"
10558
10559	// NodegroupIssueCodeIamNodeRoleNotFound is a NodegroupIssueCode enum value
10560	NodegroupIssueCodeIamNodeRoleNotFound = "IamNodeRoleNotFound"
10561
10562	// NodegroupIssueCodeNodeCreationFailure is a NodegroupIssueCode enum value
10563	NodegroupIssueCodeNodeCreationFailure = "NodeCreationFailure"
10564
10565	// NodegroupIssueCodeAsgInstanceLaunchFailures is a NodegroupIssueCode enum value
10566	NodegroupIssueCodeAsgInstanceLaunchFailures = "AsgInstanceLaunchFailures"
10567
10568	// NodegroupIssueCodeInstanceLimitExceeded is a NodegroupIssueCode enum value
10569	NodegroupIssueCodeInstanceLimitExceeded = "InstanceLimitExceeded"
10570
10571	// NodegroupIssueCodeInsufficientFreeAddresses is a NodegroupIssueCode enum value
10572	NodegroupIssueCodeInsufficientFreeAddresses = "InsufficientFreeAddresses"
10573
10574	// NodegroupIssueCodeAccessDenied is a NodegroupIssueCode enum value
10575	NodegroupIssueCodeAccessDenied = "AccessDenied"
10576
10577	// NodegroupIssueCodeInternalFailure is a NodegroupIssueCode enum value
10578	NodegroupIssueCodeInternalFailure = "InternalFailure"
10579
10580	// NodegroupIssueCodeClusterUnreachable is a NodegroupIssueCode enum value
10581	NodegroupIssueCodeClusterUnreachable = "ClusterUnreachable"
10582)
10583
10584// NodegroupIssueCode_Values returns all elements of the NodegroupIssueCode enum
10585func NodegroupIssueCode_Values() []string {
10586	return []string{
10587		NodegroupIssueCodeAutoScalingGroupNotFound,
10588		NodegroupIssueCodeAutoScalingGroupInvalidConfiguration,
10589		NodegroupIssueCodeEc2securityGroupNotFound,
10590		NodegroupIssueCodeEc2securityGroupDeletionFailure,
10591		NodegroupIssueCodeEc2launchTemplateNotFound,
10592		NodegroupIssueCodeEc2launchTemplateVersionMismatch,
10593		NodegroupIssueCodeEc2subnetNotFound,
10594		NodegroupIssueCodeEc2subnetInvalidConfiguration,
10595		NodegroupIssueCodeIamInstanceProfileNotFound,
10596		NodegroupIssueCodeIamLimitExceeded,
10597		NodegroupIssueCodeIamNodeRoleNotFound,
10598		NodegroupIssueCodeNodeCreationFailure,
10599		NodegroupIssueCodeAsgInstanceLaunchFailures,
10600		NodegroupIssueCodeInstanceLimitExceeded,
10601		NodegroupIssueCodeInsufficientFreeAddresses,
10602		NodegroupIssueCodeAccessDenied,
10603		NodegroupIssueCodeInternalFailure,
10604		NodegroupIssueCodeClusterUnreachable,
10605	}
10606}
10607
10608const (
10609	// NodegroupStatusCreating is a NodegroupStatus enum value
10610	NodegroupStatusCreating = "CREATING"
10611
10612	// NodegroupStatusActive is a NodegroupStatus enum value
10613	NodegroupStatusActive = "ACTIVE"
10614
10615	// NodegroupStatusUpdating is a NodegroupStatus enum value
10616	NodegroupStatusUpdating = "UPDATING"
10617
10618	// NodegroupStatusDeleting is a NodegroupStatus enum value
10619	NodegroupStatusDeleting = "DELETING"
10620
10621	// NodegroupStatusCreateFailed is a NodegroupStatus enum value
10622	NodegroupStatusCreateFailed = "CREATE_FAILED"
10623
10624	// NodegroupStatusDeleteFailed is a NodegroupStatus enum value
10625	NodegroupStatusDeleteFailed = "DELETE_FAILED"
10626
10627	// NodegroupStatusDegraded is a NodegroupStatus enum value
10628	NodegroupStatusDegraded = "DEGRADED"
10629)
10630
10631// NodegroupStatus_Values returns all elements of the NodegroupStatus enum
10632func NodegroupStatus_Values() []string {
10633	return []string{
10634		NodegroupStatusCreating,
10635		NodegroupStatusActive,
10636		NodegroupStatusUpdating,
10637		NodegroupStatusDeleting,
10638		NodegroupStatusCreateFailed,
10639		NodegroupStatusDeleteFailed,
10640		NodegroupStatusDegraded,
10641	}
10642}
10643
10644const (
10645	// ResolveConflictsOverwrite is a ResolveConflicts enum value
10646	ResolveConflictsOverwrite = "OVERWRITE"
10647
10648	// ResolveConflictsNone is a ResolveConflicts enum value
10649	ResolveConflictsNone = "NONE"
10650)
10651
10652// ResolveConflicts_Values returns all elements of the ResolveConflicts enum
10653func ResolveConflicts_Values() []string {
10654	return []string{
10655		ResolveConflictsOverwrite,
10656		ResolveConflictsNone,
10657	}
10658}
10659
10660const (
10661	// TaintEffectNoSchedule is a TaintEffect enum value
10662	TaintEffectNoSchedule = "NO_SCHEDULE"
10663
10664	// TaintEffectNoExecute is a TaintEffect enum value
10665	TaintEffectNoExecute = "NO_EXECUTE"
10666
10667	// TaintEffectPreferNoSchedule is a TaintEffect enum value
10668	TaintEffectPreferNoSchedule = "PREFER_NO_SCHEDULE"
10669)
10670
10671// TaintEffect_Values returns all elements of the TaintEffect enum
10672func TaintEffect_Values() []string {
10673	return []string{
10674		TaintEffectNoSchedule,
10675		TaintEffectNoExecute,
10676		TaintEffectPreferNoSchedule,
10677	}
10678}
10679
10680const (
10681	// UpdateParamTypeVersion is a UpdateParamType enum value
10682	UpdateParamTypeVersion = "Version"
10683
10684	// UpdateParamTypePlatformVersion is a UpdateParamType enum value
10685	UpdateParamTypePlatformVersion = "PlatformVersion"
10686
10687	// UpdateParamTypeEndpointPrivateAccess is a UpdateParamType enum value
10688	UpdateParamTypeEndpointPrivateAccess = "EndpointPrivateAccess"
10689
10690	// UpdateParamTypeEndpointPublicAccess is a UpdateParamType enum value
10691	UpdateParamTypeEndpointPublicAccess = "EndpointPublicAccess"
10692
10693	// UpdateParamTypeClusterLogging is a UpdateParamType enum value
10694	UpdateParamTypeClusterLogging = "ClusterLogging"
10695
10696	// UpdateParamTypeDesiredSize is a UpdateParamType enum value
10697	UpdateParamTypeDesiredSize = "DesiredSize"
10698
10699	// UpdateParamTypeLabelsToAdd is a UpdateParamType enum value
10700	UpdateParamTypeLabelsToAdd = "LabelsToAdd"
10701
10702	// UpdateParamTypeLabelsToRemove is a UpdateParamType enum value
10703	UpdateParamTypeLabelsToRemove = "LabelsToRemove"
10704
10705	// UpdateParamTypeTaintsToAdd is a UpdateParamType enum value
10706	UpdateParamTypeTaintsToAdd = "TaintsToAdd"
10707
10708	// UpdateParamTypeTaintsToRemove is a UpdateParamType enum value
10709	UpdateParamTypeTaintsToRemove = "TaintsToRemove"
10710
10711	// UpdateParamTypeMaxSize is a UpdateParamType enum value
10712	UpdateParamTypeMaxSize = "MaxSize"
10713
10714	// UpdateParamTypeMinSize is a UpdateParamType enum value
10715	UpdateParamTypeMinSize = "MinSize"
10716
10717	// UpdateParamTypeReleaseVersion is a UpdateParamType enum value
10718	UpdateParamTypeReleaseVersion = "ReleaseVersion"
10719
10720	// UpdateParamTypePublicAccessCidrs is a UpdateParamType enum value
10721	UpdateParamTypePublicAccessCidrs = "PublicAccessCidrs"
10722
10723	// UpdateParamTypeLaunchTemplateName is a UpdateParamType enum value
10724	UpdateParamTypeLaunchTemplateName = "LaunchTemplateName"
10725
10726	// UpdateParamTypeLaunchTemplateVersion is a UpdateParamType enum value
10727	UpdateParamTypeLaunchTemplateVersion = "LaunchTemplateVersion"
10728
10729	// UpdateParamTypeIdentityProviderConfig is a UpdateParamType enum value
10730	UpdateParamTypeIdentityProviderConfig = "IdentityProviderConfig"
10731
10732	// UpdateParamTypeEncryptionConfig is a UpdateParamType enum value
10733	UpdateParamTypeEncryptionConfig = "EncryptionConfig"
10734
10735	// UpdateParamTypeAddonVersion is a UpdateParamType enum value
10736	UpdateParamTypeAddonVersion = "AddonVersion"
10737
10738	// UpdateParamTypeServiceAccountRoleArn is a UpdateParamType enum value
10739	UpdateParamTypeServiceAccountRoleArn = "ServiceAccountRoleArn"
10740
10741	// UpdateParamTypeResolveConflicts is a UpdateParamType enum value
10742	UpdateParamTypeResolveConflicts = "ResolveConflicts"
10743
10744	// UpdateParamTypeMaxUnavailable is a UpdateParamType enum value
10745	UpdateParamTypeMaxUnavailable = "MaxUnavailable"
10746
10747	// UpdateParamTypeMaxUnavailablePercentage is a UpdateParamType enum value
10748	UpdateParamTypeMaxUnavailablePercentage = "MaxUnavailablePercentage"
10749)
10750
10751// UpdateParamType_Values returns all elements of the UpdateParamType enum
10752func UpdateParamType_Values() []string {
10753	return []string{
10754		UpdateParamTypeVersion,
10755		UpdateParamTypePlatformVersion,
10756		UpdateParamTypeEndpointPrivateAccess,
10757		UpdateParamTypeEndpointPublicAccess,
10758		UpdateParamTypeClusterLogging,
10759		UpdateParamTypeDesiredSize,
10760		UpdateParamTypeLabelsToAdd,
10761		UpdateParamTypeLabelsToRemove,
10762		UpdateParamTypeTaintsToAdd,
10763		UpdateParamTypeTaintsToRemove,
10764		UpdateParamTypeMaxSize,
10765		UpdateParamTypeMinSize,
10766		UpdateParamTypeReleaseVersion,
10767		UpdateParamTypePublicAccessCidrs,
10768		UpdateParamTypeLaunchTemplateName,
10769		UpdateParamTypeLaunchTemplateVersion,
10770		UpdateParamTypeIdentityProviderConfig,
10771		UpdateParamTypeEncryptionConfig,
10772		UpdateParamTypeAddonVersion,
10773		UpdateParamTypeServiceAccountRoleArn,
10774		UpdateParamTypeResolveConflicts,
10775		UpdateParamTypeMaxUnavailable,
10776		UpdateParamTypeMaxUnavailablePercentage,
10777	}
10778}
10779
10780const (
10781	// UpdateStatusInProgress is a UpdateStatus enum value
10782	UpdateStatusInProgress = "InProgress"
10783
10784	// UpdateStatusFailed is a UpdateStatus enum value
10785	UpdateStatusFailed = "Failed"
10786
10787	// UpdateStatusCancelled is a UpdateStatus enum value
10788	UpdateStatusCancelled = "Cancelled"
10789
10790	// UpdateStatusSuccessful is a UpdateStatus enum value
10791	UpdateStatusSuccessful = "Successful"
10792)
10793
10794// UpdateStatus_Values returns all elements of the UpdateStatus enum
10795func UpdateStatus_Values() []string {
10796	return []string{
10797		UpdateStatusInProgress,
10798		UpdateStatusFailed,
10799		UpdateStatusCancelled,
10800		UpdateStatusSuccessful,
10801	}
10802}
10803
10804const (
10805	// UpdateTypeVersionUpdate is a UpdateType enum value
10806	UpdateTypeVersionUpdate = "VersionUpdate"
10807
10808	// UpdateTypeEndpointAccessUpdate is a UpdateType enum value
10809	UpdateTypeEndpointAccessUpdate = "EndpointAccessUpdate"
10810
10811	// UpdateTypeLoggingUpdate is a UpdateType enum value
10812	UpdateTypeLoggingUpdate = "LoggingUpdate"
10813
10814	// UpdateTypeConfigUpdate is a UpdateType enum value
10815	UpdateTypeConfigUpdate = "ConfigUpdate"
10816
10817	// UpdateTypeAssociateIdentityProviderConfig is a UpdateType enum value
10818	UpdateTypeAssociateIdentityProviderConfig = "AssociateIdentityProviderConfig"
10819
10820	// UpdateTypeDisassociateIdentityProviderConfig is a UpdateType enum value
10821	UpdateTypeDisassociateIdentityProviderConfig = "DisassociateIdentityProviderConfig"
10822
10823	// UpdateTypeAssociateEncryptionConfig is a UpdateType enum value
10824	UpdateTypeAssociateEncryptionConfig = "AssociateEncryptionConfig"
10825
10826	// UpdateTypeAddonUpdate is a UpdateType enum value
10827	UpdateTypeAddonUpdate = "AddonUpdate"
10828)
10829
10830// UpdateType_Values returns all elements of the UpdateType enum
10831func UpdateType_Values() []string {
10832	return []string{
10833		UpdateTypeVersionUpdate,
10834		UpdateTypeEndpointAccessUpdate,
10835		UpdateTypeLoggingUpdate,
10836		UpdateTypeConfigUpdate,
10837		UpdateTypeAssociateIdentityProviderConfig,
10838		UpdateTypeDisassociateIdentityProviderConfig,
10839		UpdateTypeAssociateEncryptionConfig,
10840		UpdateTypeAddonUpdate,
10841	}
10842}
10843