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