// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package eks import ( "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" ) const opCreateCluster = "CreateCluster" // CreateClusterRequest generates a "aws/request.Request" representing the // client's request for the CreateCluster operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See CreateCluster for more information on using the CreateCluster // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the CreateClusterRequest method. // req, resp := client.CreateClusterRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster func (c *EKS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) { op := &request.Operation{ Name: opCreateCluster, HTTPMethod: "POST", HTTPPath: "/clusters", } if input == nil { input = &CreateClusterInput{} } output = &CreateClusterOutput{} req = c.newRequest(op, input, output) return } // CreateCluster API operation for Amazon Elastic Kubernetes Service. // // Creates an Amazon EKS control plane. // // The Amazon EKS control plane consists of control plane instances that run // the Kubernetes software, such as etcd and the API server. The control plane // runs in an account managed by AWS, and the Kubernetes API is exposed via // the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane // is single-tenant and unique and runs on its own set of Amazon EC2 instances. // // The cluster control plane is provisioned across multiple Availability Zones // and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS // also provisions elastic network interfaces in your VPC subnets to provide // connectivity from the control plane instances to the worker nodes (for example, // to support kubectl exec, logs, and proxy data flows). // // Amazon EKS worker nodes run in your AWS account and connect to your cluster's // control plane via the Kubernetes API server endpoint and a certificate file // that is created for your cluster. // // You can use the endpointPublicAccess and endpointPrivateAccess parameters // to enable or disable public and private access to your cluster's Kubernetes // API server endpoint. By default, public access is enabled, and private access // is disabled. For more information, see Amazon EKS Cluster Endpoint Access // Control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) // in the Amazon EKS User Guide . // // You can use the logging parameter to enable or disable exporting the Kubernetes // control plane logs for your cluster to CloudWatch Logs. By default, cluster // control plane logs aren't exported to CloudWatch Logs. For more information, // see Amazon EKS Cluster Control Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) // in the Amazon EKS User Guide . // // CloudWatch Logs ingestion, archive storage, and data scanning rates apply // to exported control plane logs. For more information, see Amazon CloudWatch // Pricing (http://aws.amazon.com/cloudwatch/pricing/). // // Cluster creation typically takes between 10 and 15 minutes. After you create // an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate // with the API server and launch worker nodes into your cluster. For more information, // see Managing Cluster Authentication (https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html) // and Launching Amazon EKS Worker Nodes (https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html) // in the Amazon EKS User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation CreateCluster for usage and error information. // // Returned Error Codes: // * ErrCodeResourceInUseException "ResourceInUseException" // The specified resource is in use. // // * ErrCodeResourceLimitExceededException "ResourceLimitExceededException" // You have encountered a service limit on the specified resource. // // * ErrCodeInvalidParameterException "InvalidParameterException" // The specified parameter is invalid. Review the available parameters for the // API request. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" // The service is unavailable. Back off and retry the operation. // // * ErrCodeUnsupportedAvailabilityZoneException "UnsupportedAvailabilityZoneException" // At least one of your specified cluster subnets is in an Availability Zone // that does not support Amazon EKS. The exception output specifies the supported // Availability Zones for your account, from which you can choose subnets for // your cluster. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster func (c *EKS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) { req, out := c.CreateClusterRequest(input) return out, req.Send() } // CreateClusterWithContext is the same as CreateCluster with the addition of // the ability to pass a context and additional request options. // // See CreateCluster for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) { req, out := c.CreateClusterRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDeleteCluster = "DeleteCluster" // DeleteClusterRequest generates a "aws/request.Request" representing the // client's request for the DeleteCluster operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DeleteCluster for more information on using the DeleteCluster // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DeleteClusterRequest method. // req, resp := client.DeleteClusterRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) { op := &request.Operation{ Name: opDeleteCluster, HTTPMethod: "DELETE", HTTPPath: "/clusters/{name}", } if input == nil { input = &DeleteClusterInput{} } output = &DeleteClusterOutput{} req = c.newRequest(op, input, output) return } // DeleteCluster API operation for Amazon Elastic Kubernetes Service. // // Deletes the Amazon EKS cluster control plane. // // If you have active services in your cluster that are associated with a load // balancer, you must delete those services before deleting the cluster so that // the load balancers are deleted properly. Otherwise, you can have orphaned // resources in your VPC that prevent you from being able to delete the VPC. // For more information, see Deleting a Cluster (https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html) // in the Amazon EKS User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation DeleteCluster for usage and error information. // // Returned Error Codes: // * ErrCodeResourceInUseException "ResourceInUseException" // The specified resource is in use. // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters // with ListClusters. Amazon EKS clusters are Region-specific. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" // The service is unavailable. Back off and retry the operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster func (c *EKS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) { req, out := c.DeleteClusterRequest(input) return out, req.Send() } // DeleteClusterWithContext is the same as DeleteCluster with the addition of // the ability to pass a context and additional request options. // // See DeleteCluster for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) { req, out := c.DeleteClusterRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDescribeCluster = "DescribeCluster" // DescribeClusterRequest generates a "aws/request.Request" representing the // client's request for the DescribeCluster operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DescribeCluster for more information on using the DescribeCluster // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DescribeClusterRequest method. // req, resp := client.DescribeClusterRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) { op := &request.Operation{ Name: opDescribeCluster, HTTPMethod: "GET", HTTPPath: "/clusters/{name}", } if input == nil { input = &DescribeClusterInput{} } output = &DescribeClusterOutput{} req = c.newRequest(op, input, output) return } // DescribeCluster API operation for Amazon Elastic Kubernetes Service. // // Returns descriptive information about an Amazon EKS cluster. // // The API server endpoint and certificate authority data returned by this operation // are required for kubelet and kubectl to communicate with your Kubernetes // API server. For more information, see Create a kubeconfig for Amazon EKS // (https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html). // // The API server endpoint and certificate authority data aren't available until // the cluster reaches the ACTIVE state. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation DescribeCluster for usage and error information. // // Returned Error Codes: // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters // with ListClusters. Amazon EKS clusters are Region-specific. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" // The service is unavailable. Back off and retry the operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster func (c *EKS) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) { req, out := c.DescribeClusterRequest(input) return out, req.Send() } // DescribeClusterWithContext is the same as DescribeCluster with the addition of // the ability to pass a context and additional request options. // // See DescribeCluster for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) { req, out := c.DescribeClusterRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDescribeUpdate = "DescribeUpdate" // DescribeUpdateRequest generates a "aws/request.Request" representing the // client's request for the DescribeUpdate operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DescribeUpdate for more information on using the DescribeUpdate // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DescribeUpdateRequest method. // req, resp := client.DescribeUpdateRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate func (c *EKS) DescribeUpdateRequest(input *DescribeUpdateInput) (req *request.Request, output *DescribeUpdateOutput) { op := &request.Operation{ Name: opDescribeUpdate, HTTPMethod: "GET", HTTPPath: "/clusters/{name}/updates/{updateId}", } if input == nil { input = &DescribeUpdateInput{} } output = &DescribeUpdateOutput{} req = c.newRequest(op, input, output) return } // DescribeUpdate API operation for Amazon Elastic Kubernetes Service. // // Returns descriptive information about an update against your Amazon EKS cluster. // // When the status of the update is Succeeded, the update is complete. If an // update fails, the status is Failed, and an error detail explains the reason // for the failure. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation DescribeUpdate for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidParameterException "InvalidParameterException" // The specified parameter is invalid. Review the available parameters for the // API request. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters // with ListClusters. Amazon EKS clusters are Region-specific. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate func (c *EKS) DescribeUpdate(input *DescribeUpdateInput) (*DescribeUpdateOutput, error) { req, out := c.DescribeUpdateRequest(input) return out, req.Send() } // DescribeUpdateWithContext is the same as DescribeUpdate with the addition of // the ability to pass a context and additional request options. // // See DescribeUpdate for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) DescribeUpdateWithContext(ctx aws.Context, input *DescribeUpdateInput, opts ...request.Option) (*DescribeUpdateOutput, error) { req, out := c.DescribeUpdateRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opListClusters = "ListClusters" // ListClustersRequest generates a "aws/request.Request" representing the // client's request for the ListClusters operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See ListClusters for more information on using the ListClusters // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the ListClustersRequest method. // req, resp := client.ListClustersRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters func (c *EKS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) { op := &request.Operation{ Name: opListClusters, HTTPMethod: "GET", HTTPPath: "/clusters", } if input == nil { input = &ListClustersInput{} } output = &ListClustersOutput{} req = c.newRequest(op, input, output) return } // ListClusters API operation for Amazon Elastic Kubernetes Service. // // Lists the Amazon EKS clusters in your AWS account in the specified Region. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation ListClusters for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidParameterException "InvalidParameterException" // The specified parameter is invalid. Review the available parameters for the // API request. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" // The service is unavailable. Back off and retry the operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters func (c *EKS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) { req, out := c.ListClustersRequest(input) return out, req.Send() } // ListClustersWithContext is the same as ListClusters with the addition of // the ability to pass a context and additional request options. // // See ListClusters for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) { req, out := c.ListClustersRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opListUpdates = "ListUpdates" // ListUpdatesRequest generates a "aws/request.Request" representing the // client's request for the ListUpdates operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See ListUpdates for more information on using the ListUpdates // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the ListUpdatesRequest method. // req, resp := client.ListUpdatesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates func (c *EKS) ListUpdatesRequest(input *ListUpdatesInput) (req *request.Request, output *ListUpdatesOutput) { op := &request.Operation{ Name: opListUpdates, HTTPMethod: "GET", HTTPPath: "/clusters/{name}/updates", } if input == nil { input = &ListUpdatesInput{} } output = &ListUpdatesOutput{} req = c.newRequest(op, input, output) return } // ListUpdates API operation for Amazon Elastic Kubernetes Service. // // Lists the updates associated with an Amazon EKS cluster in your AWS account, // in the specified Region. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation ListUpdates for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidParameterException "InvalidParameterException" // The specified parameter is invalid. Review the available parameters for the // API request. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters // with ListClusters. Amazon EKS clusters are Region-specific. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates func (c *EKS) ListUpdates(input *ListUpdatesInput) (*ListUpdatesOutput, error) { req, out := c.ListUpdatesRequest(input) return out, req.Send() } // ListUpdatesWithContext is the same as ListUpdates with the addition of // the ability to pass a context and additional request options. // // See ListUpdates for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) ListUpdatesWithContext(ctx aws.Context, input *ListUpdatesInput, opts ...request.Option) (*ListUpdatesOutput, error) { req, out := c.ListUpdatesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opUpdateClusterConfig = "UpdateClusterConfig" // UpdateClusterConfigRequest generates a "aws/request.Request" representing the // client's request for the UpdateClusterConfig operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See UpdateClusterConfig for more information on using the UpdateClusterConfig // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the UpdateClusterConfigRequest method. // req, resp := client.UpdateClusterConfigRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig func (c *EKS) UpdateClusterConfigRequest(input *UpdateClusterConfigInput) (req *request.Request, output *UpdateClusterConfigOutput) { op := &request.Operation{ Name: opUpdateClusterConfig, HTTPMethod: "POST", HTTPPath: "/clusters/{name}/update-config", } if input == nil { input = &UpdateClusterConfigInput{} } output = &UpdateClusterConfigOutput{} req = c.newRequest(op, input, output) return } // UpdateClusterConfig API operation for Amazon Elastic Kubernetes Service. // // Updates an Amazon EKS cluster configuration. Your cluster continues to function // during the update. The response output includes an update ID that you can // use to track the status of your cluster update with the DescribeUpdate API // operation. // // You can use this API operation to enable or disable exporting the Kubernetes // control plane logs for your cluster to CloudWatch Logs. By default, cluster // control plane logs aren't exported to CloudWatch Logs. For more information, // see Amazon EKS Cluster Control Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) // in the Amazon EKS User Guide . // // CloudWatch Logs ingestion, archive storage, and data scanning rates apply // to exported control plane logs. For more information, see Amazon CloudWatch // Pricing (http://aws.amazon.com/cloudwatch/pricing/). // // You can also use this API operation to enable or disable public and private // access to your cluster's Kubernetes API server endpoint. By default, public // access is enabled, and private access is disabled. For more information, // see Amazon EKS Cluster Endpoint Access Control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) // in the Amazon EKS User Guide . // // At this time, you can not update the subnets or security group IDs for an // existing cluster. // // Cluster updates are asynchronous, and they should finish within a few minutes. // During an update, the cluster status moves to UPDATING (this status transition // is eventually consistent). When the update is complete (either Failed or // Successful), the cluster status moves to Active. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation UpdateClusterConfig for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidParameterException "InvalidParameterException" // The specified parameter is invalid. Review the available parameters for the // API request. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeResourceInUseException "ResourceInUseException" // The specified resource is in use. // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters // with ListClusters. Amazon EKS clusters are Region-specific. // // * ErrCodeInvalidRequestException "InvalidRequestException" // The request is invalid given the state of the cluster. Check the state of // the cluster and the associated operations. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig func (c *EKS) UpdateClusterConfig(input *UpdateClusterConfigInput) (*UpdateClusterConfigOutput, error) { req, out := c.UpdateClusterConfigRequest(input) return out, req.Send() } // UpdateClusterConfigWithContext is the same as UpdateClusterConfig with the addition of // the ability to pass a context and additional request options. // // See UpdateClusterConfig for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) UpdateClusterConfigWithContext(ctx aws.Context, input *UpdateClusterConfigInput, opts ...request.Option) (*UpdateClusterConfigOutput, error) { req, out := c.UpdateClusterConfigRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opUpdateClusterVersion = "UpdateClusterVersion" // UpdateClusterVersionRequest generates a "aws/request.Request" representing the // client's request for the UpdateClusterVersion operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See UpdateClusterVersion for more information on using the UpdateClusterVersion // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the UpdateClusterVersionRequest method. // req, resp := client.UpdateClusterVersionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion func (c *EKS) UpdateClusterVersionRequest(input *UpdateClusterVersionInput) (req *request.Request, output *UpdateClusterVersionOutput) { op := &request.Operation{ Name: opUpdateClusterVersion, HTTPMethod: "POST", HTTPPath: "/clusters/{name}/updates", } if input == nil { input = &UpdateClusterVersionInput{} } output = &UpdateClusterVersionOutput{} req = c.newRequest(op, input, output) return } // UpdateClusterVersion API operation for Amazon Elastic Kubernetes Service. // // Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster // continues to function during the update. The response output includes an // update ID that you can use to track the status of your cluster update with // the DescribeUpdate API operation. // // Cluster updates are asynchronous, and they should finish within a few minutes. // During an update, the cluster status moves to UPDATING (this status transition // is eventually consistent). When the update is complete (either Failed or // Successful), the cluster status moves to Active. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon Elastic Kubernetes Service's // API operation UpdateClusterVersion for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidParameterException "InvalidParameterException" // The specified parameter is invalid. Review the available parameters for the // API request. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using // an action or resource on behalf of a user that doesn't have permissions to // use the action or resource or specifying an identifier that is not valid. // // * ErrCodeServerException "ServerException" // These errors are usually caused by a server-side issue. // // * ErrCodeResourceInUseException "ResourceInUseException" // The specified resource is in use. // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters // with ListClusters. Amazon EKS clusters are Region-specific. // // * ErrCodeInvalidRequestException "InvalidRequestException" // The request is invalid given the state of the cluster. Check the state of // the cluster and the associated operations. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion func (c *EKS) UpdateClusterVersion(input *UpdateClusterVersionInput) (*UpdateClusterVersionOutput, error) { req, out := c.UpdateClusterVersionRequest(input) return out, req.Send() } // UpdateClusterVersionWithContext is the same as UpdateClusterVersion with the addition of // the ability to pass a context and additional request options. // // See UpdateClusterVersion for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *EKS) UpdateClusterVersionWithContext(ctx aws.Context, input *UpdateClusterVersionInput, opts ...request.Option) (*UpdateClusterVersionOutput, error) { req, out := c.UpdateClusterVersionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // An object representing the certificate-authority-data for your cluster. type Certificate struct { _ struct{} `type:"structure"` // The Base64-encoded certificate data required to communicate with your cluster. // Add this to the certificate-authority-data section of the kubeconfig file // for your cluster. Data *string `locationName:"data" type:"string"` } // String returns the string representation func (s Certificate) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Certificate) GoString() string { return s.String() } // SetData sets the Data field's value. func (s *Certificate) SetData(v string) *Certificate { s.Data = &v return s } // An object representing an Amazon EKS cluster. type Cluster struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the cluster. Arn *string `locationName:"arn" type:"string"` // The certificate-authority-data for your cluster. CertificateAuthority *Certificate `locationName:"certificateAuthority" type:"structure"` // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. ClientRequestToken *string `locationName:"clientRequestToken" type:"string"` // The Unix epoch timestamp in seconds for when the cluster was created. CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` // The endpoint for your Kubernetes API server. Endpoint *string `locationName:"endpoint" type:"string"` // The logging configuration for your cluster. Logging *Logging `locationName:"logging" type:"structure"` // The name of the cluster. Name *string `locationName:"name" type:"string"` // The platform version of your Amazon EKS cluster. For more information, see // Platform Versions (https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html) // in the Amazon EKS User Guide . PlatformVersion *string `locationName:"platformVersion" type:"string"` // The VPC configuration used by the cluster control plane. Amazon EKS VPC resources // have specific requirements to work properly with Kubernetes. For more information, // see Cluster VPC Considerations (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) // and Cluster Security Group Considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) // in the Amazon EKS User Guide. ResourcesVpcConfig *VpcConfigResponse `locationName:"resourcesVpcConfig" type:"structure"` // The Amazon Resource Name (ARN) of the IAM role that provides permissions // for the Kubernetes control plane to make calls to AWS API operations on your // behalf. RoleArn *string `locationName:"roleArn" type:"string"` // The current status of the cluster. Status *string `locationName:"status" type:"string" enum:"ClusterStatus"` // The Kubernetes server version for the cluster. Version *string `locationName:"version" type:"string"` } // String returns the string representation func (s Cluster) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Cluster) GoString() string { return s.String() } // SetArn sets the Arn field's value. func (s *Cluster) SetArn(v string) *Cluster { s.Arn = &v return s } // SetCertificateAuthority sets the CertificateAuthority field's value. func (s *Cluster) SetCertificateAuthority(v *Certificate) *Cluster { s.CertificateAuthority = v return s } // SetClientRequestToken sets the ClientRequestToken field's value. func (s *Cluster) SetClientRequestToken(v string) *Cluster { s.ClientRequestToken = &v return s } // SetCreatedAt sets the CreatedAt field's value. func (s *Cluster) SetCreatedAt(v time.Time) *Cluster { s.CreatedAt = &v return s } // SetEndpoint sets the Endpoint field's value. func (s *Cluster) SetEndpoint(v string) *Cluster { s.Endpoint = &v return s } // SetLogging sets the Logging field's value. func (s *Cluster) SetLogging(v *Logging) *Cluster { s.Logging = v return s } // SetName sets the Name field's value. func (s *Cluster) SetName(v string) *Cluster { s.Name = &v return s } // SetPlatformVersion sets the PlatformVersion field's value. func (s *Cluster) SetPlatformVersion(v string) *Cluster { s.PlatformVersion = &v return s } // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value. func (s *Cluster) SetResourcesVpcConfig(v *VpcConfigResponse) *Cluster { s.ResourcesVpcConfig = v return s } // SetRoleArn sets the RoleArn field's value. func (s *Cluster) SetRoleArn(v string) *Cluster { s.RoleArn = &v return s } // SetStatus sets the Status field's value. func (s *Cluster) SetStatus(v string) *Cluster { s.Status = &v return s } // SetVersion sets the Version field's value. func (s *Cluster) SetVersion(v string) *Cluster { s.Version = &v return s } type CreateClusterInput struct { _ struct{} `type:"structure"` // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` // Enable or disable exporting the Kubernetes control plane logs for your cluster // to CloudWatch Logs. By default, cluster control plane logs aren't exported // to CloudWatch Logs. For more information, see Amazon EKS Cluster Control // Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) // in the Amazon EKS User Guide . // // CloudWatch Logs ingestion, archive storage, and data scanning rates apply // to exported control plane logs. For more information, see Amazon CloudWatch // Pricing (http://aws.amazon.com/cloudwatch/pricing/). Logging *Logging `locationName:"logging" type:"structure"` // The unique name to give to your cluster. // // Name is a required field Name *string `locationName:"name" min:"1" type:"string" required:"true"` // The VPC configuration used by the cluster control plane. Amazon EKS VPC resources // have specific requirements to work properly with Kubernetes. For more information, // see Cluster VPC Considerations (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) // and Cluster Security Group Considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) // in the Amazon EKS User Guide. You must specify at least two subnets. You // can specify up to five security groups, but we recommend that you use a dedicated // security group for your cluster control plane. // // ResourcesVpcConfig is a required field ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure" required:"true"` // The Amazon Resource Name (ARN) of the IAM role that provides permissions // for Amazon EKS to make calls to other AWS API operations on your behalf. // For more information, see Amazon EKS Service IAM Role (https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) // in the Amazon EKS User Guide . // // RoleArn is a required field RoleArn *string `locationName:"roleArn" type:"string" required:"true"` // The desired Kubernetes version for your cluster. If you don't specify a value // here, the latest version available in Amazon EKS is used. Version *string `locationName:"version" type:"string"` } // String returns the string representation func (s CreateClusterInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateClusterInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *CreateClusterInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if s.ResourcesVpcConfig == nil { invalidParams.Add(request.NewErrParamRequired("ResourcesVpcConfig")) } if s.RoleArn == nil { invalidParams.Add(request.NewErrParamRequired("RoleArn")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetClientRequestToken sets the ClientRequestToken field's value. func (s *CreateClusterInput) SetClientRequestToken(v string) *CreateClusterInput { s.ClientRequestToken = &v return s } // SetLogging sets the Logging field's value. func (s *CreateClusterInput) SetLogging(v *Logging) *CreateClusterInput { s.Logging = v return s } // SetName sets the Name field's value. func (s *CreateClusterInput) SetName(v string) *CreateClusterInput { s.Name = &v return s } // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value. func (s *CreateClusterInput) SetResourcesVpcConfig(v *VpcConfigRequest) *CreateClusterInput { s.ResourcesVpcConfig = v return s } // SetRoleArn sets the RoleArn field's value. func (s *CreateClusterInput) SetRoleArn(v string) *CreateClusterInput { s.RoleArn = &v return s } // SetVersion sets the Version field's value. func (s *CreateClusterInput) SetVersion(v string) *CreateClusterInput { s.Version = &v return s } type CreateClusterOutput struct { _ struct{} `type:"structure"` // The full description of your new cluster. Cluster *Cluster `locationName:"cluster" type:"structure"` } // String returns the string representation func (s CreateClusterOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateClusterOutput) GoString() string { return s.String() } // SetCluster sets the Cluster field's value. func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput { s.Cluster = v return s } type DeleteClusterInput struct { _ struct{} `type:"structure"` // The name of the cluster to delete. // // Name is a required field Name *string `location:"uri" locationName:"name" type:"string" required:"true"` } // String returns the string representation func (s DeleteClusterInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteClusterInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DeleteClusterInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetName sets the Name field's value. func (s *DeleteClusterInput) SetName(v string) *DeleteClusterInput { s.Name = &v return s } type DeleteClusterOutput struct { _ struct{} `type:"structure"` // The full description of the cluster to delete. Cluster *Cluster `locationName:"cluster" type:"structure"` } // String returns the string representation func (s DeleteClusterOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteClusterOutput) GoString() string { return s.String() } // SetCluster sets the Cluster field's value. func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput { s.Cluster = v return s } type DescribeClusterInput struct { _ struct{} `type:"structure"` // The name of the cluster to describe. // // Name is a required field Name *string `location:"uri" locationName:"name" type:"string" required:"true"` } // String returns the string representation func (s DescribeClusterInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeClusterInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DescribeClusterInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetName sets the Name field's value. func (s *DescribeClusterInput) SetName(v string) *DescribeClusterInput { s.Name = &v return s } type DescribeClusterOutput struct { _ struct{} `type:"structure"` // The full description of your specified cluster. Cluster *Cluster `locationName:"cluster" type:"structure"` } // String returns the string representation func (s DescribeClusterOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeClusterOutput) GoString() string { return s.String() } // SetCluster sets the Cluster field's value. func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput { s.Cluster = v return s } type DescribeUpdateInput struct { _ struct{} `type:"structure"` // The name of the Amazon EKS cluster to update. // // Name is a required field Name *string `location:"uri" locationName:"name" type:"string" required:"true"` // The ID of the update to describe. // // UpdateId is a required field UpdateId *string `location:"uri" locationName:"updateId" type:"string" required:"true"` } // String returns the string representation func (s DescribeUpdateInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeUpdateInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DescribeUpdateInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DescribeUpdateInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if s.UpdateId == nil { invalidParams.Add(request.NewErrParamRequired("UpdateId")) } if s.UpdateId != nil && len(*s.UpdateId) < 1 { invalidParams.Add(request.NewErrParamMinLen("UpdateId", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetName sets the Name field's value. func (s *DescribeUpdateInput) SetName(v string) *DescribeUpdateInput { s.Name = &v return s } // SetUpdateId sets the UpdateId field's value. func (s *DescribeUpdateInput) SetUpdateId(v string) *DescribeUpdateInput { s.UpdateId = &v return s } type DescribeUpdateOutput struct { _ struct{} `type:"structure"` // The full description of the specified update. Update *Update `locationName:"update" type:"structure"` } // String returns the string representation func (s DescribeUpdateOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeUpdateOutput) GoString() string { return s.String() } // SetUpdate sets the Update field's value. func (s *DescribeUpdateOutput) SetUpdate(v *Update) *DescribeUpdateOutput { s.Update = v return s } // An object representing an error when an asynchronous operation fails. type ErrorDetail struct { _ struct{} `type:"structure"` // A brief description of the error. // // * SubnetNotFound: We couldn't find one of the subnets associated with // the cluster. // // * SecurityGroupNotFound: We couldn't find one of the security groups associated // with the cluster. // // * EniLimitReached: You have reached the elastic network interface limit // for your account. // // * IpNotAvailable: A subnet associated with the cluster doesn't have any // free IP addresses. // // * AccessDenied: You don't have permissions to perform the specified operation. // // * OperationNotPermitted: The service role associated with the cluster // doesn't have the required access permissions for Amazon EKS. // // * VpcIdNotFound: We couldn't find the VPC associated with the cluster. ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"` // A more complete description of the error. ErrorMessage *string `locationName:"errorMessage" type:"string"` // An optional field that contains the resource IDs associated with the error. ResourceIds []*string `locationName:"resourceIds" type:"list"` } // String returns the string representation func (s ErrorDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ErrorDetail) GoString() string { return s.String() } // SetErrorCode sets the ErrorCode field's value. func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail { s.ErrorCode = &v return s } // SetErrorMessage sets the ErrorMessage field's value. func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail { s.ErrorMessage = &v return s } // SetResourceIds sets the ResourceIds field's value. func (s *ErrorDetail) SetResourceIds(v []*string) *ErrorDetail { s.ResourceIds = v return s } type ListClustersInput struct { _ struct{} `type:"structure"` // The maximum number of cluster results returned by ListClusters in paginated // output. When you use this parameter, ListClusters returns only maxResults // results in a single page along with a nextToken response element. You can // see the remaining results of the initial request by sending another ListClusters // request with the returned nextToken value. This value can be between 1 and // 100. If you don't use this parameter, ListClusters returns up to 100 results // and a nextToken value if applicable. MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` // The nextToken value returned from a previous paginated ListClusters request // where maxResults was used and the results exceeded the value of that parameter. // Pagination continues from the end of the previous results that returned the // nextToken value. // // This token should be treated as an opaque identifier that is used only to // retrieve the next items in a list and not for other programmatic purposes. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation func (s ListClustersInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListClustersInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *ListClustersInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ListClustersInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetMaxResults sets the MaxResults field's value. func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput { s.NextToken = &v return s } type ListClustersOutput struct { _ struct{} `type:"structure"` // A list of all of the clusters for your account in the specified Region. Clusters []*string `locationName:"clusters" type:"list"` // The nextToken value to include in a future ListClusters request. When the // results of a ListClusters request exceed maxResults, you can use this value // to retrieve the next page of results. This value is null when there are no // more results to return. NextToken *string `locationName:"nextToken" type:"string"` } // String returns the string representation func (s ListClustersOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListClustersOutput) GoString() string { return s.String() } // SetClusters sets the Clusters field's value. func (s *ListClustersOutput) SetClusters(v []*string) *ListClustersOutput { s.Clusters = v return s } // SetNextToken sets the NextToken field's value. func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput { s.NextToken = &v return s } type ListUpdatesInput struct { _ struct{} `type:"structure"` // The maximum number of update results returned by ListUpdates in paginated // output. When you use this parameter, ListUpdates returns only maxResults // results in a single page along with a nextToken response element. You can // see the remaining results of the initial request by sending another ListUpdates // request with the returned nextToken value. This value can be between 1 and // 100. If you don't use this parameter, ListUpdates returns up to 100 results // and a nextToken value if applicable. MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` // The name of the Amazon EKS cluster to list updates for. // // Name is a required field Name *string `location:"uri" locationName:"name" type:"string" required:"true"` // The nextToken value returned from a previous paginated ListUpdates request // where maxResults was used and the results exceeded the value of that parameter. // Pagination continues from the end of the previous results that returned the // nextToken value. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation func (s ListUpdatesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListUpdatesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *ListUpdatesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ListUpdatesInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetMaxResults sets the MaxResults field's value. func (s *ListUpdatesInput) SetMaxResults(v int64) *ListUpdatesInput { s.MaxResults = &v return s } // SetName sets the Name field's value. func (s *ListUpdatesInput) SetName(v string) *ListUpdatesInput { s.Name = &v return s } // SetNextToken sets the NextToken field's value. func (s *ListUpdatesInput) SetNextToken(v string) *ListUpdatesInput { s.NextToken = &v return s } type ListUpdatesOutput struct { _ struct{} `type:"structure"` // The nextToken value to include in a future ListUpdates request. When the // results of a ListUpdates request exceed maxResults, you can use this value // to retrieve the next page of results. This value is null when there are no // more results to return. NextToken *string `locationName:"nextToken" type:"string"` // A list of all the updates for the specified cluster and Region. UpdateIds []*string `locationName:"updateIds" type:"list"` } // String returns the string representation func (s ListUpdatesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListUpdatesOutput) GoString() string { return s.String() } // SetNextToken sets the NextToken field's value. func (s *ListUpdatesOutput) SetNextToken(v string) *ListUpdatesOutput { s.NextToken = &v return s } // SetUpdateIds sets the UpdateIds field's value. func (s *ListUpdatesOutput) SetUpdateIds(v []*string) *ListUpdatesOutput { s.UpdateIds = v return s } // An object representing the enabled or disabled Kubernetes control plane logs // for your cluster. type LogSetup struct { _ struct{} `type:"structure"` // If a log type is enabled, that log type exports its control plane logs to // CloudWatch Logs. If a log type isn't enabled, that log type doesn't export // its control plane logs. Each individual log type can be enabled or disabled // independently. Enabled *bool `locationName:"enabled" type:"boolean"` // The available cluster control plane log types. Types []*string `locationName:"types" type:"list"` } // String returns the string representation func (s LogSetup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s LogSetup) GoString() string { return s.String() } // SetEnabled sets the Enabled field's value. func (s *LogSetup) SetEnabled(v bool) *LogSetup { s.Enabled = &v return s } // SetTypes sets the Types field's value. func (s *LogSetup) SetTypes(v []*string) *LogSetup { s.Types = v return s } // An object representing the logging configuration for resources in your cluster. type Logging struct { _ struct{} `type:"structure"` // The cluster control plane logging configuration for your cluster. ClusterLogging []*LogSetup `locationName:"clusterLogging" type:"list"` } // String returns the string representation func (s Logging) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Logging) GoString() string { return s.String() } // SetClusterLogging sets the ClusterLogging field's value. func (s *Logging) SetClusterLogging(v []*LogSetup) *Logging { s.ClusterLogging = v return s } // An object representing an asynchronous update. type Update struct { _ struct{} `type:"structure"` // The Unix epoch timestamp in seconds for when the update was created. CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` // Any errors associated with a Failed update. Errors []*ErrorDetail `locationName:"errors" type:"list"` // A UUID that is used to track the update. Id *string `locationName:"id" type:"string"` // A key-value map that contains the parameters associated with the update. Params []*UpdateParam `locationName:"params" type:"list"` // The current status of the update. Status *string `locationName:"status" type:"string" enum:"UpdateStatus"` // The type of the update. Type *string `locationName:"type" type:"string" enum:"UpdateType"` } // String returns the string representation func (s Update) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Update) GoString() string { return s.String() } // SetCreatedAt sets the CreatedAt field's value. func (s *Update) SetCreatedAt(v time.Time) *Update { s.CreatedAt = &v return s } // SetErrors sets the Errors field's value. func (s *Update) SetErrors(v []*ErrorDetail) *Update { s.Errors = v return s } // SetId sets the Id field's value. func (s *Update) SetId(v string) *Update { s.Id = &v return s } // SetParams sets the Params field's value. func (s *Update) SetParams(v []*UpdateParam) *Update { s.Params = v return s } // SetStatus sets the Status field's value. func (s *Update) SetStatus(v string) *Update { s.Status = &v return s } // SetType sets the Type field's value. func (s *Update) SetType(v string) *Update { s.Type = &v return s } type UpdateClusterConfigInput struct { _ struct{} `type:"structure"` // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` // Enable or disable exporting the Kubernetes control plane logs for your cluster // to CloudWatch Logs. By default, cluster control plane logs aren't exported // to CloudWatch Logs. For more information, see Amazon EKS Cluster Control // Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) // in the Amazon EKS User Guide . // // CloudWatch Logs ingestion, archive storage, and data scanning rates apply // to exported control plane logs. For more information, see Amazon CloudWatch // Pricing (http://aws.amazon.com/cloudwatch/pricing/). Logging *Logging `locationName:"logging" type:"structure"` // The name of the Amazon EKS cluster to update. // // Name is a required field Name *string `location:"uri" locationName:"name" type:"string" required:"true"` // An object representing the VPC configuration to use for an Amazon EKS cluster. ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure"` } // String returns the string representation func (s UpdateClusterConfigInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateClusterConfigInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateClusterConfigInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UpdateClusterConfigInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetClientRequestToken sets the ClientRequestToken field's value. func (s *UpdateClusterConfigInput) SetClientRequestToken(v string) *UpdateClusterConfigInput { s.ClientRequestToken = &v return s } // SetLogging sets the Logging field's value. func (s *UpdateClusterConfigInput) SetLogging(v *Logging) *UpdateClusterConfigInput { s.Logging = v return s } // SetName sets the Name field's value. func (s *UpdateClusterConfigInput) SetName(v string) *UpdateClusterConfigInput { s.Name = &v return s } // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value. func (s *UpdateClusterConfigInput) SetResourcesVpcConfig(v *VpcConfigRequest) *UpdateClusterConfigInput { s.ResourcesVpcConfig = v return s } type UpdateClusterConfigOutput struct { _ struct{} `type:"structure"` // An object representing an asynchronous update. Update *Update `locationName:"update" type:"structure"` } // String returns the string representation func (s UpdateClusterConfigOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateClusterConfigOutput) GoString() string { return s.String() } // SetUpdate sets the Update field's value. func (s *UpdateClusterConfigOutput) SetUpdate(v *Update) *UpdateClusterConfigOutput { s.Update = v return s } type UpdateClusterVersionInput struct { _ struct{} `type:"structure"` // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` // The name of the Amazon EKS cluster to update. // // Name is a required field Name *string `location:"uri" locationName:"name" type:"string" required:"true"` // The desired Kubernetes version following a successful update. // // Version is a required field Version *string `locationName:"version" type:"string" required:"true"` } // String returns the string representation func (s UpdateClusterVersionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateClusterVersionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateClusterVersionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UpdateClusterVersionInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if s.Version == nil { invalidParams.Add(request.NewErrParamRequired("Version")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetClientRequestToken sets the ClientRequestToken field's value. func (s *UpdateClusterVersionInput) SetClientRequestToken(v string) *UpdateClusterVersionInput { s.ClientRequestToken = &v return s } // SetName sets the Name field's value. func (s *UpdateClusterVersionInput) SetName(v string) *UpdateClusterVersionInput { s.Name = &v return s } // SetVersion sets the Version field's value. func (s *UpdateClusterVersionInput) SetVersion(v string) *UpdateClusterVersionInput { s.Version = &v return s } type UpdateClusterVersionOutput struct { _ struct{} `type:"structure"` // The full description of the specified update Update *Update `locationName:"update" type:"structure"` } // String returns the string representation func (s UpdateClusterVersionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateClusterVersionOutput) GoString() string { return s.String() } // SetUpdate sets the Update field's value. func (s *UpdateClusterVersionOutput) SetUpdate(v *Update) *UpdateClusterVersionOutput { s.Update = v return s } // An object representing the details of an update request. type UpdateParam struct { _ struct{} `type:"structure"` // The keys associated with an update request. Type *string `locationName:"type" type:"string" enum:"UpdateParamType"` // The value of the keys submitted as part of an update request. Value *string `locationName:"value" type:"string"` } // String returns the string representation func (s UpdateParam) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateParam) GoString() string { return s.String() } // SetType sets the Type field's value. func (s *UpdateParam) SetType(v string) *UpdateParam { s.Type = &v return s } // SetValue sets the Value field's value. func (s *UpdateParam) SetValue(v string) *UpdateParam { s.Value = &v return s } // An object representing the VPC configuration to use for an Amazon EKS cluster. type VpcConfigRequest struct { _ struct{} `type:"structure"` // Set this value to true to enable private access for your cluster's Kubernetes // API server endpoint. If you enable private access, Kubernetes API requests // from within your cluster's VPC use the private VPC endpoint. The default // value for this parameter is false, which disables private access for your // Kubernetes API server. For more information, see Amazon EKS Cluster Endpoint // Access Control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) // in the Amazon EKS User Guide . EndpointPrivateAccess *bool `locationName:"endpointPrivateAccess" type:"boolean"` // Set this value to false to disable public access for your cluster's Kubernetes // API server endpoint. If you disable public access, your cluster's Kubernetes // API server can receive only requests from within the cluster VPC. The default // value for this parameter is true, which enables public access for your Kubernetes // API server. For more information, see Amazon EKS Cluster Endpoint Access // Control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) // in the Amazon EKS User Guide . EndpointPublicAccess *bool `locationName:"endpointPublicAccess" type:"boolean"` // Specify one or more security groups for the cross-account elastic network // interfaces that Amazon EKS creates to use to allow communication between // your worker nodes and the Kubernetes control plane. If you don't specify // a security group, the default security group for your VPC is used. SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"` // Specify subnets for your Amazon EKS worker nodes. Amazon EKS creates cross-account // elastic network interfaces in these subnets to allow communication between // your worker nodes and the Kubernetes control plane. SubnetIds []*string `locationName:"subnetIds" type:"list"` } // String returns the string representation func (s VpcConfigRequest) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s VpcConfigRequest) GoString() string { return s.String() } // SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value. func (s *VpcConfigRequest) SetEndpointPrivateAccess(v bool) *VpcConfigRequest { s.EndpointPrivateAccess = &v return s } // SetEndpointPublicAccess sets the EndpointPublicAccess field's value. func (s *VpcConfigRequest) SetEndpointPublicAccess(v bool) *VpcConfigRequest { s.EndpointPublicAccess = &v return s } // SetSecurityGroupIds sets the SecurityGroupIds field's value. func (s *VpcConfigRequest) SetSecurityGroupIds(v []*string) *VpcConfigRequest { s.SecurityGroupIds = v return s } // SetSubnetIds sets the SubnetIds field's value. func (s *VpcConfigRequest) SetSubnetIds(v []*string) *VpcConfigRequest { s.SubnetIds = v return s } // An object representing an Amazon EKS cluster VPC configuration response. type VpcConfigResponse struct { _ struct{} `type:"structure"` // This parameter indicates whether the Amazon EKS private API server endpoint // is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes // API requests that originate from within your cluster's VPC use the private // VPC endpoint instead of traversing the internet. EndpointPrivateAccess *bool `locationName:"endpointPrivateAccess" type:"boolean"` // This parameter indicates whether the Amazon EKS public API server endpoint // is enabled. If the Amazon EKS public API server endpoint is disabled, your // cluster's Kubernetes API server can receive only requests that originate // from within the cluster VPC. EndpointPublicAccess *bool `locationName:"endpointPublicAccess" type:"boolean"` // The security groups associated with the cross-account elastic network interfaces // that are used to allow communication between your worker nodes and the Kubernetes // control plane. SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"` // The subnets associated with your cluster. SubnetIds []*string `locationName:"subnetIds" type:"list"` // The VPC associated with your cluster. VpcId *string `locationName:"vpcId" type:"string"` } // String returns the string representation func (s VpcConfigResponse) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s VpcConfigResponse) GoString() string { return s.String() } // SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value. func (s *VpcConfigResponse) SetEndpointPrivateAccess(v bool) *VpcConfigResponse { s.EndpointPrivateAccess = &v return s } // SetEndpointPublicAccess sets the EndpointPublicAccess field's value. func (s *VpcConfigResponse) SetEndpointPublicAccess(v bool) *VpcConfigResponse { s.EndpointPublicAccess = &v return s } // SetSecurityGroupIds sets the SecurityGroupIds field's value. func (s *VpcConfigResponse) SetSecurityGroupIds(v []*string) *VpcConfigResponse { s.SecurityGroupIds = v return s } // SetSubnetIds sets the SubnetIds field's value. func (s *VpcConfigResponse) SetSubnetIds(v []*string) *VpcConfigResponse { s.SubnetIds = v return s } // SetVpcId sets the VpcId field's value. func (s *VpcConfigResponse) SetVpcId(v string) *VpcConfigResponse { s.VpcId = &v return s } const ( // ClusterStatusCreating is a ClusterStatus enum value ClusterStatusCreating = "CREATING" // ClusterStatusActive is a ClusterStatus enum value ClusterStatusActive = "ACTIVE" // ClusterStatusDeleting is a ClusterStatus enum value ClusterStatusDeleting = "DELETING" // ClusterStatusFailed is a ClusterStatus enum value ClusterStatusFailed = "FAILED" ) const ( // ErrorCodeSubnetNotFound is a ErrorCode enum value ErrorCodeSubnetNotFound = "SubnetNotFound" // ErrorCodeSecurityGroupNotFound is a ErrorCode enum value ErrorCodeSecurityGroupNotFound = "SecurityGroupNotFound" // ErrorCodeEniLimitReached is a ErrorCode enum value ErrorCodeEniLimitReached = "EniLimitReached" // ErrorCodeIpNotAvailable is a ErrorCode enum value ErrorCodeIpNotAvailable = "IpNotAvailable" // ErrorCodeAccessDenied is a ErrorCode enum value ErrorCodeAccessDenied = "AccessDenied" // ErrorCodeOperationNotPermitted is a ErrorCode enum value ErrorCodeOperationNotPermitted = "OperationNotPermitted" // ErrorCodeVpcIdNotFound is a ErrorCode enum value ErrorCodeVpcIdNotFound = "VpcIdNotFound" // ErrorCodeUnknown is a ErrorCode enum value ErrorCodeUnknown = "Unknown" ) const ( // LogTypeApi is a LogType enum value LogTypeApi = "api" // LogTypeAudit is a LogType enum value LogTypeAudit = "audit" // LogTypeAuthenticator is a LogType enum value LogTypeAuthenticator = "authenticator" // LogTypeControllerManager is a LogType enum value LogTypeControllerManager = "controllerManager" // LogTypeScheduler is a LogType enum value LogTypeScheduler = "scheduler" ) const ( // UpdateParamTypeVersion is a UpdateParamType enum value UpdateParamTypeVersion = "Version" // UpdateParamTypePlatformVersion is a UpdateParamType enum value UpdateParamTypePlatformVersion = "PlatformVersion" // UpdateParamTypeEndpointPrivateAccess is a UpdateParamType enum value UpdateParamTypeEndpointPrivateAccess = "EndpointPrivateAccess" // UpdateParamTypeEndpointPublicAccess is a UpdateParamType enum value UpdateParamTypeEndpointPublicAccess = "EndpointPublicAccess" // UpdateParamTypeClusterLogging is a UpdateParamType enum value UpdateParamTypeClusterLogging = "ClusterLogging" ) const ( // UpdateStatusInProgress is a UpdateStatus enum value UpdateStatusInProgress = "InProgress" // UpdateStatusFailed is a UpdateStatus enum value UpdateStatusFailed = "Failed" // UpdateStatusCancelled is a UpdateStatus enum value UpdateStatusCancelled = "Cancelled" // UpdateStatusSuccessful is a UpdateStatus enum value UpdateStatusSuccessful = "Successful" ) const ( // UpdateTypeVersionUpdate is a UpdateType enum value UpdateTypeVersionUpdate = "VersionUpdate" // UpdateTypeEndpointAccessUpdate is a UpdateType enum value UpdateTypeEndpointAccessUpdate = "EndpointAccessUpdate" // UpdateTypeLoggingUpdate is a UpdateType enum value UpdateTypeLoggingUpdate = "LoggingUpdate" )