From 131f0afe979b9e1f582d70a5aa2613da1e7ea103 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 15 Nov 2019 22:39:32 +0000 Subject: [PATCH] Update module aws/aws-sdk-go to v1.25.36 --- go.mod | 2 +- go.sum | 3 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws-sdk-go/service/cloudwatchlogs/api.go | 25 +- .../service/cognitoidentityprovider/api.go | 36 + .../aws/aws-sdk-go/service/ec2/api.go | 16 + .../aws/aws-sdk-go/service/eks/api.go | 2362 ++++++++++++++++- .../aws/aws-sdk-go/service/eks/errors.go | 3 +- .../aws/aws-sdk-go/service/eks/waiters.go | 102 + .../aws/aws-sdk-go/service/elbv2/api.go | 2 +- .../aws/aws-sdk-go/service/emr/api.go | 164 +- .../aws/aws-sdk-go/service/guardduty/api.go | 1542 +++++++++-- .../aws-sdk-go/service/mediaconvert/api.go | 687 ++++- .../aws/aws-sdk-go/service/ssm/api.go | 44 +- .../aws/aws-sdk-go/service/workspaces/api.go | 1284 ++++++++- .../aws-sdk-go/service/workspaces/errors.go | 21 +- vendor/modules.txt | 2 +- 17 files changed, 5771 insertions(+), 526 deletions(-) diff --git a/go.mod b/go.mod index 76e6977dc4f1..8d5efaa824bf 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 // indirect - github.com/aws/aws-sdk-go v1.25.35 + github.com/aws/aws-sdk-go v1.25.36 github.com/beevik/etree v1.1.0 github.com/bflad/tfproviderlint v0.5.0 github.com/client9/misspell v0.3.4 diff --git a/go.sum b/go.sum index d66339d9d828..d34faa615369 100644 --- a/go.sum +++ b/go.sum @@ -36,8 +36,7 @@ github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgI github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.19.39/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.35 h1:fe2tJnqty/v/50pyngKdNk/NP8PFphYDA1Z7N3EiiiE= -github.com/aws/aws-sdk-go v1.25.35/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.25.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index b03cfb752dd3..24256bfcda0b 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.25.35" +const SDKVersion = "1.25.36" diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go index 2d5c1f0d7bdc..8166b35e3248 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go @@ -360,7 +360,7 @@ func (c *CloudWatchLogs) CreateLogGroupRequest(input *CreateLogGroupInput) (req // // Creates a log group with the specified name. // -// You can create up to 5000 log groups per account. +// You can create up to 20,000 log groups per account. // // You must use the following guidelines when naming a log group: // @@ -369,7 +369,8 @@ func (c *CloudWatchLogs) CreateLogGroupRequest(input *CreateLogGroupInput) (req // * Log group names can be between 1 and 512 characters long. // // * Log group names consist of the following characters: a-z, A-Z, 0-9, -// '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). +// '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and +// '#' (number sign) // // If you associate a AWS Key Management Service (AWS KMS) customer master key // (CMK) with the log group, ingested data is encrypted using the CMK. This @@ -2940,11 +2941,12 @@ func (c *CloudWatchLogs) PutDestinationRequest(input *PutDestinationInput) (req // PutDestination API operation for Amazon CloudWatch Logs. // -// Creates or updates a destination. A destination encapsulates a physical resource -// (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time -// stream of log events for a different account, ingested using PutLogEvents. -// A destination can be an Amazon Kinesis stream, Amazon Kinesis Data Firehose -// strea, or an AWS Lambda function. +// Creates or updates a destination. This operation is used only to create destinations +// for cross-account subscriptions. +// +// A destination encapsulates a physical resource (such as an Amazon Kinesis +// stream) and enables you to subscribe to a real-time stream of log events +// for a different account, ingested using PutLogEvents. // // Through an access policy, a destination controls what is written to it. By // default, PutDestination does not set any access policy with the destination, @@ -6325,6 +6327,8 @@ type GetLogEventsInput struct { // The token for the next set of items to return. (You received this token from // a previous call.) + // + // Using this token works only when you specify true for startFromHead. NextToken *string `locationName:"nextToken" min:"1" type:"string"` // If the value is true, the earliest log events are returned first. If the @@ -6970,9 +6974,9 @@ type LogStream struct { // The number of bytes stored. // - // IMPORTANT: Starting on June 17, 2019, this parameter will be deprecated for - // log streams, and will be reported as zero. This change applies only to log - // streams. The storedBytes parameter for log groups is not affected. + // IMPORTANT:On June 17, 2019, this parameter was deprecated for log streams, + // and is always reported as zero. This change applies only to log streams. + // The storedBytes parameter for log groups is not affected. // // Deprecated: Starting on June 17, 2019, this parameter will be deprecated for log streams, and will be reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected. StoredBytes *int64 `locationName:"storedBytes" deprecated:"true" type:"long"` @@ -8320,6 +8324,7 @@ type StartQueryInput struct { // The maximum number of log events to return in the query. If the query string // uses the fields command, only the specified fields and their values are returned. + // The default is 1000. Limit *int64 `locationName:"limit" min:"1" type:"integer"` // The log group on which to perform the query. diff --git a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go index a21cb8d27cc5..cea54de136da 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go @@ -18476,6 +18476,22 @@ func (s *DomainDescriptionType) SetVersion(v string) *DomainDescriptionType { type EmailConfigurationType struct { _ struct{} `type:"structure"` + // The set of configuration rules that can be applied to emails sent using Amazon + // SES. A configuration set is applied to an email by including a reference + // to the configuration set in the headers of the email. Once applied, all of + // the rules in that configuration set are applied to the email. Configuration + // sets can be used to apply the following types of rules to emails: + // + // * Event publishing – Amazon SES can track the number of send, delivery, + // open, click, bounce, and complaint events for each email sent. Use event + // publishing to send information about these events to other AWS services + // such as SNS and CloudWatch. + // + // * IP pool management – When leasing dedicated IP addresses with Amazon + // SES, you can create groups of IP addresses, called dedicated IP pools. + // You can then associate the dedicated IP pools with configuration sets. + ConfigurationSet *string `min:"1" type:"string"` + // Specifies whether Amazon Cognito emails your users by using its built-in // email functionality or your Amazon SES email configuration. Specify one of // the following values: @@ -18518,6 +18534,11 @@ type EmailConfigurationType struct { // in the Amazon Cognito Developer Guide. EmailSendingAccount *string `type:"string" enum:"EmailSendingAccountType"` + // Identifies either the sender’s email address or the sender’s name with + // their email address. For example, testuser@example.com or Test User . + // This address will appear before the body of the email. + From *string `type:"string"` + // The destination to which the receiver of the email should reply to. ReplyToEmailAddress *string `type:"string"` @@ -18547,6 +18568,9 @@ func (s EmailConfigurationType) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *EmailConfigurationType) Validate() error { invalidParams := request.ErrInvalidParams{Context: "EmailConfigurationType"} + if s.ConfigurationSet != nil && len(*s.ConfigurationSet) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigurationSet", 1)) + } if s.SourceArn != nil && len(*s.SourceArn) < 20 { invalidParams.Add(request.NewErrParamMinLen("SourceArn", 20)) } @@ -18557,12 +18581,24 @@ func (s *EmailConfigurationType) Validate() error { return nil } +// SetConfigurationSet sets the ConfigurationSet field's value. +func (s *EmailConfigurationType) SetConfigurationSet(v string) *EmailConfigurationType { + s.ConfigurationSet = &v + return s +} + // SetEmailSendingAccount sets the EmailSendingAccount field's value. func (s *EmailConfigurationType) SetEmailSendingAccount(v string) *EmailConfigurationType { s.EmailSendingAccount = &v return s } +// SetFrom sets the From field's value. +func (s *EmailConfigurationType) SetFrom(v string) *EmailConfigurationType { + s.From = &v + return s +} + // SetReplyToEmailAddress sets the ReplyToEmailAddress field's value. func (s *EmailConfigurationType) SetReplyToEmailAddress(v string) *EmailConfigurationType { s.ReplyToEmailAddress = &v diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index 29e19cb10abb..5b501e81794b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -39167,6 +39167,8 @@ type CopySnapshotInput struct { // // SourceSnapshotId is a required field SourceSnapshotId *string `type:"string" required:"true"` + + TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` } // String returns the string representation @@ -39243,12 +39245,20 @@ func (s *CopySnapshotInput) SetSourceSnapshotId(v string) *CopySnapshotInput { return s } +// SetTagSpecifications sets the TagSpecifications field's value. +func (s *CopySnapshotInput) SetTagSpecifications(v []*TagSpecification) *CopySnapshotInput { + s.TagSpecifications = v + return s +} + // Contains the output of CopySnapshot. type CopySnapshotOutput struct { _ struct{} `type:"structure"` // The ID of the new snapshot. SnapshotId *string `locationName:"snapshotId" type:"string"` + + Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"` } // String returns the string representation @@ -39267,6 +39277,12 @@ func (s *CopySnapshotOutput) SetSnapshotId(v string) *CopySnapshotOutput { return s } +// SetTags sets the Tags field's value. +func (s *CopySnapshotOutput) SetTags(v []*Tag) *CopySnapshotOutput { + s.Tags = v + return s +} + // The CPU options for the instance. type CpuOptions struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/eks/api.go b/vendor/github.com/aws/aws-sdk-go/service/eks/api.go index 28140fc874ed..bd35e366c43c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/eks/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/eks/api.go @@ -155,6 +155,116 @@ func (c *EKS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInpu return out, req.Send() } +const opCreateNodegroup = "CreateNodegroup" + +// CreateNodegroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateNodegroup 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 CreateNodegroup for more information on using the CreateNodegroup +// 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 CreateNodegroupRequest method. +// req, resp := client.CreateNodegroupRequest(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/CreateNodegroup +func (c *EKS) CreateNodegroupRequest(input *CreateNodegroupInput) (req *request.Request, output *CreateNodegroupOutput) { + op := &request.Operation{ + Name: opCreateNodegroup, + HTTPMethod: "POST", + HTTPPath: "/clusters/{name}/node-groups", + } + + if input == nil { + input = &CreateNodegroupInput{} + } + + output = &CreateNodegroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateNodegroup API operation for Amazon Elastic Kubernetes Service. +// +// Creates a managed worker node group for an Amazon EKS cluster. You can only +// create a node group for your cluster that is equal to the current Kubernetes +// version for the cluster. All node groups are created with the latest AMI +// release version for the respective minor Kubernetes version of the cluster. +// +// An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and +// associated Amazon EC2 instances that are managed by AWS for an Amazon EKS +// cluster. Each node group uses a version of the Amazon EKS-optimized Amazon +// Linux 2 AMI. For more information, see Managed Node Groups (https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.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 CreateNodegroup 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. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// The request is invalid given the state of the cluster. Check the state of +// the cluster and the associated operations. +// +// * 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/CreateNodegroup +func (c *EKS) CreateNodegroup(input *CreateNodegroupInput) (*CreateNodegroupOutput, error) { + req, out := c.CreateNodegroupRequest(input) + return out, req.Send() +} + +// CreateNodegroupWithContext is the same as CreateNodegroup with the addition of +// the ability to pass a context and additional request options. +// +// See CreateNodegroup 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) CreateNodegroupWithContext(ctx aws.Context, input *CreateNodegroupInput, opts ...request.Option) (*CreateNodegroupOutput, error) { + req, out := c.CreateNodegroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteCluster = "DeleteCluster" // DeleteClusterRequest generates a "aws/request.Request" representing the @@ -208,6 +318,9 @@ func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Requ // For more information, see Deleting a Cluster (https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html) // in the Amazon EKS User Guide. // +// If you have managed node groups attached to the cluster, you must delete +// them first. For more information, see DeleteNodegroup. +// // 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. @@ -221,7 +334,8 @@ func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Requ // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are Region-specific. +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using @@ -256,6 +370,105 @@ func (c *EKS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInpu return out, req.Send() } +const opDeleteNodegroup = "DeleteNodegroup" + +// DeleteNodegroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteNodegroup 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 DeleteNodegroup for more information on using the DeleteNodegroup +// 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 DeleteNodegroupRequest method. +// req, resp := client.DeleteNodegroupRequest(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/DeleteNodegroup +func (c *EKS) DeleteNodegroupRequest(input *DeleteNodegroupInput) (req *request.Request, output *DeleteNodegroupOutput) { + op := &request.Operation{ + Name: opDeleteNodegroup, + HTTPMethod: "DELETE", + HTTPPath: "/clusters/{name}/node-groups/{nodegroupName}", + } + + if input == nil { + input = &DeleteNodegroupInput{} + } + + output = &DeleteNodegroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteNodegroup API operation for Amazon Elastic Kubernetes Service. +// +// Deletes an Amazon EKS node group for a cluster. +// +// 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 DeleteNodegroup 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. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// * 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/DeleteNodegroup +func (c *EKS) DeleteNodegroup(input *DeleteNodegroupInput) (*DeleteNodegroupOutput, error) { + req, out := c.DeleteNodegroupRequest(input) + return out, req.Send() +} + +// DeleteNodegroupWithContext is the same as DeleteNodegroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteNodegroup 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) DeleteNodegroupWithContext(ctx aws.Context, input *DeleteNodegroupInput, opts ...request.Option) (*DeleteNodegroupOutput, error) { + req, out := c.DeleteNodegroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeCluster = "DescribeCluster" // DescribeClusterRequest generates a "aws/request.Request" representing the @@ -320,7 +533,8 @@ func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request. // 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. +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action. Actions can include using @@ -355,6 +569,102 @@ func (c *EKS) DescribeClusterWithContext(ctx aws.Context, input *DescribeCluster return out, req.Send() } +const opDescribeNodegroup = "DescribeNodegroup" + +// DescribeNodegroupRequest generates a "aws/request.Request" representing the +// client's request for the DescribeNodegroup 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 DescribeNodegroup for more information on using the DescribeNodegroup +// 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 DescribeNodegroupRequest method. +// req, resp := client.DescribeNodegroupRequest(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/DescribeNodegroup +func (c *EKS) DescribeNodegroupRequest(input *DescribeNodegroupInput) (req *request.Request, output *DescribeNodegroupOutput) { + op := &request.Operation{ + Name: opDescribeNodegroup, + HTTPMethod: "GET", + HTTPPath: "/clusters/{name}/node-groups/{nodegroupName}", + } + + if input == nil { + input = &DescribeNodegroupInput{} + } + + output = &DescribeNodegroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeNodegroup API operation for Amazon Elastic Kubernetes Service. +// +// Returns descriptive information about an Amazon EKS node group. +// +// 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 DescribeNodegroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterException "InvalidParameterException" +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups 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/DescribeNodegroup +func (c *EKS) DescribeNodegroup(input *DescribeNodegroupInput) (*DescribeNodegroupOutput, error) { + req, out := c.DescribeNodegroupRequest(input) + return out, req.Send() +} + +// DescribeNodegroupWithContext is the same as DescribeNodegroup with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeNodegroup 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) DescribeNodegroupWithContext(ctx aws.Context, input *DescribeNodegroupInput, opts ...request.Option) (*DescribeNodegroupOutput, error) { + req, out := c.DescribeNodegroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeUpdate = "DescribeUpdate" // DescribeUpdateRequest generates a "aws/request.Request" representing the @@ -399,7 +709,8 @@ func (c *EKS) DescribeUpdateRequest(input *DescribeUpdateInput) (req *request.Re // DescribeUpdate API operation for Amazon Elastic Kubernetes Service. // -// Returns descriptive information about an update against your Amazon EKS cluster. +// Returns descriptive information about an update against your Amazon EKS cluster +// or associated managed node group. // // 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 @@ -427,7 +738,8 @@ func (c *EKS) DescribeUpdateRequest(input *DescribeUpdateInput) (req *request.Re // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are Region-specific. +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups 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) { @@ -600,63 +912,218 @@ func (c *EKS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersI return p.Err() } -const opListTagsForResource = "ListTagsForResource" +const opListNodegroups = "ListNodegroups" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// ListNodegroupsRequest generates a "aws/request.Request" representing the +// client's request for the ListNodegroups 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 ListTagsForResource for more information on using the ListTagsForResource +// See ListNodegroups for more information on using the ListNodegroups // 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 ListTagsForResourceRequest method. -// req, resp := client.ListTagsForResourceRequest(params) +// // Example sending a request using the ListNodegroupsRequest method. +// req, resp := client.ListNodegroupsRequest(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/ListTagsForResource -func (c *EKS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups +func (c *EKS) ListNodegroupsRequest(input *ListNodegroupsInput) (req *request.Request, output *ListNodegroupsOutput) { op := &request.Operation{ - Name: opListTagsForResource, + Name: opListNodegroups, HTTPMethod: "GET", - HTTPPath: "/tags/{resourceArn}", + HTTPPath: "/clusters/{name}/node-groups", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &ListTagsForResourceInput{} + input = &ListNodegroupsInput{} } - output = &ListTagsForResourceOutput{} + output = &ListNodegroupsOutput{} req = c.newRequest(op, input, output) return } -// ListTagsForResource API operation for Amazon Elastic Kubernetes Service. +// ListNodegroups API operation for Amazon Elastic Kubernetes Service. // -// List the tags for an Amazon EKS resource. +// Lists the Amazon EKS node groups associated with the specified 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 ListTagsForResource for usage and error information. +// API operation ListNodegroups for usage and error information. // // Returned Error Codes: -// * ErrCodeBadRequestException "BadRequestException" -// This exception is thrown if the request contains a semantic error. The precise -// meaning will depend on the API, and will be documented in the error message. +// * 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. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups +func (c *EKS) ListNodegroups(input *ListNodegroupsInput) (*ListNodegroupsOutput, error) { + req, out := c.ListNodegroupsRequest(input) + return out, req.Send() +} + +// ListNodegroupsWithContext is the same as ListNodegroups with the addition of +// the ability to pass a context and additional request options. +// +// See ListNodegroups 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) ListNodegroupsWithContext(ctx aws.Context, input *ListNodegroupsInput, opts ...request.Option) (*ListNodegroupsOutput, error) { + req, out := c.ListNodegroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListNodegroupsPages iterates over the pages of a ListNodegroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListNodegroups method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListNodegroups operation. +// pageNum := 0 +// err := client.ListNodegroupsPages(params, +// func(page *eks.ListNodegroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *EKS) ListNodegroupsPages(input *ListNodegroupsInput, fn func(*ListNodegroupsOutput, bool) bool) error { + return c.ListNodegroupsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListNodegroupsPagesWithContext same as ListNodegroupsPages except +// it takes a Context and allows setting request options on the pages. +// +// 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) ListNodegroupsPagesWithContext(ctx aws.Context, input *ListNodegroupsInput, fn func(*ListNodegroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListNodegroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListNodegroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListNodegroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource 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 ListTagsForResource for more information on using the ListTagsForResource +// 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 ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(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/ListTagsForResource +func (c *EKS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon Elastic Kubernetes Service. +// +// List the tags for an Amazon EKS resource. +// +// 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 ListTagsForResource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// This exception is thrown if the request contains a semantic error. The precise +// meaning will depend on the API, and will be documented in the error message. // // * ErrCodeNotFoundException "NotFoundException" // A service resource associated with the request could not be found. Clients @@ -734,8 +1201,8 @@ func (c *EKS) ListUpdatesRequest(input *ListUpdatesInput) (req *request.Request, // 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. +// Lists the updates associated with an Amazon EKS cluster or managed node group +// 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 @@ -759,7 +1226,8 @@ func (c *EKS) ListUpdatesRequest(input *ListUpdatesInput) (req *request.Request, // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are Region-specific. +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups 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) { @@ -883,7 +1351,10 @@ func (c *EKS) TagResourceRequest(input *TagResourceInput) (req *request.Request, // Associates the specified tags to a resource with the specified resourceArn. // If existing tags on a resource are not specified in the request parameters, // they are not changed. When a resource is deleted, the tags associated with -// that resource are deleted as well. +// that resource are deleted as well. Tags that you create for Amazon EKS resources +// do not propagate to any other resources associated with the cluster. For +// example, if you tag a cluster with this operation, that tag does not automatically +// propagate to the subnets and worker nodes associated with the cluster. // // 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 @@ -1106,7 +1577,8 @@ func (c *EKS) UpdateClusterConfigRequest(input *UpdateClusterConfigInput) (req * // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are Region-specific. +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. // // * ErrCodeInvalidRequestException "InvalidRequestException" // The request is invalid given the state of the cluster. Check the state of @@ -1188,6 +1660,10 @@ func (c *EKS) UpdateClusterVersionRequest(input *UpdateClusterVersionInput) (req // is eventually consistent). When the update is complete (either Failed or // Successful), the cluster status moves to Active. // +// If your cluster has managed node groups attached to it, all of your node +// groups’ Kubernetes versions must match the cluster’s Kubernetes version +// in order to update the cluster to a new Kubernetes version. +// // 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. @@ -1213,7 +1689,8 @@ func (c *EKS) UpdateClusterVersionRequest(input *UpdateClusterVersionInput) (req // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are Region-specific. +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. // // * ErrCodeInvalidRequestException "InvalidRequestException" // The request is invalid given the state of the cluster. Check the state of @@ -1241,51 +1718,297 @@ func (c *EKS) UpdateClusterVersionWithContext(ctx aws.Context, input *UpdateClus return out, req.Send() } -// An object representing the certificate-authority-data for your cluster. -type Certificate struct { - _ struct{} `type:"structure"` +const opUpdateNodegroupConfig = "UpdateNodegroupConfig" - // 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"` -} +// UpdateNodegroupConfigRequest generates a "aws/request.Request" representing the +// client's request for the UpdateNodegroupConfig 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 UpdateNodegroupConfig for more information on using the UpdateNodegroupConfig +// 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 UpdateNodegroupConfigRequest method. +// req, resp := client.UpdateNodegroupConfigRequest(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/UpdateNodegroupConfig +func (c *EKS) UpdateNodegroupConfigRequest(input *UpdateNodegroupConfigInput) (req *request.Request, output *UpdateNodegroupConfigOutput) { + op := &request.Operation{ + Name: opUpdateNodegroupConfig, + HTTPMethod: "POST", + HTTPPath: "/clusters/{name}/node-groups/{nodegroupName}/update-config", + } -// String returns the string representation -func (s Certificate) String() string { - return awsutil.Prettify(s) -} + if input == nil { + input = &UpdateNodegroupConfigInput{} + } -// GoString returns the string representation -func (s Certificate) GoString() string { - return s.String() + output = &UpdateNodegroupConfigOutput{} + req = c.newRequest(op, input, output) + return } -// SetData sets the Data field's value. -func (s *Certificate) SetData(v string) *Certificate { - s.Data = &v - return s +// UpdateNodegroupConfig API operation for Amazon Elastic Kubernetes Service. +// +// Updates an Amazon EKS managed node group configuration. Your node group continues +// to function during the update. The response output includes an update ID +// that you can use to track the status of your node group update with the DescribeUpdate +// API operation. Currently you can update the Kubernetes labels for a node +// group or the scaling configuration. +// +// 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 UpdateNodegroupConfig 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. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups 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/UpdateNodegroupConfig +func (c *EKS) UpdateNodegroupConfig(input *UpdateNodegroupConfigInput) (*UpdateNodegroupConfigOutput, error) { + req, out := c.UpdateNodegroupConfigRequest(input) + return out, req.Send() } -// 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"` +// UpdateNodegroupConfigWithContext is the same as UpdateNodegroupConfig with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateNodegroupConfig 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) UpdateNodegroupConfigWithContext(ctx aws.Context, input *UpdateNodegroupConfigInput, opts ...request.Option) (*UpdateNodegroupConfigOutput, error) { + req, out := c.UpdateNodegroupConfigRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} - // The certificate-authority-data for your cluster. - CertificateAuthority *Certificate `locationName:"certificateAuthority" type:"structure"` +const opUpdateNodegroupVersion = "UpdateNodegroupVersion" - // Unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. - ClientRequestToken *string `locationName:"clientRequestToken" type:"string"` +// UpdateNodegroupVersionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateNodegroupVersion 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 UpdateNodegroupVersion for more information on using the UpdateNodegroupVersion +// 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 UpdateNodegroupVersionRequest method. +// req, resp := client.UpdateNodegroupVersionRequest(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/UpdateNodegroupVersion +func (c *EKS) UpdateNodegroupVersionRequest(input *UpdateNodegroupVersionInput) (req *request.Request, output *UpdateNodegroupVersionOutput) { + op := &request.Operation{ + Name: opUpdateNodegroupVersion, + HTTPMethod: "POST", + HTTPPath: "/clusters/{name}/node-groups/{nodegroupName}/update-version", + } - // The Unix epoch timestamp in seconds for when the cluster was created. - CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + if input == nil { + input = &UpdateNodegroupVersionInput{} + } - // The endpoint for your Kubernetes API server. - Endpoint *string `locationName:"endpoint" type:"string"` + output = &UpdateNodegroupVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateNodegroupVersion API operation for Amazon Elastic Kubernetes Service. +// +// Updates the Kubernetes version or AMI version of an Amazon EKS managed node +// group. +// +// You can update to the latest available AMI version of a node group's current +// Kubernetes version by not specifying a Kubernetes version in the request. +// You can update to the latest AMI version of your cluster's current Kubernetes +// version by specifying your cluster's Kubernetes version in the request. For +// more information, see Amazon EKS-Optimized Linux AMI Versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) +// in the Amazon EKS User Guide. +// +// You cannot roll back a node group to an earlier Kubernetes version or AMI +// version. +// +// When a node in a managed node group is terminated due to a scaling action +// or update, the pods in that node are drained first. Amazon EKS attempts to +// drain the nodes gracefully and will fail if it is unable to do so. You can +// force the update if Amazon EKS is unable to drain the nodes as a result of +// a pod disruption budget issue. +// +// 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 UpdateNodegroupVersion 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. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups 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/UpdateNodegroupVersion +func (c *EKS) UpdateNodegroupVersion(input *UpdateNodegroupVersionInput) (*UpdateNodegroupVersionOutput, error) { + req, out := c.UpdateNodegroupVersionRequest(input) + return out, req.Send() +} + +// UpdateNodegroupVersionWithContext is the same as UpdateNodegroupVersion with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateNodegroupVersion 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) UpdateNodegroupVersionWithContext(ctx aws.Context, input *UpdateNodegroupVersionInput, opts ...request.Option) (*UpdateNodegroupVersionOutput, error) { + req, out := c.UpdateNodegroupVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// An AutoScaling group that is associated with an Amazon EKS managed node group. +type AutoScalingGroup struct { + _ struct{} `type:"structure"` + + // The name of the AutoScaling group associated with an Amazon EKS managed node + // group. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s AutoScalingGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AutoScalingGroup) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *AutoScalingGroup) SetName(v string) *AutoScalingGroup { + s.Name = &v + return s +} + +// 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 identity provider information for the cluster. Identity *Identity `locationName:"identity" type:"structure"` @@ -1318,7 +2041,8 @@ type Cluster struct { // The metadata that you apply to the cluster to assist with categorization // and organization. Each tag consists of a key and an optional value, both - // of which you define. + // of which you define. Cluster tags do not propagate to any other resources + // associated with the cluster. Tags map[string]*string `locationName:"tags" min:"1" type:"map"` // The Kubernetes server version for the cluster. @@ -1570,33 +2294,122 @@ func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput { return s } -type DeleteClusterInput struct { +type CreateNodegroupInput struct { _ struct{} `type:"structure"` - // The name of the cluster to delete. + // The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU + // AMI type, which uses the Amazon EKS-optimized Linux AMI with GPU support; + // non-GPU instances should use the AL2_x86_64 AMI type, which uses the Amazon + // EKS-optimized Linux AMI. + AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"` + + // 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 cluster to create the node group in. // - // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The root device disk size (in GiB) for your node group instances. The default + // disk size is 20 GiB. + DiskSize *int64 `locationName:"diskSize" type:"integer"` + + // The instance type to use for your node group. Currently, you can specify + // a single instance type for a node group. The default value for this parameter + // is t3.medium. If you choose a GPU instance type, be sure to specify the AL2_x86_64_GPU + // with the amiType parameter. + InstanceTypes []*string `locationName:"instanceTypes" type:"list"` + + // The Kubernetes labels to be applied to the nodes in the node group when they + // are created. + Labels map[string]*string `locationName:"labels" type:"map"` + + // The IAM role associated with your node group. The Amazon EKS worker node + // kubelet daemon makes calls to AWS APIs on your behalf. Worker nodes receive + // permissions for these API calls through an IAM instance profile and associated + // policies. Before you can launch worker nodes and register them into a cluster, + // you must create an IAM role for those worker nodes to use when they are launched. + // For more information, see Amazon EKS Worker Node IAM Role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html) + // in the Amazon EKS User Guide . + // + // NodeRole is a required field + NodeRole *string `locationName:"nodeRole" type:"string" required:"true"` + + // The unique name to give your node group. + // + // NodegroupName is a required field + NodegroupName *string `locationName:"nodegroupName" type:"string" required:"true"` + + // The AMI version of the Amazon EKS-optimized AMI to use with your node group. + // By default, the latest available AMI version for the node group's current + // Kubernetes version is used. For more information, see Amazon EKS-Optimized + // Linux AMI Versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) + // in the Amazon EKS User Guide. + ReleaseVersion *string `locationName:"releaseVersion" type:"string"` + + // The remote access (SSH) configuration to use with your node group. + RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"` + + // The scaling configuration details for the AutoScaling group that is created + // for your node group. + ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"` + + // The subnets to use for the AutoScaling group that is created for your node + // group. These subnets must have the tag key kubernetes.io/cluster/CLUSTER_NAME + // with a value of shared, where CLUSTER_NAME is replaced with the name of your + // cluster. + // + // Subnets is a required field + Subnets []*string `locationName:"subnets" type:"list" required:"true"` + + // The metadata to apply to the node group to assist with categorization and + // organization. Each tag consists of a key and an optional value, both of which + // you define. Node group tags do not propagate to any other resources associated + // with the node group, such as the Amazon EC2 instances or subnets. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + + // The Kubernetes version to use for your managed nodes. By default, the Kubernetes + // version of the cluster is used, and this is the only accepted specified value. + Version *string `locationName:"version" type:"string"` } // String returns the string representation -func (s DeleteClusterInput) String() string { +func (s CreateNodegroupInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteClusterInput) GoString() string { +func (s CreateNodegroupInput) 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")) +func (s *CreateNodegroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateNodegroupInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.NodeRole == nil { + invalidParams.Add(request.NewErrParamRequired("NodeRole")) + } + if s.NodegroupName == nil { + invalidParams.Add(request.NewErrParamRequired("NodegroupName")) + } + if s.Subnets == nil { + invalidParams.Add(request.NewErrParamRequired("Subnets")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + if s.ScalingConfig != nil { + if err := s.ScalingConfig.Validate(); err != nil { + invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -1605,57 +2418,135 @@ func (s *DeleteClusterInput) Validate() error { return nil } -// SetName sets the Name field's value. -func (s *DeleteClusterInput) SetName(v string) *DeleteClusterInput { - s.Name = &v +// SetAmiType sets the AmiType field's value. +func (s *CreateNodegroupInput) SetAmiType(v string) *CreateNodegroupInput { + s.AmiType = &v return s } -type DeleteClusterOutput struct { +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CreateNodegroupInput) SetClientRequestToken(v string) *CreateNodegroupInput { + s.ClientRequestToken = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *CreateNodegroupInput) SetClusterName(v string) *CreateNodegroupInput { + s.ClusterName = &v + return s +} + +// SetDiskSize sets the DiskSize field's value. +func (s *CreateNodegroupInput) SetDiskSize(v int64) *CreateNodegroupInput { + s.DiskSize = &v + return s +} + +// SetInstanceTypes sets the InstanceTypes field's value. +func (s *CreateNodegroupInput) SetInstanceTypes(v []*string) *CreateNodegroupInput { + s.InstanceTypes = v + return s +} + +// SetLabels sets the Labels field's value. +func (s *CreateNodegroupInput) SetLabels(v map[string]*string) *CreateNodegroupInput { + s.Labels = v + return s +} + +// SetNodeRole sets the NodeRole field's value. +func (s *CreateNodegroupInput) SetNodeRole(v string) *CreateNodegroupInput { + s.NodeRole = &v + return s +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *CreateNodegroupInput) SetNodegroupName(v string) *CreateNodegroupInput { + s.NodegroupName = &v + return s +} + +// SetReleaseVersion sets the ReleaseVersion field's value. +func (s *CreateNodegroupInput) SetReleaseVersion(v string) *CreateNodegroupInput { + s.ReleaseVersion = &v + return s +} + +// SetRemoteAccess sets the RemoteAccess field's value. +func (s *CreateNodegroupInput) SetRemoteAccess(v *RemoteAccessConfig) *CreateNodegroupInput { + s.RemoteAccess = v + return s +} + +// SetScalingConfig sets the ScalingConfig field's value. +func (s *CreateNodegroupInput) SetScalingConfig(v *NodegroupScalingConfig) *CreateNodegroupInput { + s.ScalingConfig = v + return s +} + +// SetSubnets sets the Subnets field's value. +func (s *CreateNodegroupInput) SetSubnets(v []*string) *CreateNodegroupInput { + s.Subnets = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateNodegroupInput) SetTags(v map[string]*string) *CreateNodegroupInput { + s.Tags = v + return s +} + +// SetVersion sets the Version field's value. +func (s *CreateNodegroupInput) SetVersion(v string) *CreateNodegroupInput { + s.Version = &v + return s +} + +type CreateNodegroupOutput struct { _ struct{} `type:"structure"` - // The full description of the cluster to delete. - Cluster *Cluster `locationName:"cluster" type:"structure"` + // The full description of your new node group. + Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"` } // String returns the string representation -func (s DeleteClusterOutput) String() string { +func (s CreateNodegroupOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteClusterOutput) GoString() string { +func (s CreateNodegroupOutput) GoString() string { return s.String() } -// SetCluster sets the Cluster field's value. -func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput { - s.Cluster = v +// SetNodegroup sets the Nodegroup field's value. +func (s *CreateNodegroupOutput) SetNodegroup(v *Nodegroup) *CreateNodegroupOutput { + s.Nodegroup = v return s } -type DescribeClusterInput struct { +type DeleteClusterInput struct { _ struct{} `type:"structure"` - // The name of the cluster to describe. + // 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 DescribeClusterInput) String() string { +func (s DeleteClusterInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeClusterInput) GoString() string { +func (s DeleteClusterInput) 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"} +func (s *DeleteClusterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"} if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } @@ -1670,72 +2561,72 @@ func (s *DescribeClusterInput) Validate() error { } // SetName sets the Name field's value. -func (s *DescribeClusterInput) SetName(v string) *DescribeClusterInput { +func (s *DeleteClusterInput) SetName(v string) *DeleteClusterInput { s.Name = &v return s } -type DescribeClusterOutput struct { +type DeleteClusterOutput struct { _ struct{} `type:"structure"` - // The full description of your specified cluster. + // The full description of the cluster to delete. Cluster *Cluster `locationName:"cluster" type:"structure"` } // String returns the string representation -func (s DescribeClusterOutput) String() string { +func (s DeleteClusterOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeClusterOutput) GoString() string { +func (s DeleteClusterOutput) GoString() string { return s.String() } // SetCluster sets the Cluster field's value. -func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput { +func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput { s.Cluster = v return s } -type DescribeUpdateInput struct { +type DeleteNodegroupInput struct { _ struct{} `type:"structure"` - // The name of the Amazon EKS cluster to update. + // The name of the Amazon EKS cluster that is associated with your node group. // - // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` - // The ID of the update to describe. + // The name of the node group to delete. // - // UpdateId is a required field - UpdateId *string `location:"uri" locationName:"updateId" type:"string" required:"true"` + // NodegroupName is a required field + NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` } // String returns the string representation -func (s DescribeUpdateInput) String() string { +func (s DeleteNodegroupInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeUpdateInput) GoString() string { +func (s DeleteNodegroupInput) 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")) +func (s *DeleteNodegroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteNodegroupInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) } - if s.UpdateId == nil { - invalidParams.Add(request.NewErrParamRequired("UpdateId")) + if s.NodegroupName == nil { + invalidParams.Add(request.NewErrParamRequired("NodegroupName")) } - if s.UpdateId != nil && len(*s.UpdateId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("UpdateId", 1)) + if s.NodegroupName != nil && len(*s.NodegroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1)) } if invalidParams.Len() > 0 { @@ -1744,13 +2635,248 @@ func (s *DescribeUpdateInput) Validate() error { return nil } -// SetName sets the Name field's value. -func (s *DescribeUpdateInput) SetName(v string) *DescribeUpdateInput { - s.Name = &v +// SetClusterName sets the ClusterName field's value. +func (s *DeleteNodegroupInput) SetClusterName(v string) *DeleteNodegroupInput { + s.ClusterName = &v return s } -// SetUpdateId sets the UpdateId field's value. +// SetNodegroupName sets the NodegroupName field's value. +func (s *DeleteNodegroupInput) SetNodegroupName(v string) *DeleteNodegroupInput { + s.NodegroupName = &v + return s +} + +type DeleteNodegroupOutput struct { + _ struct{} `type:"structure"` + + // The full description of your deleted node group. + Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"` +} + +// String returns the string representation +func (s DeleteNodegroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteNodegroupOutput) GoString() string { + return s.String() +} + +// SetNodegroup sets the Nodegroup field's value. +func (s *DeleteNodegroupOutput) SetNodegroup(v *Nodegroup) *DeleteNodegroupOutput { + s.Nodegroup = 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 DescribeNodegroupInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster associated with the node group. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the node group to describe. + // + // NodegroupName is a required field + NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeNodegroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeNodegroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeNodegroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeNodegroupInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.NodegroupName == nil { + invalidParams.Add(request.NewErrParamRequired("NodegroupName")) + } + if s.NodegroupName != nil && len(*s.NodegroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *DescribeNodegroupInput) SetClusterName(v string) *DescribeNodegroupInput { + s.ClusterName = &v + return s +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *DescribeNodegroupInput) SetNodegroupName(v string) *DescribeNodegroupInput { + s.NodegroupName = &v + return s +} + +type DescribeNodegroupOutput struct { + _ struct{} `type:"structure"` + + // The full description of your node group. + Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"` +} + +// String returns the string representation +func (s DescribeNodegroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeNodegroupOutput) GoString() string { + return s.String() +} + +// SetNodegroup sets the Nodegroup field's value. +func (s *DescribeNodegroupOutput) SetNodegroup(v *Nodegroup) *DescribeNodegroupOutput { + s.Nodegroup = v + return s +} + +type DescribeUpdateInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster associated with the update. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the Amazon EKS node group associated with the update. + NodegroupName *string `location:"querystring" locationName:"nodegroupName" type:"string"` + + // 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 +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *DescribeUpdateInput) SetNodegroupName(v string) *DescribeUpdateInput { + s.NodegroupName = &v + return s +} + +// SetUpdateId sets the UpdateId field's value. func (s *DescribeUpdateInput) SetUpdateId(v string) *DescribeUpdateInput { s.UpdateId = &v return s @@ -1865,6 +2991,93 @@ func (s *Identity) SetOidc(v *OIDC) *Identity { return s } +// An object representing an issue with an Amazon EKS resource. +type Issue struct { + _ struct{} `type:"structure"` + + // A brief description of the error. + // + // * AutoScalingGroupNotFound: We couldn't find the Auto Scaling group associated + // with the managed node group. You may be able to recreate an Auto Scaling + // group with the same settings to recover. + // + // * Ec2SecurityGroupNotFound: We couldn't find the cluster security group + // for the cluster. You must recreate your cluster. + // + // * Ec2SecurityGroupDeletionFailure: We could not delete the remote access + // security group for your managed node group. Remove any dependencies from + // the security group. + // + // * Ec2LaunchTemplateNotFound: We couldn't find the Amazon EC2 launch template + // for your managed node group. You may be able to recreate a launch template + // with the same settings to recover. + // + // * Ec2LaunchTemplateVersionMismatch: The Amazon EC2 launch template version + // for your managed node group does not match the version that Amazon EKS + // created. You may be able to revert to the Amazon EKS-created version to + // recover. + // + // * IamInstanceProfileNotFound: We couldn't find the IAM instance profile + // for your managed node group. You may be able to recreate an instance profile + // with the same settings to recover. + // + // * IamNodeRoleNotFound: We couldn't find the IAM role for your managed + // node group. You may be able to recreate an IAM role with the same settings + // to recover. + // + // * AsgInstanceLaunchFailures: Your Auto Scaling group is experiencing failures + // while attempting to launch instances. + // + // * InstanceLimitExceeded: Your AWS account is unable to launch any more + // instances of the specified instance type. You may be able to request an + // Amazon EC2 instance limit increase to recover. + // + // * InsufficientFreeAddresses: One or more of the subnets associated with + // your managed node group does not have enough available IP addresses for + // new nodes. + // + // * AccessDenied: Amazon EKS and or one or more of your managed nodes is + // unable to communicate with your cluster API server. + // + // * InternalFailure: These errors are usually caused by an Amazon EKS server-side + // issue. + Code *string `locationName:"code" type:"string" enum:"NodegroupIssueCode"` + + // The error message associated with the issue. + Message *string `locationName:"message" type:"string"` + + // The AWS resources that are afflicted by this issue. + ResourceIds []*string `locationName:"resourceIds" type:"list"` +} + +// String returns the string representation +func (s Issue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Issue) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *Issue) SetCode(v string) *Issue { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *Issue) SetMessage(v string) *Issue { + s.Message = &v + return s +} + +// SetResourceIds sets the ResourceIds field's value. +func (s *Issue) SetResourceIds(v []*string) *Issue { + s.ResourceIds = v + return s +} + type ListClustersInput struct { _ struct{} `type:"structure"` @@ -1957,11 +3170,119 @@ func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput { return s } +type ListNodegroupsInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon EKS cluster that you would like to list node groups + // in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The maximum number of node group results returned by ListNodegroups in paginated + // output. When you use this parameter, ListNodegroups 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 ListNodegroups + // request with the returned nextToken value. This value can be between 1 and + // 100. If you don't use this parameter, ListNodegroups 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 ListNodegroups 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 ListNodegroupsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListNodegroupsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListNodegroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListNodegroupsInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *ListNodegroupsInput) SetClusterName(v string) *ListNodegroupsInput { + s.ClusterName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListNodegroupsInput) SetMaxResults(v int64) *ListNodegroupsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListNodegroupsInput) SetNextToken(v string) *ListNodegroupsInput { + s.NextToken = &v + return s +} + +type ListNodegroupsOutput struct { + _ struct{} `type:"structure"` + + // The nextToken value to include in a future ListNodegroups request. When the + // results of a ListNodegroups 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 of the node groups associated with the specified cluster. + Nodegroups []*string `locationName:"nodegroups" type:"list"` +} + +// String returns the string representation +func (s ListNodegroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListNodegroupsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListNodegroupsOutput) SetNextToken(v string) *ListNodegroupsOutput { + s.NextToken = &v + return s +} + +// SetNodegroups sets the Nodegroups field's value. +func (s *ListNodegroupsOutput) SetNodegroups(v []*string) *ListNodegroupsOutput { + s.Nodegroups = v + return s +} + type ListTagsForResourceInput struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) that identifies the resource for which to - // list the tags. Currently, the supported resources are Amazon EKS clusters. + // list the tags. Currently, the supported resources are Amazon EKS clusters + // and managed node groups. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` @@ -2044,6 +3365,9 @@ type ListUpdatesInput struct { // Pagination continues from the end of the previous results that returned the // nextToken value. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The name of the Amazon EKS managed node group to list updates for. + NodegroupName *string `location:"querystring" locationName:"nodegroupName" type:"string"` } // String returns the string representation @@ -2093,6 +3417,12 @@ func (s *ListUpdatesInput) SetNextToken(v string) *ListUpdatesInput { return s } +// SetNodegroupName sets the NodegroupName field's value. +func (s *ListUpdatesInput) SetNodegroupName(v string) *ListUpdatesInput { + s.NodegroupName = &v + return s +} + type ListUpdatesOutput struct { _ struct{} `type:"structure"` @@ -2165,27 +3495,360 @@ func (s *LogSetup) SetTypes(v []*string) *LogSetup { return s } -// An object representing the logging configuration for resources in your cluster. -type Logging struct { +// 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 Amazon EKS managed node group. +type Nodegroup struct { + _ struct{} `type:"structure"` + + // The AMI type associated with your node group. GPU instance types should use + // the AL2_x86_64_GPU AMI type, which uses the Amazon EKS-optimized Linux AMI + // with GPU support; non-GPU instances should use the AL2_x86_64 AMI type, which + // uses the Amazon EKS-optimized Linux AMI. + AmiType *string `locationName:"amiType" type:"string" enum:"AMITypes"` + + // The name of the cluster that the managed node group resides in. + ClusterName *string `locationName:"clusterName" type:"string"` + + // The Unix epoch timestamp in seconds for when the managed node group was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The root device disk size (in GiB) for your node group instances. The default + // disk size is 20 GiB. + DiskSize *int64 `locationName:"diskSize" type:"integer"` + + // The health status of the node group. If there are issues with your node group's + // health, they are listed here. + Health *NodegroupHealth `locationName:"health" type:"structure"` + + // The instance types associated with your node group. + InstanceTypes []*string `locationName:"instanceTypes" type:"list"` + + // The Kubernetes labels applied to the nodes in the node group. + // + // Only labels that are applied with the Amazon EKS API are shown here. There + // may be other Kubernetes labels applied to the nodes in this group. + Labels map[string]*string `locationName:"labels" type:"map"` + + // The Unix epoch timestamp in seconds for when the managed node group was last + // modified. + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` + + // The IAM role associated with your node group. The Amazon EKS worker node + // kubelet daemon makes calls to AWS APIs on your behalf. Worker nodes receive + // permissions for these API calls through an IAM instance profile and associated + // policies. Before you can launch worker nodes and register them into a cluster, + // you must create an IAM role for those worker nodes to use when they are launched. + // For more information, see Amazon EKS Worker Node IAM Role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html) + // in the Amazon EKS User Guide . + NodeRole *string `locationName:"nodeRole" type:"string"` + + // The Amazon Resource Name (ARN) associated with the managed node group. + NodegroupArn *string `locationName:"nodegroupArn" type:"string"` + + // The name associated with an Amazon EKS managed node group. + NodegroupName *string `locationName:"nodegroupName" type:"string"` + + // The AMI version of the managed node group. For more information, see Amazon + // EKS-Optimized Linux AMI Versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) + // in the Amazon EKS User Guide. + ReleaseVersion *string `locationName:"releaseVersion" type:"string"` + + // The remote access (SSH) configuration that is associated with the node group. + RemoteAccess *RemoteAccessConfig `locationName:"remoteAccess" type:"structure"` + + // The resources associated with the nodegroup, such as AutoScaling groups and + // security groups for remote access. + Resources *NodegroupResources `locationName:"resources" type:"structure"` + + // The scaling configuration details for the AutoScaling group that is associated + // with your node group. + ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"` + + // The current status of the managed node group. + Status *string `locationName:"status" type:"string" enum:"NodegroupStatus"` + + // The subnets allowed for the AutoScaling group that is associated with your + // node group. These subnets must have the following tag: kubernetes.io/cluster/CLUSTER_NAME, + // where CLUSTER_NAME is replaced with the name of your cluster. + Subnets []*string `locationName:"subnets" type:"list"` + + // The metadata applied the node group to assist with categorization and organization. + // Each tag consists of a key and an optional value, both of which you define. + // Node group tags do not propagate to any other resources associated with the + // node group, such as the Amazon EC2 instances or subnets. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + + // The Kubernetes version of the managed node group. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s Nodegroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Nodegroup) GoString() string { + return s.String() +} + +// SetAmiType sets the AmiType field's value. +func (s *Nodegroup) SetAmiType(v string) *Nodegroup { + s.AmiType = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *Nodegroup) SetClusterName(v string) *Nodegroup { + s.ClusterName = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Nodegroup) SetCreatedAt(v time.Time) *Nodegroup { + s.CreatedAt = &v + return s +} + +// SetDiskSize sets the DiskSize field's value. +func (s *Nodegroup) SetDiskSize(v int64) *Nodegroup { + s.DiskSize = &v + return s +} + +// SetHealth sets the Health field's value. +func (s *Nodegroup) SetHealth(v *NodegroupHealth) *Nodegroup { + s.Health = v + return s +} + +// SetInstanceTypes sets the InstanceTypes field's value. +func (s *Nodegroup) SetInstanceTypes(v []*string) *Nodegroup { + s.InstanceTypes = v + return s +} + +// SetLabels sets the Labels field's value. +func (s *Nodegroup) SetLabels(v map[string]*string) *Nodegroup { + s.Labels = v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *Nodegroup) SetModifiedAt(v time.Time) *Nodegroup { + s.ModifiedAt = &v + return s +} + +// SetNodeRole sets the NodeRole field's value. +func (s *Nodegroup) SetNodeRole(v string) *Nodegroup { + s.NodeRole = &v + return s +} + +// SetNodegroupArn sets the NodegroupArn field's value. +func (s *Nodegroup) SetNodegroupArn(v string) *Nodegroup { + s.NodegroupArn = &v + return s +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *Nodegroup) SetNodegroupName(v string) *Nodegroup { + s.NodegroupName = &v + return s +} + +// SetReleaseVersion sets the ReleaseVersion field's value. +func (s *Nodegroup) SetReleaseVersion(v string) *Nodegroup { + s.ReleaseVersion = &v + return s +} + +// SetRemoteAccess sets the RemoteAccess field's value. +func (s *Nodegroup) SetRemoteAccess(v *RemoteAccessConfig) *Nodegroup { + s.RemoteAccess = v + return s +} + +// SetResources sets the Resources field's value. +func (s *Nodegroup) SetResources(v *NodegroupResources) *Nodegroup { + s.Resources = v + return s +} + +// SetScalingConfig sets the ScalingConfig field's value. +func (s *Nodegroup) SetScalingConfig(v *NodegroupScalingConfig) *Nodegroup { + s.ScalingConfig = v + return s +} + +// SetStatus sets the Status field's value. +func (s *Nodegroup) SetStatus(v string) *Nodegroup { + s.Status = &v + return s +} + +// SetSubnets sets the Subnets field's value. +func (s *Nodegroup) SetSubnets(v []*string) *Nodegroup { + s.Subnets = v + return s +} + +// SetTags sets the Tags field's value. +func (s *Nodegroup) SetTags(v map[string]*string) *Nodegroup { + s.Tags = v + return s +} + +// SetVersion sets the Version field's value. +func (s *Nodegroup) SetVersion(v string) *Nodegroup { + s.Version = &v + return s +} + +// An object representing the health status of the node group. +type NodegroupHealth struct { + _ struct{} `type:"structure"` + + // Any issues that are associated with the node group. + Issues []*Issue `locationName:"issues" type:"list"` +} + +// String returns the string representation +func (s NodegroupHealth) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NodegroupHealth) GoString() string { + return s.String() +} + +// SetIssues sets the Issues field's value. +func (s *NodegroupHealth) SetIssues(v []*Issue) *NodegroupHealth { + s.Issues = v + return s +} + +// An object representing the resources associated with the nodegroup, such +// as AutoScaling groups and security groups for remote access. +type NodegroupResources struct { + _ struct{} `type:"structure"` + + // The autoscaling groups associated with the node group. + AutoScalingGroups []*AutoScalingGroup `locationName:"autoScalingGroups" type:"list"` + + // The remote access security group associated with the node group. This security + // group controls SSH access to the worker nodes. + RemoteAccessSecurityGroup *string `locationName:"remoteAccessSecurityGroup" type:"string"` +} + +// String returns the string representation +func (s NodegroupResources) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NodegroupResources) GoString() string { + return s.String() +} + +// SetAutoScalingGroups sets the AutoScalingGroups field's value. +func (s *NodegroupResources) SetAutoScalingGroups(v []*AutoScalingGroup) *NodegroupResources { + s.AutoScalingGroups = v + return s +} + +// SetRemoteAccessSecurityGroup sets the RemoteAccessSecurityGroup field's value. +func (s *NodegroupResources) SetRemoteAccessSecurityGroup(v string) *NodegroupResources { + s.RemoteAccessSecurityGroup = &v + return s +} + +// An object representing the scaling configuration details for the AutoScaling +// group that is associated with your node group. +type NodegroupScalingConfig struct { _ struct{} `type:"structure"` - // The cluster control plane logging configuration for your cluster. - ClusterLogging []*LogSetup `locationName:"clusterLogging" type:"list"` + // The current number of worker nodes that the managed node group should maintain. + DesiredSize *int64 `locationName:"desiredSize" min:"1" type:"integer"` + + // The maximum number of worker nodes that the managed node group can scale + // out to. Managed node groups can support up to 100 nodes by default. + MaxSize *int64 `locationName:"maxSize" min:"1" type:"integer"` + + // The minimum number of worker nodes that the managed node group can scale + // in to. This number must be greater than zero. + MinSize *int64 `locationName:"minSize" min:"1" type:"integer"` } // String returns the string representation -func (s Logging) String() string { +func (s NodegroupScalingConfig) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s Logging) GoString() string { +func (s NodegroupScalingConfig) GoString() string { return s.String() } -// SetClusterLogging sets the ClusterLogging field's value. -func (s *Logging) SetClusterLogging(v []*LogSetup) *Logging { - s.ClusterLogging = v +// Validate inspects the fields of the type to determine if they are valid. +func (s *NodegroupScalingConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NodegroupScalingConfig"} + if s.DesiredSize != nil && *s.DesiredSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("DesiredSize", 1)) + } + if s.MaxSize != nil && *s.MaxSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxSize", 1)) + } + if s.MinSize != nil && *s.MinSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("MinSize", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDesiredSize sets the DesiredSize field's value. +func (s *NodegroupScalingConfig) SetDesiredSize(v int64) *NodegroupScalingConfig { + s.DesiredSize = &v + return s +} + +// SetMaxSize sets the MaxSize field's value. +func (s *NodegroupScalingConfig) SetMaxSize(v int64) *NodegroupScalingConfig { + s.MaxSize = &v + return s +} + +// SetMinSize sets the MinSize field's value. +func (s *NodegroupScalingConfig) SetMinSize(v int64) *NodegroupScalingConfig { + s.MinSize = &v return s } @@ -2214,11 +3877,53 @@ func (s *OIDC) SetIssuer(v string) *OIDC { return s } +// An object representing the remote access configuration for the managed node +// group. +type RemoteAccessConfig struct { + _ struct{} `type:"structure"` + + // The Amazon EC2 SSH key that provides access for SSH communication with the + // worker nodes in the managed node group. For more information, see Amazon + // EC2 Key Pairs (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) + // in the Amazon Elastic Compute Cloud User Guide for Linux Instances. + Ec2SshKey *string `locationName:"ec2SshKey" type:"string"` + + // The security groups to allow SSH access (port 22) from on the worker nodes. + // If you specify an Amazon EC2 SSH key, but you do not specify a source security + // group when you create a managed node group, port 22 on the worker nodes is + // opened to the internet (0.0.0.0/0). For more information, see Security Groups + // for Your VPC (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) + // in the Amazon Virtual Private Cloud User Guide. + SourceSecurityGroups []*string `locationName:"sourceSecurityGroups" type:"list"` +} + +// String returns the string representation +func (s RemoteAccessConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemoteAccessConfig) GoString() string { + return s.String() +} + +// SetEc2SshKey sets the Ec2SshKey field's value. +func (s *RemoteAccessConfig) SetEc2SshKey(v string) *RemoteAccessConfig { + s.Ec2SshKey = &v + return s +} + +// SetSourceSecurityGroups sets the SourceSecurityGroups field's value. +func (s *RemoteAccessConfig) SetSourceSecurityGroups(v []*string) *RemoteAccessConfig { + s.SourceSecurityGroups = v + return s +} + type TagResourceInput struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, - // the supported resources are Amazon EKS clusters. + // the supported resources are Amazon EKS clusters and managed node groups. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` @@ -2291,7 +3996,8 @@ type UntagResourceInput struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the resource from which to delete tags. - // Currently, the supported resources are Amazon EKS clusters. + // Currently, the supported resources are Amazon EKS clusters and managed node + // groups. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` @@ -2617,6 +4323,283 @@ func (s *UpdateClusterVersionOutput) SetUpdate(v *Update) *UpdateClusterVersionO return s } +// An object representing a Kubernetes label change for a managed node group. +type UpdateLabelsPayload struct { + _ struct{} `type:"structure"` + + // Kubernetes labels to be added or updated. + AddOrUpdateLabels map[string]*string `locationName:"addOrUpdateLabels" type:"map"` + + // Kubernetes labels to be removed. + RemoveLabels []*string `locationName:"removeLabels" type:"list"` +} + +// String returns the string representation +func (s UpdateLabelsPayload) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateLabelsPayload) GoString() string { + return s.String() +} + +// SetAddOrUpdateLabels sets the AddOrUpdateLabels field's value. +func (s *UpdateLabelsPayload) SetAddOrUpdateLabels(v map[string]*string) *UpdateLabelsPayload { + s.AddOrUpdateLabels = v + return s +} + +// SetRemoveLabels sets the RemoveLabels field's value. +func (s *UpdateLabelsPayload) SetRemoveLabels(v []*string) *UpdateLabelsPayload { + s.RemoveLabels = v + return s +} + +type UpdateNodegroupConfigInput 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 that the managed node group resides in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The Kubernetes labels to be applied to the nodes in the node group after + // the update. + Labels *UpdateLabelsPayload `locationName:"labels" type:"structure"` + + // The name of the managed node group to update. + // + // NodegroupName is a required field + NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` + + // The scaling configuration details for the AutoScaling group after the update. + ScalingConfig *NodegroupScalingConfig `locationName:"scalingConfig" type:"structure"` +} + +// String returns the string representation +func (s UpdateNodegroupConfigInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateNodegroupConfigInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateNodegroupConfigInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateNodegroupConfigInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.NodegroupName == nil { + invalidParams.Add(request.NewErrParamRequired("NodegroupName")) + } + if s.NodegroupName != nil && len(*s.NodegroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1)) + } + if s.ScalingConfig != nil { + if err := s.ScalingConfig.Validate(); err != nil { + invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *UpdateNodegroupConfigInput) SetClientRequestToken(v string) *UpdateNodegroupConfigInput { + s.ClientRequestToken = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *UpdateNodegroupConfigInput) SetClusterName(v string) *UpdateNodegroupConfigInput { + s.ClusterName = &v + return s +} + +// SetLabels sets the Labels field's value. +func (s *UpdateNodegroupConfigInput) SetLabels(v *UpdateLabelsPayload) *UpdateNodegroupConfigInput { + s.Labels = v + return s +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *UpdateNodegroupConfigInput) SetNodegroupName(v string) *UpdateNodegroupConfigInput { + s.NodegroupName = &v + return s +} + +// SetScalingConfig sets the ScalingConfig field's value. +func (s *UpdateNodegroupConfigInput) SetScalingConfig(v *NodegroupScalingConfig) *UpdateNodegroupConfigInput { + s.ScalingConfig = v + return s +} + +type UpdateNodegroupConfigOutput struct { + _ struct{} `type:"structure"` + + // An object representing an asynchronous update. + Update *Update `locationName:"update" type:"structure"` +} + +// String returns the string representation +func (s UpdateNodegroupConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateNodegroupConfigOutput) GoString() string { + return s.String() +} + +// SetUpdate sets the Update field's value. +func (s *UpdateNodegroupConfigOutput) SetUpdate(v *Update) *UpdateNodegroupConfigOutput { + s.Update = v + return s +} + +type UpdateNodegroupVersionInput 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 that is associated with the managed node + // group to update. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // Force the update if the existing node group's pods are unable to be drained + // due to a pod disruption budget issue. If a previous update fails because + // pods could not be drained, you can force the update after it fails to terminate + // the old node regardless of whether or not any pods are running on the node. + Force *bool `locationName:"force" type:"boolean"` + + // The name of the managed node group to update. + // + // NodegroupName is a required field + NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` + + // The AMI version of the Amazon EKS-optimized AMI to use for the update. By + // default, the latest available AMI version for the node group's Kubernetes + // version is used. For more information, see Amazon EKS-Optimized Linux AMI + // Versions (https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) + // in the Amazon EKS User Guide. + ReleaseVersion *string `locationName:"releaseVersion" type:"string"` + + // The Kubernetes version to update to. If no version is specified, then the + // Kubernetes version of the node group does not change. You can specify the + // Kubernetes version of the cluster to update the node group to the latest + // AMI version of the cluster's Kubernetes version. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation +func (s UpdateNodegroupVersionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateNodegroupVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateNodegroupVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateNodegroupVersionInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.NodegroupName == nil { + invalidParams.Add(request.NewErrParamRequired("NodegroupName")) + } + if s.NodegroupName != nil && len(*s.NodegroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *UpdateNodegroupVersionInput) SetClientRequestToken(v string) *UpdateNodegroupVersionInput { + s.ClientRequestToken = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *UpdateNodegroupVersionInput) SetClusterName(v string) *UpdateNodegroupVersionInput { + s.ClusterName = &v + return s +} + +// SetForce sets the Force field's value. +func (s *UpdateNodegroupVersionInput) SetForce(v bool) *UpdateNodegroupVersionInput { + s.Force = &v + return s +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *UpdateNodegroupVersionInput) SetNodegroupName(v string) *UpdateNodegroupVersionInput { + s.NodegroupName = &v + return s +} + +// SetReleaseVersion sets the ReleaseVersion field's value. +func (s *UpdateNodegroupVersionInput) SetReleaseVersion(v string) *UpdateNodegroupVersionInput { + s.ReleaseVersion = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *UpdateNodegroupVersionInput) SetVersion(v string) *UpdateNodegroupVersionInput { + s.Version = &v + return s +} + +type UpdateNodegroupVersionOutput struct { + _ struct{} `type:"structure"` + + // An object representing an asynchronous update. + Update *Update `locationName:"update" type:"structure"` +} + +// String returns the string representation +func (s UpdateNodegroupVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateNodegroupVersionOutput) GoString() string { + return s.String() +} + +// SetUpdate sets the Update field's value. +func (s *UpdateNodegroupVersionOutput) SetUpdate(v *Update) *UpdateNodegroupVersionOutput { + s.Update = v + return s +} + // An object representing the details of an update request. type UpdateParam struct { _ struct{} `type:"structure"` @@ -2722,6 +4705,11 @@ func (s *VpcConfigRequest) SetSubnetIds(v []*string) *VpcConfigRequest { type VpcConfigResponse struct { _ struct{} `type:"structure"` + // The cluster security group that was created by Amazon EKS for the cluster. + // Managed node groups use this security group for control plane to data plane + // communication. + ClusterSecurityGroupId *string `locationName:"clusterSecurityGroupId" type:"string"` + // 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 @@ -2756,6 +4744,12 @@ func (s VpcConfigResponse) GoString() string { return s.String() } +// SetClusterSecurityGroupId sets the ClusterSecurityGroupId field's value. +func (s *VpcConfigResponse) SetClusterSecurityGroupId(v string) *VpcConfigResponse { + s.ClusterSecurityGroupId = &v + return s +} + // SetEndpointPrivateAccess sets the EndpointPrivateAccess field's value. func (s *VpcConfigResponse) SetEndpointPrivateAccess(v bool) *VpcConfigResponse { s.EndpointPrivateAccess = &v @@ -2786,6 +4780,14 @@ func (s *VpcConfigResponse) SetVpcId(v string) *VpcConfigResponse { return s } +const ( + // AMITypesAl2X8664 is a AMITypes enum value + AMITypesAl2X8664 = "AL2_x86_64" + + // AMITypesAl2X8664Gpu is a AMITypes enum value + AMITypesAl2X8664Gpu = "AL2_x86_64_GPU" +) + const ( // ClusterStatusCreating is a ClusterStatus enum value ClusterStatusCreating = "CREATING" @@ -2798,6 +4800,9 @@ const ( // ClusterStatusFailed is a ClusterStatus enum value ClusterStatusFailed = "FAILED" + + // ClusterStatusUpdating is a ClusterStatus enum value + ClusterStatusUpdating = "UPDATING" ) const ( @@ -2824,6 +4829,15 @@ const ( // ErrorCodeUnknown is a ErrorCode enum value ErrorCodeUnknown = "Unknown" + + // ErrorCodeNodeCreationFailure is a ErrorCode enum value + ErrorCodeNodeCreationFailure = "NodeCreationFailure" + + // ErrorCodePodEvictionFailure is a ErrorCode enum value + ErrorCodePodEvictionFailure = "PodEvictionFailure" + + // ErrorCodeInsufficientFreeAddresses is a ErrorCode enum value + ErrorCodeInsufficientFreeAddresses = "InsufficientFreeAddresses" ) const ( @@ -2843,6 +4857,67 @@ const ( LogTypeScheduler = "scheduler" ) +const ( + // NodegroupIssueCodeAutoScalingGroupNotFound is a NodegroupIssueCode enum value + NodegroupIssueCodeAutoScalingGroupNotFound = "AutoScalingGroupNotFound" + + // NodegroupIssueCodeEc2securityGroupNotFound is a NodegroupIssueCode enum value + NodegroupIssueCodeEc2securityGroupNotFound = "Ec2SecurityGroupNotFound" + + // NodegroupIssueCodeEc2securityGroupDeletionFailure is a NodegroupIssueCode enum value + NodegroupIssueCodeEc2securityGroupDeletionFailure = "Ec2SecurityGroupDeletionFailure" + + // NodegroupIssueCodeEc2launchTemplateNotFound is a NodegroupIssueCode enum value + NodegroupIssueCodeEc2launchTemplateNotFound = "Ec2LaunchTemplateNotFound" + + // NodegroupIssueCodeEc2launchTemplateVersionMismatch is a NodegroupIssueCode enum value + NodegroupIssueCodeEc2launchTemplateVersionMismatch = "Ec2LaunchTemplateVersionMismatch" + + // NodegroupIssueCodeIamInstanceProfileNotFound is a NodegroupIssueCode enum value + NodegroupIssueCodeIamInstanceProfileNotFound = "IamInstanceProfileNotFound" + + // NodegroupIssueCodeIamNodeRoleNotFound is a NodegroupIssueCode enum value + NodegroupIssueCodeIamNodeRoleNotFound = "IamNodeRoleNotFound" + + // NodegroupIssueCodeAsgInstanceLaunchFailures is a NodegroupIssueCode enum value + NodegroupIssueCodeAsgInstanceLaunchFailures = "AsgInstanceLaunchFailures" + + // NodegroupIssueCodeInstanceLimitExceeded is a NodegroupIssueCode enum value + NodegroupIssueCodeInstanceLimitExceeded = "InstanceLimitExceeded" + + // NodegroupIssueCodeInsufficientFreeAddresses is a NodegroupIssueCode enum value + NodegroupIssueCodeInsufficientFreeAddresses = "InsufficientFreeAddresses" + + // NodegroupIssueCodeAccessDenied is a NodegroupIssueCode enum value + NodegroupIssueCodeAccessDenied = "AccessDenied" + + // NodegroupIssueCodeInternalFailure is a NodegroupIssueCode enum value + NodegroupIssueCodeInternalFailure = "InternalFailure" +) + +const ( + // NodegroupStatusCreating is a NodegroupStatus enum value + NodegroupStatusCreating = "CREATING" + + // NodegroupStatusActive is a NodegroupStatus enum value + NodegroupStatusActive = "ACTIVE" + + // NodegroupStatusUpdating is a NodegroupStatus enum value + NodegroupStatusUpdating = "UPDATING" + + // NodegroupStatusDeleting is a NodegroupStatus enum value + NodegroupStatusDeleting = "DELETING" + + // NodegroupStatusCreateFailed is a NodegroupStatus enum value + NodegroupStatusCreateFailed = "CREATE_FAILED" + + // NodegroupStatusDeleteFailed is a NodegroupStatus enum value + NodegroupStatusDeleteFailed = "DELETE_FAILED" + + // NodegroupStatusDegraded is a NodegroupStatus enum value + NodegroupStatusDegraded = "DEGRADED" +) + const ( // UpdateParamTypeVersion is a UpdateParamType enum value UpdateParamTypeVersion = "Version" @@ -2858,6 +4933,24 @@ const ( // UpdateParamTypeClusterLogging is a UpdateParamType enum value UpdateParamTypeClusterLogging = "ClusterLogging" + + // UpdateParamTypeDesiredSize is a UpdateParamType enum value + UpdateParamTypeDesiredSize = "DesiredSize" + + // UpdateParamTypeLabelsToAdd is a UpdateParamType enum value + UpdateParamTypeLabelsToAdd = "LabelsToAdd" + + // UpdateParamTypeLabelsToRemove is a UpdateParamType enum value + UpdateParamTypeLabelsToRemove = "LabelsToRemove" + + // UpdateParamTypeMaxSize is a UpdateParamType enum value + UpdateParamTypeMaxSize = "MaxSize" + + // UpdateParamTypeMinSize is a UpdateParamType enum value + UpdateParamTypeMinSize = "MinSize" + + // UpdateParamTypeReleaseVersion is a UpdateParamType enum value + UpdateParamTypeReleaseVersion = "ReleaseVersion" ) const ( @@ -2883,4 +4976,7 @@ const ( // UpdateTypeLoggingUpdate is a UpdateType enum value UpdateTypeLoggingUpdate = "LoggingUpdate" + + // UpdateTypeConfigUpdate is a UpdateType enum value + UpdateTypeConfigUpdate = "ConfigUpdate" ) diff --git a/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go b/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go index 6fd3dd1d8c5a..49418baec373 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go @@ -56,7 +56,8 @@ const ( // "ResourceNotFoundException". // // The specified resource could not be found. You can view your available clusters - // with ListClusters. Amazon EKS clusters are Region-specific. + // with ListClusters. You can view your available managed node groups with ListNodegroups. + // Amazon EKS clusters and node groups are Region-specific. ErrCodeResourceNotFoundException = "ResourceNotFoundException" // ErrCodeServerException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/eks/waiters.go b/vendor/github.com/aws/aws-sdk-go/service/eks/waiters.go index 022255cf053d..31d2071b2580 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/eks/waiters.go +++ b/vendor/github.com/aws/aws-sdk-go/service/eks/waiters.go @@ -120,3 +120,105 @@ func (c *EKS) WaitUntilClusterDeletedWithContext(ctx aws.Context, input *Describ return w.WaitWithContext(ctx) } + +// WaitUntilNodegroupActive uses the Amazon EKS API operation +// DescribeNodegroup to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +func (c *EKS) WaitUntilNodegroupActive(input *DescribeNodegroupInput) error { + return c.WaitUntilNodegroupActiveWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilNodegroupActiveWithContext is an extended version of WaitUntilNodegroupActive. +// With the support for passing in a context and options to configure the +// Waiter and the underlying request options. +// +// 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) WaitUntilNodegroupActiveWithContext(ctx aws.Context, input *DescribeNodegroupInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilNodegroupActive", + MaxAttempts: 80, + Delay: request.ConstantWaiterDelay(30 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.FailureWaiterState, + Matcher: request.PathWaiterMatch, Argument: "nodegroup.status", + Expected: "CREATE_FAILED", + }, + { + State: request.SuccessWaiterState, + Matcher: request.PathWaiterMatch, Argument: "nodegroup.status", + Expected: "ACTIVE", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *DescribeNodegroupInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeNodegroupRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} + +// WaitUntilNodegroupDeleted uses the Amazon EKS API operation +// DescribeNodegroup to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +func (c *EKS) WaitUntilNodegroupDeleted(input *DescribeNodegroupInput) error { + return c.WaitUntilNodegroupDeletedWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilNodegroupDeletedWithContext is an extended version of WaitUntilNodegroupDeleted. +// With the support for passing in a context and options to configure the +// Waiter and the underlying request options. +// +// 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) WaitUntilNodegroupDeletedWithContext(ctx aws.Context, input *DescribeNodegroupInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilNodegroupDeleted", + MaxAttempts: 40, + Delay: request.ConstantWaiterDelay(30 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.FailureWaiterState, + Matcher: request.PathWaiterMatch, Argument: "nodegroup.status", + Expected: "DELETE_FAILED", + }, + { + State: request.SuccessWaiterState, + Matcher: request.ErrorWaiterMatch, + Expected: "ResourceNotFoundException", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *DescribeNodegroupInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeNodegroupRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go index 72ed9cd050b1..1a3207f85b91 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go @@ -6524,7 +6524,7 @@ type LoadBalancerAttribute struct { // // * routing.http.drop_invalid_header_fields.enabled - Indicates whether // HTTP headers with invalid header fields are removed by the load balancer - // (true) or routed to targets (false). The default is true. + // (true) or routed to targets (false). The default is false. // // * routing.http2.enabled - Indicates whether HTTP/2 is enabled. The value // is true or false. The default is true. diff --git a/vendor/github.com/aws/aws-sdk-go/service/emr/api.go b/vendor/github.com/aws/aws-sdk-go/service/emr/api.go index d966767a739f..0cdbb18587a0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/emr/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/emr/api.go @@ -1963,7 +1963,8 @@ func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, out // ListSteps API operation for Amazon Elastic MapReduce. // // Provides a list of steps for the cluster in reverse order unless you specify -// stepIds with the request. +// stepIds with the request of filter by StepStates. You can specify a maximum +// of ten stepIDs. // // 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 @@ -2799,14 +2800,15 @@ func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req // SetVisibleToAllUsers API operation for Amazon Elastic MapReduce. // -// This member will be deprecated. -// -// Sets whether all AWS Identity and Access Management (IAM) users under your -// account can access the specified clusters (job flows). This action works -// on running clusters. You can also set the visibility of a cluster when you -// launch it using the VisibleToAllUsers parameter of RunJobFlow. The SetVisibleToAllUsers -// action can be called only by an IAM user who created the cluster or the AWS -// account that owns the cluster. +// Sets the Cluster$VisibleToAllUsers value, which determines whether the cluster +// is visible to all IAM users of the AWS account associated with the cluster. +// Only the IAM user who created the cluster or the AWS account root user can +// call this action. The default value, true, indicates that all IAM users in +// the AWS account can perform cluster actions if they have the proper IAM policy +// permissions. If set to false, only the IAM user that created the cluster +// can perform actions. This action works on running clusters. You can override +// the default true setting when you create a cluster by using the VisibleToAllUsers +// parameter with RunJobFlow. // // 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 @@ -2992,6 +2994,9 @@ func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddIns type AddInstanceFleetOutput struct { _ struct{} `type:"structure"` + // The Amazon Resource Name of the cluster. + ClusterArn *string `min:"20" type:"string"` + // The unique identifier of the cluster. ClusterId *string `type:"string"` @@ -3009,6 +3014,12 @@ func (s AddInstanceFleetOutput) GoString() string { return s.String() } +// SetClusterArn sets the ClusterArn field's value. +func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput { + s.ClusterArn = &v + return s +} + // SetClusterId sets the ClusterId field's value. func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput { s.ClusterId = &v @@ -3088,6 +3099,9 @@ func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput type AddInstanceGroupsOutput struct { _ struct{} `type:"structure"` + // The Amazon Resource Name of the cluster. + ClusterArn *string `min:"20" type:"string"` + // Instance group IDs of the newly created instance groups. InstanceGroupIds []*string `type:"list"` @@ -3105,6 +3119,12 @@ func (s AddInstanceGroupsOutput) GoString() string { return s.String() } +// SetClusterArn sets the ClusterArn field's value. +func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput { + s.ClusterArn = &v + return s +} + // SetInstanceGroupIds sets the InstanceGroupIds field's value. func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput { s.InstanceGroupIds = v @@ -3839,8 +3859,8 @@ type CloudWatchAlarmDefinition struct { // A CloudWatch metric dimension. Dimensions []*MetricDimension `type:"list"` - // The number of periods, expressed in seconds using Period, during which the - // alarm condition must exist before the alarm triggers automatic scaling activity. + // The number of periods, in five-minute increments, during which the alarm + // condition must exist before the alarm triggers automatic scaling activity. // The default value is 1. EvaluationPeriods *int64 `type:"integer"` @@ -3975,6 +3995,9 @@ type Cluster struct { // Specifies whether the cluster should terminate after completing all steps. AutoTerminate *bool `type:"boolean"` + // The Amazon Resource Name of the cluster. + ClusterArn *string `min:"20" type:"string"` + // Applies only to Amazon EMR releases 4.x and later. The list of Configurations // supplied to the EMR cluster. Configurations []*Configuration `type:"list"` @@ -4080,14 +4103,14 @@ type Cluster struct { // of a cluster error. TerminationProtected *bool `type:"boolean"` - // This member will be deprecated. - // // Indicates whether the cluster is visible to all IAM users of the AWS account - // associated with the cluster. If this value is set to true, all IAM users - // of that AWS account can view and manage the cluster if they have the proper - // policy permissions set. If this value is false, only the IAM user that created - // the cluster can view and manage it. This value can be changed using the SetVisibleToAllUsers - // action. + // associated with the cluster. The default value, true, indicates that all + // IAM users in the AWS account can perform cluster actions if they have the + // proper IAM policy permissions. If this value is false, only the IAM user + // that created the cluster can perform actions. This value can be changed on + // a running cluster by using the SetVisibleToAllUsers action. You can override + // the default value of true when you create a cluster by using the VisibleToAllUsers + // parameter of the RunJobFlow action. VisibleToAllUsers *bool `type:"boolean"` } @@ -4119,6 +4142,12 @@ func (s *Cluster) SetAutoTerminate(v bool) *Cluster { return s } +// SetClusterArn sets the ClusterArn field's value. +func (s *Cluster) SetClusterArn(v string) *Cluster { + s.ClusterArn = &v + return s +} + // SetConfigurations sets the Configurations field's value. func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster { s.Configurations = v @@ -4331,6 +4360,9 @@ func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus { type ClusterSummary struct { _ struct{} `type:"structure"` + // The Amazon Resource Name of the cluster. + ClusterArn *string `min:"20" type:"string"` + // The unique identifier for the cluster. Id *string `type:"string"` @@ -4359,6 +4391,12 @@ func (s ClusterSummary) GoString() string { return s.String() } +// SetClusterArn sets the ClusterArn field's value. +func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary { + s.ClusterArn = &v + return s +} + // SetId sets the Id field's value. func (s *ClusterSummary) SetId(v string) *ClusterSummary { s.Id = &v @@ -6180,12 +6218,9 @@ type InstanceGroup struct { // of a CloudWatch metric. See PutAutoScalingPolicy. AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"` - // The maximum Spot price your are willing to pay for EC2 instances. - // - // An optional, nullable field that applies if the MarketType for the instance - // group is specified as SPOT. Specify the maximum spot price in USD. If the - // value is NULL and SPOT is specified, the maximum Spot price is set equal - // to the On-Demand price. + // The bid price for each EC2 Spot instance type as defined by InstanceType. + // Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice + // is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%. BidPrice *string `type:"string"` // @@ -6367,12 +6402,9 @@ type InstanceGroupConfig struct { // of a CloudWatch metric. See PutAutoScalingPolicy. AutoScalingPolicy *AutoScalingPolicy `type:"structure"` - // The maximum Spot price your are willing to pay for EC2 instances. - // - // An optional, nullable field that applies if the MarketType for the instance - // group is specified as SPOT. Specify the maximum spot price in USD. If the - // value is NULL and SPOT is specified, the maximum Spot price is set equal - // to the On-Demand price. + // The bid price for each EC2 Spot instance type as defined by InstanceType. + // Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice + // is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%. BidPrice *string `type:"string"` // @@ -6509,11 +6541,9 @@ func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig { type InstanceGroupDetail struct { _ struct{} `type:"structure"` - // The maximum Spot price your are willing to pay for EC2 instances. - // - // An optional, nullable field that applies if the MarketType for the instance - // group is specified as SPOT. Specified in USD. If the value is NULL and SPOT - // is specified, the maximum Spot price is set equal to the On-Demand price. + // The bid price for each EC2 Spot instance type as defined by InstanceType. + // Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice + // is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%. BidPrice *string `type:"string"` // The date/time the instance group was created. @@ -7288,14 +7318,14 @@ type JobFlowDetail struct { // is empty. SupportedProducts []*string `type:"list"` - // This member will be deprecated. - // - // Specifies whether the cluster is visible to all IAM users of the AWS account - // associated with the cluster. If this value is set to true, all IAM users - // of that AWS account can view and (if they have the proper policy permissions - // set) manage the cluster. If it is set to false, only the IAM user that created - // the cluster can view and manage it. This value can be changed using the SetVisibleToAllUsers - // action. + // Indicates whether the cluster is visible to all IAM users of the AWS account + // associated with the cluster. The default value, true, indicates that all + // IAM users in the AWS account can perform cluster actions if they have the + // proper IAM policy permissions. If this value is false, only the IAM user + // that created the cluster can perform actions. This value can be changed on + // a running cluster by using the SetVisibleToAllUsers action. You can override + // the default value of true when you create a cluster by using the VisibleToAllUsers + // parameter of the RunJobFlow action. VisibleToAllUsers *bool `type:"boolean"` } @@ -8498,7 +8528,9 @@ type ListStepsInput struct { // The pagination token that indicates the next set of results to retrieve. Marker *string `type:"string"` - // The filter to limit the step list based on the identifier of the steps. + // The filter to limit the step list based on the identifier of the steps. You + // can specify a maximum of ten Step IDs. The character constraint applies to + // the overall length of the array. StepIds []*string `type:"list"` // The filter to limit the step list based on certain states. @@ -8931,6 +8963,9 @@ type PutAutoScalingPolicyOutput struct { // The automatic scaling policy definition. AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"` + // The Amazon Resource Name of the cluster. + ClusterArn *string `min:"20" type:"string"` + // Specifies the ID of a cluster. The instance group to which the automatic // scaling policy is applied is within this cluster. ClusterId *string `type:"string"` @@ -8955,6 +8990,12 @@ func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDe return s } +// SetClusterArn sets the ClusterArn field's value. +func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput { + s.ClusterArn = &v + return s +} + // SetClusterId sets the ClusterId field's value. func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput { s.ClusterId = &v @@ -9327,13 +9368,10 @@ type RunJobFlowInput struct { // A list of tags to associate with a cluster and propagate to Amazon EC2 instances. Tags []*Tag `type:"list"` - // This member will be deprecated. - // - // Whether the cluster is visible to all IAM users of the AWS account associated - // with the cluster. If this value is set to true, all IAM users of that AWS - // account can view and (if they have the proper policy permissions set) manage - // the cluster. If it is set to false, only the IAM user that created the cluster - // can view and manage it. + // A value of true indicates that all IAM users in the AWS account can perform + // cluster actions if they have the proper IAM policy permissions. This is the + // default. A value of false indicates that only the IAM user who created the + // cluster can perform actions. VisibleToAllUsers *bool `type:"boolean"` } @@ -9535,6 +9573,9 @@ func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput { type RunJobFlowOutput struct { _ struct{} `type:"structure"` + // The Amazon Resource Name of the cluster. + ClusterArn *string `min:"20" type:"string"` + // An unique identifier for the job flow. JobFlowId *string `type:"string"` } @@ -9549,6 +9590,12 @@ func (s RunJobFlowOutput) GoString() string { return s.String() } +// SetClusterArn sets the ClusterArn field's value. +func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput { + s.ClusterArn = &v + return s +} + // SetJobFlowId sets the JobFlowId field's value. func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput { s.JobFlowId = &v @@ -9958,24 +10005,19 @@ func (s SetTerminationProtectionOutput) GoString() string { return s.String() } -// This member will be deprecated. -// // The input to the SetVisibleToAllUsers action. type SetVisibleToAllUsersInput struct { _ struct{} `type:"structure"` - // Identifiers of the job flows to receive the new visibility setting. + // The unique identifier of the job flow (cluster). // // JobFlowIds is a required field JobFlowIds []*string `type:"list" required:"true"` - // This member will be deprecated. - // - // Whether the specified clusters are visible to all IAM users of the AWS account - // associated with the cluster. If this value is set to True, all IAM users - // of that AWS account can view and, if they have the proper IAM policy permissions - // set, manage the clusters. If it is set to False, only the IAM user that created - // a cluster can view and manage it. + // A value of true indicates that all IAM users in the AWS account can perform + // cluster actions if they have the proper IAM policy permissions. This is the + // default. A value of false indicates that only the IAM user who created the + // cluster can perform actions. // // VisibleToAllUsers is a required field VisibleToAllUsers *bool `type:"boolean" required:"true"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go index 0760c6ca0035..c7b6e72b7820 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go @@ -392,8 +392,11 @@ func (c *GuardDuty) CreateIPSetRequest(input *CreateIPSetInput) (req *request.Re // CreateIPSet API operation for Amazon GuardDuty. // -// Creates a new IPSet - a list of trusted IP addresses that have been whitelisted -// for secure communication with AWS infrastructure and applications. +// Creates a new IPSet, called Trusted IP list in the consoler user interface. +// An IPSet is a list IP addresses trusted for secure communication with AWS +// infrastructure and applications. GuardDuty does not generate findings for +// IP addresses included in IPSets. Only users from the master account can use +// this operation. // // 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 @@ -515,6 +518,89 @@ func (c *GuardDuty) CreateMembersWithContext(ctx aws.Context, input *CreateMembe return out, req.Send() } +const opCreatePublishingDestination = "CreatePublishingDestination" + +// CreatePublishingDestinationRequest generates a "aws/request.Request" representing the +// client's request for the CreatePublishingDestination 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 CreatePublishingDestination for more information on using the CreatePublishingDestination +// 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 CreatePublishingDestinationRequest method. +// req, resp := client.CreatePublishingDestinationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreatePublishingDestination +func (c *GuardDuty) CreatePublishingDestinationRequest(input *CreatePublishingDestinationInput) (req *request.Request, output *CreatePublishingDestinationOutput) { + op := &request.Operation{ + Name: opCreatePublishingDestination, + HTTPMethod: "POST", + HTTPPath: "/detector/{detectorId}/publishingDestination", + } + + if input == nil { + input = &CreatePublishingDestinationInput{} + } + + output = &CreatePublishingDestinationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreatePublishingDestination API operation for Amazon GuardDuty. +// +// Creates a publishing destination to send findings to. The resource to send +// findings to must exist before you use this operation. +// +// 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 GuardDuty's +// API operation CreatePublishingDestination for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// Bad request exception object. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// Internal server error exception object. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreatePublishingDestination +func (c *GuardDuty) CreatePublishingDestination(input *CreatePublishingDestinationInput) (*CreatePublishingDestinationOutput, error) { + req, out := c.CreatePublishingDestinationRequest(input) + return out, req.Send() +} + +// CreatePublishingDestinationWithContext is the same as CreatePublishingDestination with the addition of +// the ability to pass a context and additional request options. +// +// See CreatePublishingDestination 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 *GuardDuty) CreatePublishingDestinationWithContext(ctx aws.Context, input *CreatePublishingDestinationInput, opts ...request.Option) (*CreatePublishingDestinationOutput, error) { + req, out := c.CreatePublishingDestinationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateSampleFindings = "CreateSampleFindings" // CreateSampleFindingsRequest generates a "aws/request.Request" representing the @@ -645,7 +731,8 @@ func (c *GuardDuty) CreateThreatIntelSetRequest(input *CreateThreatIntelSetInput // CreateThreatIntelSet API operation for Amazon GuardDuty. // // Create a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP -// addresses. GuardDuty generates findings based on ThreatIntelSets. +// addresses. GuardDuty generates findings based on ThreatIntelSets. Only users +// of the master account can use this operation. // // 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 @@ -977,7 +1064,8 @@ func (c *GuardDuty) DeleteIPSetRequest(input *DeleteIPSetInput) (req *request.Re // DeleteIPSet API operation for Amazon GuardDuty. // -// Deletes the IPSet specified by the IPSet ID. +// Deletes the IPSet specified by the ipSetId. IPSets are called Trusted IP +// lists in the console user interface. // // 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 @@ -1181,6 +1269,89 @@ func (c *GuardDuty) DeleteMembersWithContext(ctx aws.Context, input *DeleteMembe return out, req.Send() } +const opDeletePublishingDestination = "DeletePublishingDestination" + +// DeletePublishingDestinationRequest generates a "aws/request.Request" representing the +// client's request for the DeletePublishingDestination 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 DeletePublishingDestination for more information on using the DeletePublishingDestination +// 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 DeletePublishingDestinationRequest method. +// req, resp := client.DeletePublishingDestinationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeletePublishingDestination +func (c *GuardDuty) DeletePublishingDestinationRequest(input *DeletePublishingDestinationInput) (req *request.Request, output *DeletePublishingDestinationOutput) { + op := &request.Operation{ + Name: opDeletePublishingDestination, + HTTPMethod: "DELETE", + HTTPPath: "/detector/{detectorId}/publishingDestination/{destinationId}", + } + + if input == nil { + input = &DeletePublishingDestinationInput{} + } + + output = &DeletePublishingDestinationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeletePublishingDestination API operation for Amazon GuardDuty. +// +// Deletes the publishing definition with the specified destinationId. +// +// 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 GuardDuty's +// API operation DeletePublishingDestination for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// Bad request exception object. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// Internal server error exception object. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeletePublishingDestination +func (c *GuardDuty) DeletePublishingDestination(input *DeletePublishingDestinationInput) (*DeletePublishingDestinationOutput, error) { + req, out := c.DeletePublishingDestinationRequest(input) + return out, req.Send() +} + +// DeletePublishingDestinationWithContext is the same as DeletePublishingDestination with the addition of +// the ability to pass a context and additional request options. +// +// See DeletePublishingDestination 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 *GuardDuty) DeletePublishingDestinationWithContext(ctx aws.Context, input *DeletePublishingDestinationInput, opts ...request.Option) (*DeletePublishingDestinationOutput, error) { + req, out := c.DeletePublishingDestinationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteThreatIntelSet = "DeleteThreatIntelSet" // DeleteThreatIntelSetRequest generates a "aws/request.Request" representing the @@ -1264,6 +1435,89 @@ func (c *GuardDuty) DeleteThreatIntelSetWithContext(ctx aws.Context, input *Dele return out, req.Send() } +const opDescribePublishingDestination = "DescribePublishingDestination" + +// DescribePublishingDestinationRequest generates a "aws/request.Request" representing the +// client's request for the DescribePublishingDestination 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 DescribePublishingDestination for more information on using the DescribePublishingDestination +// 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 DescribePublishingDestinationRequest method. +// req, resp := client.DescribePublishingDestinationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DescribePublishingDestination +func (c *GuardDuty) DescribePublishingDestinationRequest(input *DescribePublishingDestinationInput) (req *request.Request, output *DescribePublishingDestinationOutput) { + op := &request.Operation{ + Name: opDescribePublishingDestination, + HTTPMethod: "GET", + HTTPPath: "/detector/{detectorId}/publishingDestination/{destinationId}", + } + + if input == nil { + input = &DescribePublishingDestinationInput{} + } + + output = &DescribePublishingDestinationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribePublishingDestination API operation for Amazon GuardDuty. +// +// Returns information about the publishing destination specified by the provided +// destinationId. +// +// 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 GuardDuty's +// API operation DescribePublishingDestination for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// Bad request exception object. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// Internal server error exception object. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DescribePublishingDestination +func (c *GuardDuty) DescribePublishingDestination(input *DescribePublishingDestinationInput) (*DescribePublishingDestinationOutput, error) { + req, out := c.DescribePublishingDestinationRequest(input) + return out, req.Send() +} + +// DescribePublishingDestinationWithContext is the same as DescribePublishingDestination with the addition of +// the ability to pass a context and additional request options. +// +// See DescribePublishingDestination 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 *GuardDuty) DescribePublishingDestinationWithContext(ctx aws.Context, input *DescribePublishingDestinationInput, opts ...request.Option) (*DescribePublishingDestinationOutput, error) { + req, out := c.DescribePublishingDestinationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisassociateFromMasterAccount = "DisassociateFromMasterAccount" // DisassociateFromMasterAccountRequest generates a "aws/request.Request" representing the @@ -1802,7 +2056,7 @@ func (c *GuardDuty) GetIPSetRequest(input *GetIPSetInput) (req *request.Request, // GetIPSet API operation for Amazon GuardDuty. // -// Retrieves the IPSet specified by the IPSet ID. +// Retrieves the IPSet specified by the ipSetId. // // 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 @@ -2726,7 +2980,9 @@ func (c *GuardDuty) ListIPSetsRequest(input *ListIPSetsInput) (req *request.Requ // ListIPSets API operation for Amazon GuardDuty. // -// Lists the IPSets of the GuardDuty service specified by the detector ID. +// Lists the IPSets of the GuardDuty service specified by the detector ID. If +// you use this operation from a member account, the IPSets returned are the +// IPSets from the associated master account. // // 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 @@ -3098,61 +3354,64 @@ func (c *GuardDuty) ListMembersPagesWithContext(ctx aws.Context, input *ListMemb return p.Err() } -const opListTagsForResource = "ListTagsForResource" +const opListPublishingDestinations = "ListPublishingDestinations" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// ListPublishingDestinationsRequest generates a "aws/request.Request" representing the +// client's request for the ListPublishingDestinations 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 ListTagsForResource for more information on using the ListTagsForResource +// See ListPublishingDestinations for more information on using the ListPublishingDestinations // 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 ListTagsForResourceRequest method. -// req, resp := client.ListTagsForResourceRequest(params) +// // Example sending a request using the ListPublishingDestinationsRequest method. +// req, resp := client.ListPublishingDestinationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListTagsForResource -func (c *GuardDuty) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListPublishingDestinations +func (c *GuardDuty) ListPublishingDestinationsRequest(input *ListPublishingDestinationsInput) (req *request.Request, output *ListPublishingDestinationsOutput) { op := &request.Operation{ - Name: opListTagsForResource, + Name: opListPublishingDestinations, HTTPMethod: "GET", - HTTPPath: "/tags/{resourceArn}", + HTTPPath: "/detector/{detectorId}/publishingDestination", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &ListTagsForResourceInput{} + input = &ListPublishingDestinationsInput{} } - output = &ListTagsForResourceOutput{} + output = &ListPublishingDestinationsOutput{} req = c.newRequest(op, input, output) return } -// ListTagsForResource API operation for Amazon GuardDuty. +// ListPublishingDestinations API operation for Amazon GuardDuty. // -// Lists tags for a resource. Tagging is currently supported for detectors, -// finding filters, IP sets, and Threat Intel sets, with a limit of 50 tags -// per resource. When invoked, this operation returns all assigned tags for -// a given resource.. +// Returns a list of publishing destinations associated with the specified dectectorId. // // 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 GuardDuty's -// API operation ListTagsForResource for usage and error information. +// API operation ListPublishingDestinations for usage and error information. // // Returned Error Codes: // * ErrCodeBadRequestException "BadRequestException" @@ -3161,68 +3420,205 @@ func (c *GuardDuty) ListTagsForResourceRequest(input *ListTagsForResourceInput) // * ErrCodeInternalServerErrorException "InternalServerErrorException" // Internal server error exception object. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListTagsForResource -func (c *GuardDuty) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListPublishingDestinations +func (c *GuardDuty) ListPublishingDestinations(input *ListPublishingDestinationsInput) (*ListPublishingDestinationsOutput, error) { + req, out := c.ListPublishingDestinationsRequest(input) return out, req.Send() } -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// ListPublishingDestinationsWithContext is the same as ListPublishingDestinations with the addition of // the ability to pass a context and additional request options. // -// See ListTagsForResource for details on how to use this API operation. +// See ListPublishingDestinations 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 *GuardDuty) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +func (c *GuardDuty) ListPublishingDestinationsWithContext(ctx aws.Context, input *ListPublishingDestinationsInput, opts ...request.Option) (*ListPublishingDestinationsOutput, error) { + req, out := c.ListPublishingDestinationsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListThreatIntelSets = "ListThreatIntelSets" - -// ListThreatIntelSetsRequest generates a "aws/request.Request" representing the -// client's request for the ListThreatIntelSets 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 ListThreatIntelSets for more information on using the ListThreatIntelSets -// 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. +// ListPublishingDestinationsPages iterates over the pages of a ListPublishingDestinations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. // +// See ListPublishingDestinations method for more information on how to use this operation. // -// // Example sending a request using the ListThreatIntelSetsRequest method. -// req, resp := client.ListThreatIntelSetsRequest(params) +// Note: This operation can generate multiple requests to a service. // -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } +// // Example iterating over at most 3 pages of a ListPublishingDestinations operation. +// pageNum := 0 +// err := client.ListPublishingDestinationsPages(params, +// func(page *guardduty.ListPublishingDestinationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) // -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListThreatIntelSets -func (c *GuardDuty) ListThreatIntelSetsRequest(input *ListThreatIntelSetsInput) (req *request.Request, output *ListThreatIntelSetsOutput) { - op := &request.Operation{ - Name: opListThreatIntelSets, - HTTPMethod: "GET", - HTTPPath: "/detector/{detectorId}/threatintelset", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } +func (c *GuardDuty) ListPublishingDestinationsPages(input *ListPublishingDestinationsInput, fn func(*ListPublishingDestinationsOutput, bool) bool) error { + return c.ListPublishingDestinationsPagesWithContext(aws.BackgroundContext(), input, fn) +} - if input == nil { +// ListPublishingDestinationsPagesWithContext same as ListPublishingDestinationsPages except +// it takes a Context and allows setting request options on the pages. +// +// 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 *GuardDuty) ListPublishingDestinationsPagesWithContext(ctx aws.Context, input *ListPublishingDestinationsInput, fn func(*ListPublishingDestinationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListPublishingDestinationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListPublishingDestinationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListPublishingDestinationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource 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 ListTagsForResource for more information on using the ListTagsForResource +// 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 ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListTagsForResource +func (c *GuardDuty) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon GuardDuty. +// +// Lists tags for a resource. Tagging is currently supported for detectors, +// finding filters, IP sets, and Threat Intel sets, with a limit of 50 tags +// per resource. When invoked, this operation returns all assigned tags for +// a given resource.. +// +// 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 GuardDuty's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// Bad request exception object. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// Internal server error exception object. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListTagsForResource +func (c *GuardDuty) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource 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 *GuardDuty) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListThreatIntelSets = "ListThreatIntelSets" + +// ListThreatIntelSetsRequest generates a "aws/request.Request" representing the +// client's request for the ListThreatIntelSets 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 ListThreatIntelSets for more information on using the ListThreatIntelSets +// 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 ListThreatIntelSetsRequest method. +// req, resp := client.ListThreatIntelSetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListThreatIntelSets +func (c *GuardDuty) ListThreatIntelSetsRequest(input *ListThreatIntelSetsInput) (req *request.Request, output *ListThreatIntelSetsOutput) { + op := &request.Operation{ + Name: opListThreatIntelSets, + HTTPMethod: "GET", + HTTPPath: "/detector/{detectorId}/threatintelset", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { input = &ListThreatIntelSetsInput{} } @@ -3234,7 +3630,8 @@ func (c *GuardDuty) ListThreatIntelSetsRequest(input *ListThreatIntelSetsInput) // ListThreatIntelSets API operation for Amazon GuardDuty. // // Lists the ThreatIntelSets of the GuardDuty service specified by the detector -// ID. +// ID. If you use this operation from a member account, the ThreatIntelSets +// associated with the master account are returned. // // 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 @@ -3368,9 +3765,9 @@ func (c *GuardDuty) StartMonitoringMembersRequest(input *StartMonitoringMembersI // StartMonitoringMembers API operation for Amazon GuardDuty. // -// Re-enables GuardDuty to monitor findings of the member accounts specified -// by the account IDs. A master GuardDuty account can run this command after -// disabling GuardDuty from monitoring these members' findings by running StopMonitoringMembers. +// Turns on GuardDuty monitoring of the specified member accounts. Use this +// operation to restart monitoring of accounts that you stopped monitoring with +// the StopMonitoringMembers operation. // // 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 @@ -3452,10 +3849,8 @@ func (c *GuardDuty) StopMonitoringMembersRequest(input *StopMonitoringMembersInp // StopMonitoringMembers API operation for Amazon GuardDuty. // -// Disables GuardDuty from monitoring findings of the member accounts specified -// by the account IDs. After running this command, a master GuardDuty account -// can run StartMonitoringMembers to re-enable GuardDuty to monitor these members’ -// findings. +// Stops GuardDuty monitoring for the specified member accounnts. Use the StartMonitoringMembers +// to restart monitoring for those accounts. // // 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 @@ -3621,7 +4016,7 @@ func (c *GuardDuty) UnarchiveFindingsRequest(input *UnarchiveFindingsInput) (req // UnarchiveFindings API operation for Amazon GuardDuty. // -// Unarchives Amazon GuardDuty findings specified by the list of finding IDs. +// Unarchives GuardDuty findings specified by the findingIds. // // 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 @@ -3787,7 +4182,7 @@ func (c *GuardDuty) UpdateDetectorRequest(input *UpdateDetectorInput) (req *requ // UpdateDetector API operation for Amazon GuardDuty. // -// Updates an Amazon GuardDuty detector specified by the detectorId. +// Updates the Amazon GuardDuty detector specified by the detectorId. // // 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 @@ -3952,7 +4347,7 @@ func (c *GuardDuty) UpdateFindingsFeedbackRequest(input *UpdateFindingsFeedbackI // UpdateFindingsFeedback API operation for Amazon GuardDuty. // -// Marks specified Amazon GuardDuty findings as useful or not useful. +// Marks the specified GuardDuty findings as useful or not useful. // // 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 @@ -4073,6 +4468,89 @@ func (c *GuardDuty) UpdateIPSetWithContext(ctx aws.Context, input *UpdateIPSetIn return out, req.Send() } +const opUpdatePublishingDestination = "UpdatePublishingDestination" + +// UpdatePublishingDestinationRequest generates a "aws/request.Request" representing the +// client's request for the UpdatePublishingDestination 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 UpdatePublishingDestination for more information on using the UpdatePublishingDestination +// 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 UpdatePublishingDestinationRequest method. +// req, resp := client.UpdatePublishingDestinationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdatePublishingDestination +func (c *GuardDuty) UpdatePublishingDestinationRequest(input *UpdatePublishingDestinationInput) (req *request.Request, output *UpdatePublishingDestinationOutput) { + op := &request.Operation{ + Name: opUpdatePublishingDestination, + HTTPMethod: "POST", + HTTPPath: "/detector/{detectorId}/publishingDestination/{destinationId}", + } + + if input == nil { + input = &UpdatePublishingDestinationInput{} + } + + output = &UpdatePublishingDestinationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdatePublishingDestination API operation for Amazon GuardDuty. +// +// Updates information about the publishing destination specified by the destinationId. +// +// 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 GuardDuty's +// API operation UpdatePublishingDestination for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// Bad request exception object. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// Internal server error exception object. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdatePublishingDestination +func (c *GuardDuty) UpdatePublishingDestination(input *UpdatePublishingDestinationInput) (*UpdatePublishingDestinationOutput, error) { + req, out := c.UpdatePublishingDestinationRequest(input) + return out, req.Send() +} + +// UpdatePublishingDestinationWithContext is the same as UpdatePublishingDestination with the addition of +// the ability to pass a context and additional request options. +// +// See UpdatePublishingDestination 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 *GuardDuty) UpdatePublishingDestinationWithContext(ctx aws.Context, input *UpdatePublishingDestinationInput, opts ...request.Option) (*UpdatePublishingDestinationOutput, error) { + req, out := c.UpdatePublishingDestinationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateThreatIntelSet = "UpdateThreatIntelSet" // UpdateThreatIntelSetRequest generates a "aws/request.Request" representing the @@ -4567,8 +5045,8 @@ func (s *City) SetCityName(v string) *City { type Condition struct { _ struct{} `type:"structure"` - // Deprecated. Represents the equal condition to be applied to a single field - // when querying for findings. + // Represents the equal condition to be applied to a single field when querying + // for findings. // // Deprecated: Eq has been deprecated Eq []*string `locationName:"eq" deprecated:"true" type:"list"` @@ -4585,14 +5063,14 @@ type Condition struct { // when querying for findings. GreaterThanOrEqual *int64 `locationName:"greaterThanOrEqual" type:"long"` - // Deprecated. Represents a greater than condition to be applied to a single - // field when querying for findings. + // Represents a greater than condition to be applied to a single field when + // querying for findings. // // Deprecated: Gt has been deprecated Gt *int64 `locationName:"gt" deprecated:"true" type:"integer"` - // Deprecated. Represents a greater than equal condition to be applied to a - // single field when querying for findings. + // Represents a greater than equal condition to be applied to a single field + // when querying for findings. // // Deprecated: Gte has been deprecated Gte *int64 `locationName:"gte" deprecated:"true" type:"integer"` @@ -4605,20 +5083,20 @@ type Condition struct { // querying for findings. LessThanOrEqual *int64 `locationName:"lessThanOrEqual" type:"long"` - // Deprecated. Represents a less than condition to be applied to a single field - // when querying for findings. + // Represents a less than condition to be applied to a single field when querying + // for findings. // // Deprecated: Lt has been deprecated Lt *int64 `locationName:"lt" deprecated:"true" type:"integer"` - // Deprecated. Represents a less than equal condition to be applied to a single - // field when querying for findings. + // Represents a less than equal condition to be applied to a single field when + // querying for findings. // // Deprecated: Lte has been deprecated Lte *int64 `locationName:"lte" deprecated:"true" type:"integer"` - // Deprecated. Represents the not equal condition to be applied to a single - // field when querying for findings. + // Represents the not equal condition to be applied to a single field when querying + // for findings. // // Deprecated: Neq has been deprecated Neq []*string `locationName:"neq" deprecated:"true" type:"list"` @@ -4710,7 +5188,8 @@ func (s *Condition) SetNotEquals(v []*string) *Condition { return s } -// Contains information about the country. +// Contains information about the country in which the remote IP address is +// located. type Country struct { _ struct{} `type:"structure"` @@ -5240,6 +5719,114 @@ func (s *CreateMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *C return s } +type CreatePublishingDestinationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token for the request. + ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` + + // Properties of the publishing destination, including the ARNs for the destination + // and the KMS key used for encryption. + // + // DestinationProperties is a required field + DestinationProperties *DestinationProperties `locationName:"destinationProperties" type:"structure" required:"true"` + + // The type of resource for the publishing destination. Currently only S3 is + // supported. + // + // DestinationType is a required field + DestinationType *string `locationName:"destinationType" min:"1" type:"string" required:"true" enum:"DestinationType"` + + // The ID of the GuardDuty detector associated with the publishing destination. + // + // DetectorId is a required field + DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreatePublishingDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreatePublishingDestinationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreatePublishingDestinationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreatePublishingDestinationInput"} + if s.DestinationProperties == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationProperties")) + } + if s.DestinationType == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationType")) + } + if s.DestinationType != nil && len(*s.DestinationType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DestinationType", 1)) + } + if s.DetectorId == nil { + invalidParams.Add(request.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreatePublishingDestinationInput) SetClientToken(v string) *CreatePublishingDestinationInput { + s.ClientToken = &v + return s +} + +// SetDestinationProperties sets the DestinationProperties field's value. +func (s *CreatePublishingDestinationInput) SetDestinationProperties(v *DestinationProperties) *CreatePublishingDestinationInput { + s.DestinationProperties = v + return s +} + +// SetDestinationType sets the DestinationType field's value. +func (s *CreatePublishingDestinationInput) SetDestinationType(v string) *CreatePublishingDestinationInput { + s.DestinationType = &v + return s +} + +// SetDetectorId sets the DetectorId field's value. +func (s *CreatePublishingDestinationInput) SetDetectorId(v string) *CreatePublishingDestinationInput { + s.DetectorId = &v + return s +} + +type CreatePublishingDestinationOutput struct { + _ struct{} `type:"structure"` + + // The ID of the publishing destination created. + // + // DestinationId is a required field + DestinationId *string `locationName:"destinationId" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreatePublishingDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreatePublishingDestinationOutput) GoString() string { + return s.String() +} + +// SetDestinationId sets the DestinationId field's value. +func (s *CreatePublishingDestinationOutput) SetDestinationId(v string) *CreatePublishingDestinationOutput { + s.DestinationId = &v + return s +} + type CreateSampleFindingsInput struct { _ struct{} `type:"structure"` @@ -5248,7 +5835,7 @@ type CreateSampleFindingsInput struct { // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // Types of sample findings that you want to generate. + // Types of sample findings to generate. FindingTypes []*string `locationName:"findingTypes" type:"list"` } @@ -5657,12 +6244,12 @@ func (s DeleteFilterOutput) GoString() string { type DeleteIPSetInput struct { _ struct{} `type:"structure"` - // The unique ID of the detector the ipSet is associated with. + // The unique ID of the detector associated with the IPSet. // // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // The unique ID of the ipSet you want to delete. + // The unique ID of the IPSet to delete. // // IpSetId is a required field IpSetId *string `location:"uri" locationName:"ipSetId" type:"string" required:"true"` @@ -5878,78 +6465,365 @@ func (s *DeleteMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *D return s } -type DeleteThreatIntelSetInput struct { +type DeletePublishingDestinationInput struct { + _ struct{} `type:"structure"` + + // The ID of the publishing destination to delete. + // + // DestinationId is a required field + DestinationId *string `location:"uri" locationName:"destinationId" type:"string" required:"true"` + + // The unique ID of the detector associated with the publishing destination + // to delete. + // + // DetectorId is a required field + DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeletePublishingDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeletePublishingDestinationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeletePublishingDestinationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeletePublishingDestinationInput"} + if s.DestinationId == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationId")) + } + if s.DestinationId != nil && len(*s.DestinationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1)) + } + if s.DetectorId == nil { + invalidParams.Add(request.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinationId sets the DestinationId field's value. +func (s *DeletePublishingDestinationInput) SetDestinationId(v string) *DeletePublishingDestinationInput { + s.DestinationId = &v + return s +} + +// SetDetectorId sets the DetectorId field's value. +func (s *DeletePublishingDestinationInput) SetDetectorId(v string) *DeletePublishingDestinationInput { + s.DetectorId = &v + return s +} + +type DeletePublishingDestinationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeletePublishingDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeletePublishingDestinationOutput) GoString() string { + return s.String() +} + +type DeleteThreatIntelSetInput struct { + _ struct{} `type:"structure"` + + // The unique ID of the detector the threatIntelSet is associated with. + // + // DetectorId is a required field + DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The unique ID of the threatIntelSet you want to delete. + // + // ThreatIntelSetId is a required field + ThreatIntelSetId *string `location:"uri" locationName:"threatIntelSetId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteThreatIntelSetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteThreatIntelSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteThreatIntelSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteThreatIntelSetInput"} + if s.DetectorId == nil { + invalidParams.Add(request.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) + } + if s.ThreatIntelSetId == nil { + invalidParams.Add(request.NewErrParamRequired("ThreatIntelSetId")) + } + if s.ThreatIntelSetId != nil && len(*s.ThreatIntelSetId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ThreatIntelSetId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDetectorId sets the DetectorId field's value. +func (s *DeleteThreatIntelSetInput) SetDetectorId(v string) *DeleteThreatIntelSetInput { + s.DetectorId = &v + return s +} + +// SetThreatIntelSetId sets the ThreatIntelSetId field's value. +func (s *DeleteThreatIntelSetInput) SetThreatIntelSetId(v string) *DeleteThreatIntelSetInput { + s.ThreatIntelSetId = &v + return s +} + +type DeleteThreatIntelSetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteThreatIntelSetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteThreatIntelSetOutput) GoString() string { + return s.String() +} + +type DescribePublishingDestinationInput struct { + _ struct{} `type:"structure"` + + // The ID of the publishing destination to retrieve. + // + // DestinationId is a required field + DestinationId *string `location:"uri" locationName:"destinationId" type:"string" required:"true"` + + // The unique ID of the detector associated with the publishing destination + // to retrieve. + // + // DetectorId is a required field + DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribePublishingDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribePublishingDestinationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribePublishingDestinationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribePublishingDestinationInput"} + if s.DestinationId == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationId")) + } + if s.DestinationId != nil && len(*s.DestinationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1)) + } + if s.DetectorId == nil { + invalidParams.Add(request.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinationId sets the DestinationId field's value. +func (s *DescribePublishingDestinationInput) SetDestinationId(v string) *DescribePublishingDestinationInput { + s.DestinationId = &v + return s +} + +// SetDetectorId sets the DetectorId field's value. +func (s *DescribePublishingDestinationInput) SetDetectorId(v string) *DescribePublishingDestinationInput { + s.DetectorId = &v + return s +} + +type DescribePublishingDestinationOutput struct { + _ struct{} `type:"structure"` + + // The ID of the publishing destination. + // + // DestinationId is a required field + DestinationId *string `locationName:"destinationId" type:"string" required:"true"` + + // A DestinationProperties object that includes the DestinationArn and KmsKeyArn + // of the publishing destination. + // + // DestinationProperties is a required field + DestinationProperties *DestinationProperties `locationName:"destinationProperties" type:"structure" required:"true"` + + // The type of the publishing destination. Currently, only S3 is supported. + // + // DestinationType is a required field + DestinationType *string `locationName:"destinationType" min:"1" type:"string" required:"true" enum:"DestinationType"` + + // The time, in epoch millisecond format, at which GuardDuty was first unable + // to publish findings to the destination. + // + // PublishingFailureStartTimestamp is a required field + PublishingFailureStartTimestamp *int64 `locationName:"publishingFailureStartTimestamp" type:"long" required:"true"` + + // The status of the publishing destination. + // + // Status is a required field + Status *string `locationName:"status" min:"1" type:"string" required:"true" enum:"PublishingStatus"` +} + +// String returns the string representation +func (s DescribePublishingDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribePublishingDestinationOutput) GoString() string { + return s.String() +} + +// SetDestinationId sets the DestinationId field's value. +func (s *DescribePublishingDestinationOutput) SetDestinationId(v string) *DescribePublishingDestinationOutput { + s.DestinationId = &v + return s +} + +// SetDestinationProperties sets the DestinationProperties field's value. +func (s *DescribePublishingDestinationOutput) SetDestinationProperties(v *DestinationProperties) *DescribePublishingDestinationOutput { + s.DestinationProperties = v + return s +} + +// SetDestinationType sets the DestinationType field's value. +func (s *DescribePublishingDestinationOutput) SetDestinationType(v string) *DescribePublishingDestinationOutput { + s.DestinationType = &v + return s +} + +// SetPublishingFailureStartTimestamp sets the PublishingFailureStartTimestamp field's value. +func (s *DescribePublishingDestinationOutput) SetPublishingFailureStartTimestamp(v int64) *DescribePublishingDestinationOutput { + s.PublishingFailureStartTimestamp = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DescribePublishingDestinationOutput) SetStatus(v string) *DescribePublishingDestinationOutput { + s.Status = &v + return s +} + +// Contains information about a publishing destination, including the ID, type, +// and status. +type Destination struct { _ struct{} `type:"structure"` - // The unique ID of the detector the threatIntelSet is associated with. + // The unique ID of the publishing destination. // - // DetectorId is a required field - DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` + // DestinationId is a required field + DestinationId *string `locationName:"destinationId" type:"string" required:"true"` - // The unique ID of the threatIntelSet you want to delete. + // The type of resource used for the publishing destination. Currently, only + // S3 is supported. // - // ThreatIntelSetId is a required field - ThreatIntelSetId *string `location:"uri" locationName:"threatIntelSetId" type:"string" required:"true"` + // DestinationType is a required field + DestinationType *string `locationName:"destinationType" min:"1" type:"string" required:"true" enum:"DestinationType"` + + // The status of the publishing destination. + // + // Status is a required field + Status *string `locationName:"status" min:"1" type:"string" required:"true" enum:"PublishingStatus"` } // String returns the string representation -func (s DeleteThreatIntelSetInput) String() string { +func (s Destination) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteThreatIntelSetInput) GoString() string { +func (s Destination) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteThreatIntelSetInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteThreatIntelSetInput"} - if s.DetectorId == nil { - invalidParams.Add(request.NewErrParamRequired("DetectorId")) - } - if s.DetectorId != nil && len(*s.DetectorId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) - } - if s.ThreatIntelSetId == nil { - invalidParams.Add(request.NewErrParamRequired("ThreatIntelSetId")) - } - if s.ThreatIntelSetId != nil && len(*s.ThreatIntelSetId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ThreatIntelSetId", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetDestinationId sets the DestinationId field's value. +func (s *Destination) SetDestinationId(v string) *Destination { + s.DestinationId = &v + return s } -// SetDetectorId sets the DetectorId field's value. -func (s *DeleteThreatIntelSetInput) SetDetectorId(v string) *DeleteThreatIntelSetInput { - s.DetectorId = &v +// SetDestinationType sets the DestinationType field's value. +func (s *Destination) SetDestinationType(v string) *Destination { + s.DestinationType = &v return s } -// SetThreatIntelSetId sets the ThreatIntelSetId field's value. -func (s *DeleteThreatIntelSetInput) SetThreatIntelSetId(v string) *DeleteThreatIntelSetInput { - s.ThreatIntelSetId = &v +// SetStatus sets the Status field's value. +func (s *Destination) SetStatus(v string) *Destination { + s.Status = &v return s } -type DeleteThreatIntelSetOutput struct { +// Contains the ARN of the resource to publish to, such as an S3 bucket, and +// the ARN of the KMS key to use to encrypt published findings. +type DestinationProperties struct { _ struct{} `type:"structure"` + + // The ARN of the resource to publish to. + DestinationArn *string `locationName:"destinationArn" type:"string"` + + // The ARN of the KMS key to use for encryption. + KmsKeyArn *string `locationName:"kmsKeyArn" type:"string"` } // String returns the string representation -func (s DeleteThreatIntelSetOutput) String() string { +func (s DestinationProperties) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteThreatIntelSetOutput) GoString() string { +func (s DestinationProperties) GoString() string { return s.String() } +// SetDestinationArn sets the DestinationArn field's value. +func (s *DestinationProperties) SetDestinationArn(v string) *DestinationProperties { + s.DestinationArn = &v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *DestinationProperties) SetKmsKeyArn(v string) *DestinationProperties { + s.KmsKeyArn = &v + return s +} + type DisassociateFromMasterAccountInput struct { _ struct{} `type:"structure"` @@ -6091,11 +6965,11 @@ func (s *DisassociateMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccou return s } -// Contains information about the DNS request. +// Contains information about the DNS_REQUEST action described in this finding. type DnsRequestAction struct { _ struct{} `type:"structure"` - // Domain information for the DNS request. + // Domain information for the API request. Domain *string `locationName:"domain" type:"string"` } @@ -6163,7 +7037,8 @@ func (s *Evidence) SetThreatIntelligenceDetails(v []*ThreatIntelligenceDetail) * return s } -// Contains information about the finding. +// Contains information about the finding, which is generated when abnormal +// or suspicious activity is detected. type Finding struct { _ struct{} `type:"structure"` @@ -6201,7 +7076,8 @@ type Finding struct { // Region is a required field Region *string `locationName:"region" type:"string" required:"true"` - // Contains information about the resource. + // Contains information about the AWS resource associated with the activity + // that prompted GuardDuty to generate a finding. // // Resource is a required field Resource *Resource `locationName:"resource" type:"structure" required:"true"` @@ -6211,7 +7087,7 @@ type Finding struct { // SchemaVersion is a required field SchemaVersion *string `locationName:"schemaVersion" type:"string" required:"true"` - // Contains information about the service. + // Contains additional information about the generated finding. Service *Service `locationName:"service" type:"structure"` // The severity of the finding. @@ -6333,7 +7209,7 @@ func (s *Finding) SetUpdatedAt(v string) *Finding { return s } -// Contains finding criteria information. +// Contains information about the criteria used for querying findings. type FindingCriteria struct { _ struct{} `type:"structure"` @@ -6382,7 +7258,7 @@ func (s *FindingStatistics) SetCountBySeverity(v map[string]*int64) *FindingStat return s } -// Contains information about the +// Contains information about the location of the remote IP address. type GeoLocation struct { _ struct{} `type:"structure"` @@ -6850,7 +7726,7 @@ type GetIPSetInput struct { // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // The unique ID of the ipSet you want to get. + // The unique ID of the IPSet to retrieve. // // IpSetId is a required field IpSetId *string `location:"uri" locationName:"ipSetId" type:"string" required:"true"` @@ -6913,9 +7789,7 @@ type GetIPSetOutput struct { // Location is a required field Location *string `locationName:"location" min:"1" type:"string" required:"true"` - // The user friendly name to identify the IPSet. This name is displayed in all - // findings that are triggered by activity that involves IP addresses included - // in this IPSet. + // The user friendly name for the IPSet. // // Name is a required field Name *string `locationName:"name" min:"1" type:"string" required:"true"` @@ -7294,7 +8168,7 @@ func (s *GetThreatIntelSetOutput) SetTags(v map[string]*string) *GetThreatIntelS return s } -// Contains information about the instance profile. +// Contains information about the EC2 instance profile. type IamInstanceProfile struct { _ struct{} `type:"structure"` @@ -7450,17 +8324,18 @@ func (s *InstanceDetails) SetTags(v []*Tag) *InstanceDetails { return s } -// Contains information about the invitation. +// Contains information about the invitation to become a member account. type Invitation struct { _ struct{} `type:"structure"` - // Inviter account ID + // The ID of the account from which the invitations was sent. AccountId *string `locationName:"accountId" min:"12" type:"string"` - // This value is used to validate the inviter account to the member account. + // The ID of the invitation. This value is used to validate the inviter account + // to the member account. InvitationId *string `locationName:"invitationId" type:"string"` - // Timestamp at which the invitation was sent + // Timestamp at which the invitation was sent. InvitedAt *string `locationName:"invitedAt" type:"string"` // The status of the relationship between the inviter and invitee accounts. @@ -7801,7 +8676,108 @@ type ListFindingsInput struct { // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // Represents the criteria used for querying findings. + // Represents the criteria used for querying findings. Valid values include: + // + // * JSON field name + // + // * accountId + // + // * region + // + // * confidence + // + // * id + // + // * resource.accessKeyDetails.accessKeyId + // + // * resource.accessKeyDetails.principalId + // + // * resource.accessKeyDetails.userName + // + // * resource.accessKeyDetails.userType + // + // * resource.instanceDetails.iamInstanceProfile.id + // + // * resource.instanceDetails.imageId + // + // * resource.instanceDetails.instanceId + // + // * resource.instanceDetails.networkInterfaces.ipv6Addresses + // + // * resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress + // + // * resource.instanceDetails.networkInterfaces.publicDnsName + // + // * resource.instanceDetails.networkInterfaces.publicIp + // + // * resource.instanceDetails.networkInterfaces.securityGroups.groupId + // + // * resource.instanceDetails.networkInterfaces.securityGroups.groupName + // + // * resource.instanceDetails.networkInterfaces.subnetId + // + // * resource.instanceDetails.networkInterfaces.vpcId + // + // * resource.instanceDetails.tags.key + // + // * resource.instanceDetails.tags.value + // + // * resource.resourceType + // + // * service.action.actionType + // + // * service.action.awsApiCallAction.api + // + // * service.action.awsApiCallAction.callerType + // + // * service.action.awsApiCallAction.remoteIpDetails.city.cityName + // + // * service.action.awsApiCallAction.remoteIpDetails.country.countryName + // + // * service.action.awsApiCallAction.remoteIpDetails.ipAddressV4 + // + // * service.action.awsApiCallAction.remoteIpDetails.organization.asn + // + // * service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg + // + // * service.action.awsApiCallAction.serviceName + // + // * service.action.dnsRequestAction.domain + // + // * service.action.networkConnectionAction.blocked + // + // * service.action.networkConnectionAction.connectionDirection + // + // * service.action.networkConnectionAction.localPortDetails.port + // + // * service.action.networkConnectionAction.protocol + // + // * service.action.networkConnectionAction.remoteIpDetails.city.cityName + // + // * service.action.networkConnectionAction.remoteIpDetails.country.countryName + // + // * service.action.networkConnectionAction.remoteIpDetails.ipAddressV4 + // + // * service.action.networkConnectionAction.remoteIpDetails.organization.asn + // + // * service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg + // + // * service.action.networkConnectionAction.remotePortDetails.port + // + // * service.additionalInfo.threatListName + // + // * service.archived When this attribute is set to 'true', only archived + // findings are listed. When it's set to 'false', only unarchived findings + // are listed. When this attribute is not set, all existing findings are + // listed. + // + // * service.resourceRole + // + // * severity + // + // * type + // + // * updatedAt Type: Timestamp in Unix Epoch millisecond format: 1486685375000 FindingCriteria *FindingCriteria `locationName:"findingCriteria" type:"structure"` // You can use this parameter to indicate the maximum number of items you want @@ -8204,6 +9180,109 @@ func (s *ListMembersOutput) SetNextToken(v string) *ListMembersOutput { return s } +type ListPublishingDestinationsInput struct { + _ struct{} `type:"structure"` + + // The ID of the detector to retrieve publishing destinations for. + // + // DetectorId is a required field + DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` + + // The maximum number of results to return in the response. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // A token to use for paginating results returned in the repsonse. Set the value + // of this parameter to null for the first request to a list action. For subsequent + // calls, use the NextToken value returned from the previous request to continue + // listing results after the first page. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListPublishingDestinationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListPublishingDestinationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListPublishingDestinationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListPublishingDestinationsInput"} + if s.DetectorId == nil { + invalidParams.Add(request.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDetectorId sets the DetectorId field's value. +func (s *ListPublishingDestinationsInput) SetDetectorId(v string) *ListPublishingDestinationsInput { + s.DetectorId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListPublishingDestinationsInput) SetMaxResults(v int64) *ListPublishingDestinationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPublishingDestinationsInput) SetNextToken(v string) *ListPublishingDestinationsInput { + s.NextToken = &v + return s +} + +type ListPublishingDestinationsOutput struct { + _ struct{} `type:"structure"` + + // A Destinations obect that includes information about each publishing destination + // returned. + // + // Destinations is a required field + Destinations []*Destination `locationName:"destinations" type:"list" required:"true"` + + // A token to use for paginating results returned in the repsonse. Set the value + // of this parameter to null for the first request to a list action. For subsequent + // calls, use the NextToken value returned from the previous request to continue + // listing results after the first page. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListPublishingDestinationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListPublishingDestinationsOutput) GoString() string { + return s.String() +} + +// SetDestinations sets the Destinations field's value. +func (s *ListPublishingDestinationsOutput) SetDestinations(v []*Destination) *ListPublishingDestinationsOutput { + s.Destinations = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPublishingDestinationsOutput) SetNextToken(v string) *ListPublishingDestinationsOutput { + s.NextToken = &v + return s +} + type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -8280,10 +9359,10 @@ type ListThreatIntelSetsInput struct { // in the response. The default value is 50. The maximum value is 50. MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` - // You can use this parameter when paginating results. Set the value of this - // parameter to null on your first call to the list action. For subsequent calls - // to the action fill nextToken in the request with the value of NextToken from - // the previous response to continue listing data. + // You can use this parameter to paginate results in the response. Set the value + // of this parameter to null on your first call to the list action. For subsequent + // calls to the action fill nextToken in the request with the value of NextToken + // from the previous response to continue listing data. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } @@ -8541,7 +9620,8 @@ func (s *Member) SetUpdatedAt(v string) *Member { return s } -// Contains information about the network connection. +// Contains information about the NETWORK_CONNECTION action described in the +// finding. type NetworkConnectionAction struct { _ struct{} `type:"structure"` @@ -8610,7 +9690,7 @@ func (s *NetworkConnectionAction) SetRemotePortDetails(v *RemotePortDetails) *Ne return s } -// Contains information about the network interface. +// Contains information about the network interface of the Ec2 instance. type NetworkInterface struct { _ struct{} `type:"structure"` @@ -8715,7 +9795,7 @@ func (s *NetworkInterface) SetVpcId(v string) *NetworkInterface { return s } -// Continas information about the organization. +// Continas information about the ISP organization of the remote IP address. type Organization struct { _ struct{} `type:"structure"` @@ -8766,7 +9846,7 @@ func (s *Organization) SetOrg(v string) *Organization { return s } -// Contains information about the port probe. +// Contains information about the PORT_PROBE action described in the finding. type PortProbeAction struct { _ struct{} `type:"structure"` @@ -8832,7 +9912,7 @@ func (s *PortProbeDetail) SetRemoteIpDetails(v *RemoteIpDetails) *PortProbeDetai return s } -// Contains information about the private IP address. +// Contains other private IP address information of the EC2 instance. type PrivateIpAddressDetails struct { _ struct{} `type:"structure"` @@ -8865,7 +9945,7 @@ func (s *PrivateIpAddressDetails) SetPrivateIpAddress(v string) *PrivateIpAddres return s } -// Contains information about the product code. +// Contains information about the product code for the Ec2 instance. type ProductCode struct { _ struct{} `type:"structure"` @@ -8898,7 +9978,7 @@ func (s *ProductCode) SetProductType(v string) *ProductCode { return s } -// Continas information about the remote IP address. +// Continas information about the remote IP address of the connection. type RemoteIpDetails struct { _ struct{} `type:"structure"` @@ -8991,7 +10071,8 @@ func (s *RemotePortDetails) SetPortName(v string) *RemotePortDetails { return s } -// Contains information about the resource. +// Contains information about the AWS resource associated with the activity +// that prompted GuardDuty to generate a finding. type Resource struct { _ struct{} `type:"structure"` @@ -9035,7 +10116,7 @@ func (s *Resource) SetResourceType(v string) *Resource { return s } -// Contains information about the security group. +// Contains information about the security groups associated with the EC2 instance. type SecurityGroup struct { _ struct{} `type:"structure"` @@ -9068,7 +10149,7 @@ func (s *SecurityGroup) SetGroupName(v string) *SecurityGroup { return s } -// Contains information about the service. +// Contains additional information about the generated finding. type Service struct { _ struct{} `type:"structure"` @@ -9175,7 +10256,7 @@ func (s *Service) SetUserFeedback(v string) *Service { return s } -// Contains information about the criteria for sorting. +// Contains information about the criteria used for sorting findings. type SortCriteria struct { _ struct{} `type:"structure"` @@ -9212,14 +10293,13 @@ func (s *SortCriteria) SetOrderBy(v string) *SortCriteria { type StartMonitoringMembersInput struct { _ struct{} `type:"structure"` - // A list of account IDs of the GuardDuty member accounts whose findings you - // want the master account to monitor. + // A list of account IDs of the GuardDuty member accounts to start monitoring. // // AccountIds is a required field AccountIds []*string `locationName:"accountIds" min:"1" type:"list" required:"true"` - // The unique ID of the detector of the GuardDuty account whom you want to re-enable - // to monitor members' findings. + // The unique ID of the detector of the GuardDuty master account associated + // with the member accounts to monitor. // // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` @@ -9381,7 +10461,7 @@ func (s *StopMonitoringMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAcc return s } -// Contains information about the tag associated with the resource. +// Contains information about a tag associated with the Ec2 instance. type Tag struct { _ struct{} `type:"structure"` @@ -9417,7 +10497,8 @@ func (s *Tag) SetValue(v string) *Tag { type TagResourceInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) for the given GuardDuty resource + // The Amazon Resource Name (ARN) for the GuardDuty resource to apply a tag + // to. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` @@ -9524,13 +10605,12 @@ func (s *ThreatIntelligenceDetail) SetThreatNames(v []*string) *ThreatIntelligen type UnarchiveFindingsInput struct { _ struct{} `type:"structure"` - // The ID of the detector that specifies the GuardDuty service whose findings - // you want to unarchive. + // The ID of the detector associated with the findings to unarchive. // // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // IDs of the findings that you want to unarchive. + // IDs of the findings to unarchive. // // FindingIds is a required field FindingIds []*string `locationName:"findingIds" type:"list" required:"true"` @@ -9631,12 +10711,12 @@ func (s *UnprocessedAccount) SetResult(v string) *UnprocessedAccount { type UntagResourceInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) for the given GuardDuty resource + // The Amazon Resource Name (ARN) for the resource to remove tags from. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` - // The tag keys to remove from a resource. + // The tag keys to remove from the resource. // // TagKeys is a required field TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"` @@ -9703,16 +10783,16 @@ func (s UntagResourceOutput) GoString() string { type UpdateDetectorInput struct { _ struct{} `type:"structure"` - // The unique ID of the detector that you want to update. + // The unique ID of the detector to update. // // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // Updated boolean value for the detector that specifies whether the detector - // is enabled. + // Specifies whether the detector is enabled or not enabled. Enable *bool `locationName:"enable" type:"boolean"` - // A enum value that specifies how frequently customer got Finding updates published. + // A enum value that specifies how frequently findings are exported, such as + // to CloudWatch Events. FindingPublishingFrequency *string `locationName:"findingPublishingFrequency" type:"string" enum:"FindingPublishingFrequency"` } @@ -9908,13 +10988,12 @@ type UpdateFindingsFeedbackInput struct { // Additional feedback about the GuardDuty findings. Comments *string `locationName:"comments" type:"string"` - // The ID of the detector that specifies the GuardDuty service whose findings - // you want to mark as useful or not useful. + // The ID of the detector associated with the findings to update feedback for. // // DetectorId is a required field DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` - // Valid values: USEFUL | NOT_USEFUL + // The feedback for the finding. // // Feedback is a required field Feedback *string `locationName:"feedback" type:"string" required:"true" enum:"Feedback"` @@ -10101,6 +11180,88 @@ func (s UpdateIPSetOutput) GoString() string { return s.String() } +type UpdatePublishingDestinationInput struct { + _ struct{} `type:"structure"` + + // The ID of the detector associated with the publishing destinations to update. + // + // DestinationId is a required field + DestinationId *string `location:"uri" locationName:"destinationId" type:"string" required:"true"` + + // A DestinationProperties object that includes the DestinationArn and KmsKeyArn + // of the publishing destination. + DestinationProperties *DestinationProperties `locationName:"destinationProperties" type:"structure"` + + // The ID of the + // + // DetectorId is a required field + DetectorId *string `location:"uri" locationName:"detectorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdatePublishingDestinationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdatePublishingDestinationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdatePublishingDestinationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdatePublishingDestinationInput"} + if s.DestinationId == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationId")) + } + if s.DestinationId != nil && len(*s.DestinationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1)) + } + if s.DetectorId == nil { + invalidParams.Add(request.NewErrParamRequired("DetectorId")) + } + if s.DetectorId != nil && len(*s.DetectorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinationId sets the DestinationId field's value. +func (s *UpdatePublishingDestinationInput) SetDestinationId(v string) *UpdatePublishingDestinationInput { + s.DestinationId = &v + return s +} + +// SetDestinationProperties sets the DestinationProperties field's value. +func (s *UpdatePublishingDestinationInput) SetDestinationProperties(v *DestinationProperties) *UpdatePublishingDestinationInput { + s.DestinationProperties = v + return s +} + +// SetDetectorId sets the DetectorId field's value. +func (s *UpdatePublishingDestinationInput) SetDetectorId(v string) *UpdatePublishingDestinationInput { + s.DetectorId = &v + return s +} + +type UpdatePublishingDestinationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdatePublishingDestinationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdatePublishingDestinationOutput) GoString() string { + return s.String() +} + type UpdateThreatIntelSetInput struct { _ struct{} `type:"structure"` @@ -10209,6 +11370,11 @@ func (s UpdateThreatIntelSetOutput) GoString() string { return s.String() } +const ( + // DestinationTypeS3 is a DestinationType enum value + DestinationTypeS3 = "S3" +) + const ( // DetectorStatusEnabled is a DetectorStatus enum value DetectorStatusEnabled = "ENABLED" @@ -10300,6 +11466,20 @@ const ( OrderByDesc = "DESC" ) +const ( + // PublishingStatusPendingVerification is a PublishingStatus enum value + PublishingStatusPendingVerification = "PENDING_VERIFICATION" + + // PublishingStatusPublishing is a PublishingStatus enum value + PublishingStatusPublishing = "PUBLISHING" + + // PublishingStatusUnableToPublishFixDestinationProperty is a PublishingStatus enum value + PublishingStatusUnableToPublishFixDestinationProperty = "UNABLE_TO_PUBLISH_FIX_DESTINATION_PROPERTY" + + // PublishingStatusStopped is a PublishingStatus enum value + PublishingStatusStopped = "STOPPED" +) + const ( // ThreatIntelSetFormatTxt is a ThreatIntelSetFormat enum value ThreatIntelSetFormatTxt = "TXT" diff --git a/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go b/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go index ab8eadf8ac29..52c439362652 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go @@ -3202,12 +3202,16 @@ type AudioDescription struct { // * EAC3, Eac3Settings * EAC3_ATMOS, Eac3AtmosSettings CodecSettings *AudioCodecSettings `locationName:"codecSettings" type:"structure"` - // Specify the language for this audio output track, using the ISO 639-2 or - // ISO 639-3 three-letter language code. The language specified will be used - // when 'Follow Input Language Code' is not selected or when 'Follow Input Language - // Code' is selected but there is no ISO 639 language code specified by the - // input. - CustomLanguageCode *string `locationName:"customLanguageCode" min:"3" type:"string"` + // Specify the language for this audio output track. The service puts this language + // code into your output audio track when you set Language code control (AudioLanguageCodeControl) + // to Use configured (USE_CONFIGURED). The service also uses your specified + // custom language code when you set Language code control (AudioLanguageCodeControl) + // to Follow input (FOLLOW_INPUT), but your input file doesn't specify a language + // code. For all outputs, you can use an ISO 639-2 or ISO 639-3 code. For streaming + // outputs, you can also use any other code in the full RFC-5646 specification. + // Streaming outputs are those that are in one of the following output groups: + // CMAF, DASH ISO, Apple HLS, or Microsoft Smooth Streaming. + CustomLanguageCode *string `locationName:"customLanguageCode" type:"string"` // Indicates the language of the audio output track. The ISO 639 language specified // in the 'Language Code' drop down will be used when 'Follow Input Language @@ -3215,10 +3219,12 @@ type AudioDescription struct { // there is no ISO 639 language code specified by the input. LanguageCode *string `locationName:"languageCode" type:"string" enum:"LanguageCode"` - // Choosing FOLLOW_INPUT will cause the ISO 639 language code of the output - // to follow the ISO 639 language code of the input. The language specified - // for languageCode' will be used when USE_CONFIGURED is selected or when FOLLOW_INPUT - // is selected but there is no ISO 639 language code specified by the input. + // Specify which source for language code takes precedence for this audio track. + // When you choose Follow input (FOLLOW_INPUT), the service uses the language + // code from the input track if it's present. If there's no languge code on + // the input track, the service uses the code that you specify in the setting + // Language code (languageCode or customLanguageCode). When you choose Use configured + // (USE_CONFIGURED), the service uses the language code that you specify. LanguageCodeControl *string `locationName:"languageCodeControl" type:"string" enum:"AudioLanguageCodeControl"` // Advanced audio remixing settings. @@ -3244,9 +3250,6 @@ func (s AudioDescription) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *AudioDescription) Validate() error { invalidParams := request.ErrInvalidParams{Context: "AudioDescription"} - if s.CustomLanguageCode != nil && len(*s.CustomLanguageCode) < 3 { - invalidParams.Add(request.NewErrParamMinLen("CustomLanguageCode", 3)) - } if s.AudioNormalizationSettings != nil { if err := s.AudioNormalizationSettings.Validate(); err != nil { invalidParams.AddNested("AudioNormalizationSettings", err.(request.ErrInvalidParams)) @@ -3943,13 +3946,16 @@ type CaptionDescription struct { // each input. CaptionSelectorName *string `locationName:"captionSelectorName" min:"1" type:"string"` - // Indicates the language of the caption output track, using the ISO 639-2 or - // ISO 639-3 three-letter language code. For most captions output formats, the - // encoder puts this language information in the output captions metadata. If - // your output captions format is DVB-Sub or Burn in, the encoder uses this - // language information to choose the font language for rendering the captions - // text. - CustomLanguageCode *string `locationName:"customLanguageCode" min:"3" type:"string"` + // Specify the language for this captions output track. For most captions output + // formats, the encoder puts this language information in the output captions + // metadata. If your output captions format is DVB-Sub or Burn in, the encoder + // uses this language information when automatically selecting the font script + // for rendering the captions text. For all outputs, you can use an ISO 639-2 + // or ISO 639-3 code. For streaming outputs, you can also use any other code + // in the full RFC-5646 specification. Streaming outputs are those that are + // in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft + // Smooth Streaming. + CustomLanguageCode *string `locationName:"customLanguageCode" type:"string"` // Specific settings required by destination type. Note that burnin_destination_settings // are not available if the source of the caption data is Embedded or Teletext. @@ -3986,9 +3992,6 @@ func (s *CaptionDescription) Validate() error { if s.CaptionSelectorName != nil && len(*s.CaptionSelectorName) < 1 { invalidParams.Add(request.NewErrParamMinLen("CaptionSelectorName", 1)) } - if s.CustomLanguageCode != nil && len(*s.CustomLanguageCode) < 3 { - invalidParams.Add(request.NewErrParamMinLen("CustomLanguageCode", 3)) - } if s.DestinationSettings != nil { if err := s.DestinationSettings.Validate(); err != nil { invalidParams.AddNested("DestinationSettings", err.(request.ErrInvalidParams)) @@ -4035,13 +4038,16 @@ func (s *CaptionDescription) SetLanguageDescription(v string) *CaptionDescriptio type CaptionDescriptionPreset struct { _ struct{} `type:"structure"` - // Indicates the language of the caption output track, using the ISO 639-2 or - // ISO 639-3 three-letter language code. For most captions output formats, the - // encoder puts this language information in the output captions metadata. If - // your output captions format is DVB-Sub or Burn in, the encoder uses this - // language information to choose the font language for rendering the captions - // text. - CustomLanguageCode *string `locationName:"customLanguageCode" min:"3" type:"string"` + // Specify the language for this captions output track. For most captions output + // formats, the encoder puts this language information in the output captions + // metadata. If your output captions format is DVB-Sub or Burn in, the encoder + // uses this language information when automatically selecting the font script + // for rendering the captions text. For all outputs, you can use an ISO 639-2 + // or ISO 639-3 code. For streaming outputs, you can also use any other code + // in the full RFC-5646 specification. Streaming outputs are those that are + // in one of the following output groups: CMAF, DASH ISO, Apple HLS, or Microsoft + // Smooth Streaming. + CustomLanguageCode *string `locationName:"customLanguageCode" type:"string"` // Specific settings required by destination type. Note that burnin_destination_settings // are not available if the source of the caption data is Embedded or Teletext. @@ -4075,9 +4081,6 @@ func (s CaptionDescriptionPreset) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CaptionDescriptionPreset) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CaptionDescriptionPreset"} - if s.CustomLanguageCode != nil && len(*s.CustomLanguageCode) < 3 { - invalidParams.Add(request.NewErrParamMinLen("CustomLanguageCode", 3)) - } if s.DestinationSettings != nil { if err := s.DestinationSettings.Validate(); err != nil { invalidParams.AddNested("DestinationSettings", err.(request.ErrInvalidParams)) @@ -4465,6 +4468,61 @@ func (s *ChannelMapping) SetOutputChannels(v []*OutputChannelMapping) *ChannelMa return s } +// Specify the details for each pair of HLS and DASH additional manifests that +// you want the service to generate for this CMAF output group. Each pair of +// manifests can reference a different subset of outputs in the group. +type CmafAdditionalManifest struct { + _ struct{} `type:"structure"` + + // Specify a name modifier that the service adds to the name of this manifest + // to make it different from the file names of the other main manifests in the + // output group. For example, say that the default main manifest for your HLS + // group is film-name.m3u8. If you enter "-no-premium" for this setting, then + // the file name the service generates for this top-level manifest is film-name-no-premium.m3u8. + // For HLS output groups, specify a manifestNameModifier that is different from + // the nameModifier of the output. The service uses the output name modifier + // to create unique names for the individual variant manifests. + ManifestNameModifier *string `locationName:"manifestNameModifier" min:"1" type:"string"` + + // Specify the outputs that you want this additional top-level manifest to reference. + SelectedOutputs []*string `locationName:"selectedOutputs" type:"list"` +} + +// String returns the string representation +func (s CmafAdditionalManifest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CmafAdditionalManifest) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CmafAdditionalManifest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CmafAdditionalManifest"} + if s.ManifestNameModifier != nil && len(*s.ManifestNameModifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ManifestNameModifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetManifestNameModifier sets the ManifestNameModifier field's value. +func (s *CmafAdditionalManifest) SetManifestNameModifier(v string) *CmafAdditionalManifest { + s.ManifestNameModifier = &v + return s +} + +// SetSelectedOutputs sets the SelectedOutputs field's value. +func (s *CmafAdditionalManifest) SetSelectedOutputs(v []*string) *CmafAdditionalManifest { + s.SelectedOutputs = v + return s +} + // Settings for CMAF encryption type CmafEncryptionSettings struct { _ struct{} `type:"structure"` @@ -4560,6 +4618,14 @@ func (s *CmafEncryptionSettings) SetType(v string) *CmafEncryptionSettings { type CmafGroupSettings struct { _ struct{} `type:"structure"` + // By default, the service creates one top-level .m3u8 HLS manifest and one + // top -level .mpd DASH manifest for each CMAF output group in your job. These + // default manifests reference every output in the output group. To create additional + // top-level manifests that reference a subset of the outputs in the output + // group, specify a list of them here. For each additional manifest that you + // specify, the service creates one HLS manifest and one DASH manifest. + AdditionalManifests []*CmafAdditionalManifest `locationName:"additionalManifests" type:"list"` + // A partial URI prefix that will be put in the manifest file at the top level // BaseURL element. Can be used if streams are delivered from a different URL // than the manifest file. @@ -4672,6 +4738,16 @@ func (s *CmafGroupSettings) Validate() error { if s.SegmentLength != nil && *s.SegmentLength < 1 { invalidParams.Add(request.NewErrParamMinValue("SegmentLength", 1)) } + if s.AdditionalManifests != nil { + for i, v := range s.AdditionalManifests { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalManifests", i), err.(request.ErrInvalidParams)) + } + } + } if s.Encryption != nil { if err := s.Encryption.Validate(); err != nil { invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams)) @@ -4684,6 +4760,12 @@ func (s *CmafGroupSettings) Validate() error { return nil } +// SetAdditionalManifests sets the AdditionalManifests field's value. +func (s *CmafGroupSettings) SetAdditionalManifests(v []*CmafAdditionalManifest) *CmafGroupSettings { + s.AdditionalManifests = v + return s +} + // SetBaseUrl sets the BaseUrl field's value. func (s *CmafGroupSettings) SetBaseUrl(v string) *CmafGroupSettings { s.BaseUrl = &v @@ -4924,6 +5006,9 @@ type ContainerSettings struct { // Settings for MP4 container. You can create audio-only AAC outputs with this // container. Mp4Settings *Mp4Settings `locationName:"mp4Settings" type:"structure"` + + // Settings for MP4 segments in DASH + MpdSettings *MpdSettings `locationName:"mpdSettings" type:"structure"` } // String returns the string representation @@ -4992,6 +5077,12 @@ func (s *ContainerSettings) SetMp4Settings(v *Mp4Settings) *ContainerSettings { return s } +// SetMpdSettings sets the MpdSettings field's value. +func (s *ContainerSettings) SetMpdSettings(v *MpdSettings) *ContainerSettings { + s.MpdSettings = v + return s +} + // Send your create job request with your job settings and IAM role. Optionally, // include user metadata and the ARN for the queue. type CreateJobInput struct { @@ -5607,6 +5698,58 @@ func (s *CreateQueueOutput) SetQueue(v *Queue) *CreateQueueOutput { return s } +// Specify the details for each additional DASH manifest that you want the service +// to generate for this output group. Each manifest can reference a different +// subset of outputs in the group. +type DashAdditionalManifest struct { + _ struct{} `type:"structure"` + + // Specify a name modifier that the service adds to the name of this manifest + // to make it different from the file names of the other main manifests in the + // output group. For example, say that the default main manifest for your DASH + // group is film-name.mpd. If you enter "-no-premium" for this setting, then + // the file name the service generates for this top-level manifest is film-name-no-premium.mpd. + ManifestNameModifier *string `locationName:"manifestNameModifier" min:"1" type:"string"` + + // Specify the outputs that you want this additional top-level manifest to reference. + SelectedOutputs []*string `locationName:"selectedOutputs" type:"list"` +} + +// String returns the string representation +func (s DashAdditionalManifest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DashAdditionalManifest) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DashAdditionalManifest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DashAdditionalManifest"} + if s.ManifestNameModifier != nil && len(*s.ManifestNameModifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ManifestNameModifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetManifestNameModifier sets the ManifestNameModifier field's value. +func (s *DashAdditionalManifest) SetManifestNameModifier(v string) *DashAdditionalManifest { + s.ManifestNameModifier = &v + return s +} + +// SetSelectedOutputs sets the SelectedOutputs field's value. +func (s *DashAdditionalManifest) SetSelectedOutputs(v []*string) *DashAdditionalManifest { + s.SelectedOutputs = v + return s +} + // Specifies DRM settings for DASH outputs. type DashIsoEncryptionSettings struct { _ struct{} `type:"structure"` @@ -5652,6 +5795,12 @@ func (s *DashIsoEncryptionSettings) SetSpekeKeyProvider(v *SpekeKeyProvider) *Da type DashIsoGroupSettings struct { _ struct{} `type:"structure"` + // By default, the service creates one .mpd DASH manifest for each DASH ISO + // output group in your job. This default manifest references every output in + // the output group. To create additional DASH manifests that reference a subset + // of the outputs in the output group, specify a list of them here. + AdditionalManifests []*DashAdditionalManifest `locationName:"additionalManifests" type:"list"` + // A partial URI prefix that will be put in the manifest (.mpd) file at the // top level BaseURL element. Can be used if streams are delivered from a different // URL than the manifest file. @@ -5735,6 +5884,16 @@ func (s *DashIsoGroupSettings) Validate() error { if s.SegmentLength != nil && *s.SegmentLength < 1 { invalidParams.Add(request.NewErrParamMinValue("SegmentLength", 1)) } + if s.AdditionalManifests != nil { + for i, v := range s.AdditionalManifests { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalManifests", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -5742,6 +5901,12 @@ func (s *DashIsoGroupSettings) Validate() error { return nil } +// SetAdditionalManifests sets the AdditionalManifests field's value. +func (s *DashIsoGroupSettings) SetAdditionalManifests(v []*DashAdditionalManifest) *DashIsoGroupSettings { + s.AdditionalManifests = v + return s +} + // SetBaseUrl sets the BaseUrl field's value. func (s *DashIsoGroupSettings) SetBaseUrl(v string) *DashIsoGroupSettings { s.BaseUrl = &v @@ -6205,6 +6370,88 @@ func (s DisassociateCertificateOutput) GoString() string { return s.String() } +// Settings for Dolby Vision +type DolbyVision struct { + _ struct{} `type:"structure"` + + // Use these settings when you set DolbyVisionLevel6Mode to SPECIFY to override + // the MaxCLL and MaxFALL values in your input with new values. + L6Metadata *DolbyVisionLevel6Metadata `locationName:"l6Metadata" type:"structure"` + + // Use Dolby Vision Mode to choose how the service will handle Dolby Vision + // MaxCLL and MaxFALL properies. + L6Mode *string `locationName:"l6Mode" type:"string" enum:"DolbyVisionLevel6Mode"` + + // In the current MediaConvert implementation, the Dolby Vision profile is always + // 5 (PROFILE_5). Therefore, all of your inputs must contain Dolby Vision frame + // interleaved data. + Profile *string `locationName:"profile" type:"string" enum:"DolbyVisionProfile"` +} + +// String returns the string representation +func (s DolbyVision) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DolbyVision) GoString() string { + return s.String() +} + +// SetL6Metadata sets the L6Metadata field's value. +func (s *DolbyVision) SetL6Metadata(v *DolbyVisionLevel6Metadata) *DolbyVision { + s.L6Metadata = v + return s +} + +// SetL6Mode sets the L6Mode field's value. +func (s *DolbyVision) SetL6Mode(v string) *DolbyVision { + s.L6Mode = &v + return s +} + +// SetProfile sets the Profile field's value. +func (s *DolbyVision) SetProfile(v string) *DolbyVision { + s.Profile = &v + return s +} + +// Use these settings when you set DolbyVisionLevel6Mode to SPECIFY to override +// the MaxCLL and MaxFALL values in your input with new values. +type DolbyVisionLevel6Metadata struct { + _ struct{} `type:"structure"` + + // Maximum Content Light Level. Static HDR metadata that corresponds to the + // brightest pixel in the entire stream. Measured in nits. + MaxCll *int64 `locationName:"maxCll" type:"integer"` + + // Maximum Frame-Average Light Level. Static HDR metadata that corresponds to + // the highest frame-average brightness in the entire stream. Measured in nits. + MaxFall *int64 `locationName:"maxFall" type:"integer"` +} + +// String returns the string representation +func (s DolbyVisionLevel6Metadata) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DolbyVisionLevel6Metadata) GoString() string { + return s.String() +} + +// SetMaxCll sets the MaxCll field's value. +func (s *DolbyVisionLevel6Metadata) SetMaxCll(v int64) *DolbyVisionLevel6Metadata { + s.MaxCll = &v + return s +} + +// SetMaxFall sets the MaxFall field's value. +func (s *DolbyVisionLevel6Metadata) SetMaxFall(v int64) *DolbyVisionLevel6Metadata { + s.MaxFall = &v + return s +} + // Inserts DVB Network Information Table (NIT) at the specified table repetition // interval. type DvbNitSettings struct { @@ -8674,14 +8921,15 @@ type H265Settings struct { UnregisteredSeiTimecode *string `locationName:"unregisteredSeiTimecode" type:"string" enum:"H265UnregisteredSeiTimecode"` // If the location of parameter set NAL units doesn't matter in your workflow, - // ignore this setting. Use this setting in your CMAF, DASH, or file MP4 output. - // For file MP4 outputs, choosing HVC1 can create video that doesn't work properly - // with some downstream systems and video players. Choose HVC1 to mark your - // output as HVC1. This makes your output compliant with the following specification: - // ISO IECJTC1 SC29 N13798 Text ISO/IEC FDIS 14496-15 3rd Edition. For these - // outputs, the service stores parameter set NAL units in the sample headers - // but not in the samples directly. The service defaults to marking your output - // as HEV1. For these outputs, the service writes parameter set NAL units directly + // ignore this setting. Use this setting only with CMAF or DASH outputs, or + // with standalone file outputs in an MPEG-4 container (MP4 outputs). Choose + // HVC1 to mark your output as HVC1. This makes your output compliant with the + // following specification: ISO IECJTC1 SC29 N13798 Text ISO/IEC FDIS 14496-15 + // 3rd Edition. For these outputs, the service stores parameter set NAL units + // in the sample headers but not in the samples directly. For MP4 outputs, when + // you choose HVC1, your output video might not work properly with some downstream + // systems and video players. The service defaults to marking your output as + // HEV1. For these outputs, the service writes parameter set NAL units directly // into the samples. WriteMp4PackagingType *string `locationName:"writeMp4PackagingType" type:"string" enum:"H265WriteMp4PackagingType"` } @@ -9118,6 +9366,61 @@ func (s *Hdr10Metadata) SetWhitePointY(v int64) *Hdr10Metadata { return s } +// Specify the details for each additional HLS manifest that you want the service +// to generate for this output group. Each manifest can reference a different +// subset of outputs in the group. +type HlsAdditionalManifest struct { + _ struct{} `type:"structure"` + + // Specify a name modifier that the service adds to the name of this manifest + // to make it different from the file names of the other main manifests in the + // output group. For example, say that the default main manifest for your HLS + // group is film-name.m3u8. If you enter "-no-premium" for this setting, then + // the file name the service generates for this top-level manifest is film-name-no-premium.m3u8. + // For HLS output groups, specify a manifestNameModifier that is different from + // the nameModifier of the output. The service uses the output name modifier + // to create unique names for the individual variant manifests. + ManifestNameModifier *string `locationName:"manifestNameModifier" min:"1" type:"string"` + + // Specify the outputs that you want this additional top-level manifest to reference. + SelectedOutputs []*string `locationName:"selectedOutputs" type:"list"` +} + +// String returns the string representation +func (s HlsAdditionalManifest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s HlsAdditionalManifest) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HlsAdditionalManifest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "HlsAdditionalManifest"} + if s.ManifestNameModifier != nil && len(*s.ManifestNameModifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ManifestNameModifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetManifestNameModifier sets the ManifestNameModifier field's value. +func (s *HlsAdditionalManifest) SetManifestNameModifier(v string) *HlsAdditionalManifest { + s.ManifestNameModifier = &v + return s +} + +// SetSelectedOutputs sets the SelectedOutputs field's value. +func (s *HlsAdditionalManifest) SetSelectedOutputs(v []*string) *HlsAdditionalManifest { + s.SelectedOutputs = v + return s +} + // Caption Language Mapping type HlsCaptionLanguageMapping struct { _ struct{} `type:"structure"` @@ -9125,7 +9428,7 @@ type HlsCaptionLanguageMapping struct { // Caption channel. CaptionChannel *int64 `locationName:"captionChannel" type:"integer"` - // Specify the language for this caption channel, using the ISO 639-2 or ISO + // Specify the language for this captions channel, using the ISO 639-2 or ISO // 639-3 three-letter language code CustomLanguageCode *string `locationName:"customLanguageCode" min:"3" type:"string"` @@ -9296,6 +9599,12 @@ type HlsGroupSettings struct { // themselves. AdMarkers []*string `locationName:"adMarkers" type:"list"` + // By default, the service creates one top-level .m3u8 HLS manifest for each + // HLS output group in your job. This default manifest references every output + // in the output group. To create additional top-level manifests that reference + // a subset of the outputs in the output group, specify a list of them here. + AdditionalManifests []*HlsAdditionalManifest `locationName:"additionalManifests" type:"list"` + // A partial URI prefix that will be prepended to each output in the media .m3u8 // file. Can be used if base manifest is delivered from a different URL than // the main .m3u8 file. @@ -9430,6 +9739,16 @@ func (s *HlsGroupSettings) Validate() error { if s.TimestampDeltaMilliseconds != nil && *s.TimestampDeltaMilliseconds < -2.147483648e+09 { invalidParams.Add(request.NewErrParamMinValue("TimestampDeltaMilliseconds", -2.147483648e+09)) } + if s.AdditionalManifests != nil { + for i, v := range s.AdditionalManifests { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalManifests", i), err.(request.ErrInvalidParams)) + } + } + } if s.CaptionLanguageMappings != nil { for i, v := range s.CaptionLanguageMappings { if v == nil { @@ -9458,6 +9777,12 @@ func (s *HlsGroupSettings) SetAdMarkers(v []*string) *HlsGroupSettings { return s } +// SetAdditionalManifests sets the AdditionalManifests field's value. +func (s *HlsGroupSettings) SetAdditionalManifests(v []*HlsAdditionalManifest) *HlsGroupSettings { + s.AdditionalManifests = v + return s +} + // SetBaseUrl sets the BaseUrl field's value. func (s *HlsGroupSettings) SetBaseUrl(v string) *HlsGroupSettings { s.BaseUrl = &v @@ -13047,6 +13372,59 @@ func (s *Mp4Settings) SetMp4MajorBrand(v string) *Mp4Settings { return s } +// Settings for MP4 segments in DASH +type MpdSettings struct { + _ struct{} `type:"structure"` + + // Use this setting only in DASH output groups that include sidecar TTML or + // IMSC captions. You specify sidecar captions in a separate output from your + // audio and video. Choose Raw (RAW) for captions in a single XML file in a + // raw container. Choose Fragmented MPEG-4 (FRAGMENTED_MP4) for captions in + // XML format contained within fragmented MP4 files. This set of fragmented + // MP4 files is separate from your video and audio fragmented MP4 files. + CaptionContainerType *string `locationName:"captionContainerType" type:"string" enum:"MpdCaptionContainerType"` + + // Use this setting only when you specify SCTE-35 markers from ESAM. Choose + // INSERT to put SCTE-35 markers in this output at the insertion points that + // you specify in an ESAM XML document. Provide the document in the setting + // SCC XML (sccXml). + Scte35Esam *string `locationName:"scte35Esam" type:"string" enum:"MpdScte35Esam"` + + // Ignore this setting unless you have SCTE-35 markers in your input video file. + // Choose Passthrough (PASSTHROUGH) if you want SCTE-35 markers that appear + // in your input to also appear in this output. Choose None (NONE) if you don't + // want those SCTE-35 markers in this output. + Scte35Source *string `locationName:"scte35Source" type:"string" enum:"MpdScte35Source"` +} + +// String returns the string representation +func (s MpdSettings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MpdSettings) GoString() string { + return s.String() +} + +// SetCaptionContainerType sets the CaptionContainerType field's value. +func (s *MpdSettings) SetCaptionContainerType(v string) *MpdSettings { + s.CaptionContainerType = &v + return s +} + +// SetScte35Esam sets the Scte35Esam field's value. +func (s *MpdSettings) SetScte35Esam(v string) *MpdSettings { + s.Scte35Esam = &v + return s +} + +// SetScte35Source sets the Scte35Source field's value. +func (s *MpdSettings) SetScte35Source(v string) *MpdSettings { + s.Scte35Source = &v + return s +} + // Required when you set (Codec) under (VideoDescription)>(CodecSettings) to // the value MPEG2. type Mpeg2Settings struct { @@ -13425,6 +13803,58 @@ func (s *Mpeg2Settings) SetTemporalAdaptiveQuantization(v string) *Mpeg2Settings return s } +// Specify the details for each additional Microsoft Smooth Streaming manifest +// that you want the service to generate for this output group. Each manifest +// can reference a different subset of outputs in the group. +type MsSmoothAdditionalManifest struct { + _ struct{} `type:"structure"` + + // Specify a name modifier that the service adds to the name of this manifest + // to make it different from the file names of the other main manifests in the + // output group. For example, say that the default main manifest for your Microsoft + // Smooth group is film-name.ismv. If you enter "-no-premium" for this setting, + // then the file name the service generates for this top-level manifest is film-name-no-premium.ismv. + ManifestNameModifier *string `locationName:"manifestNameModifier" min:"1" type:"string"` + + // Specify the outputs that you want this additional top-level manifest to reference. + SelectedOutputs []*string `locationName:"selectedOutputs" type:"list"` +} + +// String returns the string representation +func (s MsSmoothAdditionalManifest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MsSmoothAdditionalManifest) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MsSmoothAdditionalManifest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MsSmoothAdditionalManifest"} + if s.ManifestNameModifier != nil && len(*s.ManifestNameModifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ManifestNameModifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetManifestNameModifier sets the ManifestNameModifier field's value. +func (s *MsSmoothAdditionalManifest) SetManifestNameModifier(v string) *MsSmoothAdditionalManifest { + s.ManifestNameModifier = &v + return s +} + +// SetSelectedOutputs sets the SelectedOutputs field's value. +func (s *MsSmoothAdditionalManifest) SetSelectedOutputs(v []*string) *MsSmoothAdditionalManifest { + s.SelectedOutputs = v + return s +} + // If you are using DRM, set DRM System (MsSmoothEncryptionSettings) to specify // the value SpekeKeyProvider. type MsSmoothEncryptionSettings struct { @@ -13457,6 +13887,13 @@ func (s *MsSmoothEncryptionSettings) SetSpekeKeyProvider(v *SpekeKeyProvider) *M type MsSmoothGroupSettings struct { _ struct{} `type:"structure"` + // By default, the service creates one .ism Microsoft Smooth Streaming manifest + // for each Microsoft Smooth Streaming output group in your job. This default + // manifest references every output in the output group. To create additional + // manifests that reference a subset of the outputs in the output group, specify + // a list of them here. + AdditionalManifests []*MsSmoothAdditionalManifest `locationName:"additionalManifests" type:"list"` + // COMBINE_DUPLICATE_STREAMS combines identical audio encoding settings across // a Microsoft Smooth output group into a single audio stream. AudioDeduplication *string `locationName:"audioDeduplication" type:"string" enum:"MsSmoothAudioDeduplication"` @@ -13501,6 +13938,16 @@ func (s *MsSmoothGroupSettings) Validate() error { if s.FragmentLength != nil && *s.FragmentLength < 1 { invalidParams.Add(request.NewErrParamMinValue("FragmentLength", 1)) } + if s.AdditionalManifests != nil { + for i, v := range s.AdditionalManifests { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalManifests", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -13508,6 +13955,12 @@ func (s *MsSmoothGroupSettings) Validate() error { return nil } +// SetAdditionalManifests sets the AdditionalManifests field's value. +func (s *MsSmoothGroupSettings) SetAdditionalManifests(v []*MsSmoothAdditionalManifest) *MsSmoothGroupSettings { + s.AdditionalManifests = v + return s +} + // SetAudioDeduplication sets the AudioDeduplication field's value. func (s *MsSmoothGroupSettings) SetAudioDeduplication(v string) *MsSmoothGroupSettings { s.AudioDeduplication = &v @@ -15066,10 +15519,41 @@ func (s *ResourceTags) SetTags(v map[string]*string) *ResourceTags { return s } +// Optional. Have MediaConvert automatically apply Amazon S3 access control +// for the outputs in this output group. When you don't use this setting, S3 +// automatically applies the default access control list PRIVATE. +type S3DestinationAccessControl struct { + _ struct{} `type:"structure"` + + // Choose an Amazon S3 canned ACL for MediaConvert to apply to this output. + CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"S3ObjectCannedAcl"` +} + +// String returns the string representation +func (s S3DestinationAccessControl) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s S3DestinationAccessControl) GoString() string { + return s.String() +} + +// SetCannedAcl sets the CannedAcl field's value. +func (s *S3DestinationAccessControl) SetCannedAcl(v string) *S3DestinationAccessControl { + s.CannedAcl = &v + return s +} + // Settings associated with S3 destination type S3DestinationSettings struct { _ struct{} `type:"structure"` + // Optional. Have MediaConvert automatically apply Amazon S3 access control + // for the outputs in this output group. When you don't use this setting, S3 + // automatically applies the default access control list PRIVATE. + AccessControl *S3DestinationAccessControl `locationName:"accessControl" type:"structure"` + // Settings for how your job outputs are encrypted as they are uploaded to Amazon // S3. Encryption *S3EncryptionSettings `locationName:"encryption" type:"structure"` @@ -15085,6 +15569,12 @@ func (s S3DestinationSettings) GoString() string { return s.String() } +// SetAccessControl sets the AccessControl field's value. +func (s *S3DestinationSettings) SetAccessControl(v *S3DestinationAccessControl) *S3DestinationSettings { + s.AccessControl = v + return s +} + // SetEncryption sets the Encryption field's value. func (s *S3DestinationSettings) SetEncryption(v *S3EncryptionSettings) *S3DestinationSettings { s.Encryption = v @@ -16641,6 +17131,9 @@ type VideoPreprocessor struct { // picture. Deinterlacer *Deinterlacer `locationName:"deinterlacer" type:"structure"` + // Enable Dolby Vision feature to produce Dolby Vision compatible video output. + DolbyVision *DolbyVision `locationName:"dolbyVision" type:"structure"` + // Enable the Image inserter (ImageInserter) feature to include a graphic overlay // on your video. Enable or disable this feature for each output individually. // This setting is disabled by default. @@ -16708,6 +17201,12 @@ func (s *VideoPreprocessor) SetDeinterlacer(v *Deinterlacer) *VideoPreprocessor return s } +// SetDolbyVision sets the DolbyVision field's value. +func (s *VideoPreprocessor) SetDolbyVision(v *DolbyVision) *VideoPreprocessor { + s.DolbyVision = v + return s +} + // SetImageInserter sets the ImageInserter field's value. func (s *VideoPreprocessor) SetImageInserter(v *ImageInserter) *VideoPreprocessor { s.ImageInserter = v @@ -17227,10 +17726,12 @@ const ( AudioDefaultSelectionNotDefault = "NOT_DEFAULT" ) -// Choosing FOLLOW_INPUT will cause the ISO 639 language code of the output -// to follow the ISO 639 language code of the input. The language specified -// for languageCode' will be used when USE_CONFIGURED is selected or when FOLLOW_INPUT -// is selected but there is no ISO 639 language code specified by the input. +// Specify which source for language code takes precedence for this audio track. +// When you choose Follow input (FOLLOW_INPUT), the service uses the language +// code from the input track if it's present. If there's no languge code on +// the input track, the service uses the code that you specify in the setting +// Language code (languageCode or customLanguageCode). When you choose Use configured +// (USE_CONFIGURED), the service uses the language code that you specify. const ( // AudioLanguageCodeControlFollowInput is a AudioLanguageCodeControl enum value AudioLanguageCodeControlFollowInput = "FOLLOW_INPUT" @@ -17896,6 +18397,27 @@ const ( DescribeEndpointsModeGetOnly = "GET_ONLY" ) +// Use Dolby Vision Mode to choose how the service will handle Dolby Vision +// MaxCLL and MaxFALL properies. +const ( + // DolbyVisionLevel6ModePassthrough is a DolbyVisionLevel6Mode enum value + DolbyVisionLevel6ModePassthrough = "PASSTHROUGH" + + // DolbyVisionLevel6ModeRecalculate is a DolbyVisionLevel6Mode enum value + DolbyVisionLevel6ModeRecalculate = "RECALCULATE" + + // DolbyVisionLevel6ModeSpecify is a DolbyVisionLevel6Mode enum value + DolbyVisionLevel6ModeSpecify = "SPECIFY" +) + +// In the current MediaConvert implementation, the Dolby Vision profile is always +// 5 (PROFILE_5). Therefore, all of your inputs must contain Dolby Vision frame +// interleaved data. +const ( + // DolbyVisionProfileProfile5 is a DolbyVisionProfile enum value + DolbyVisionProfileProfile5 = "PROFILE_5" +) + // Applies only to 29.97 fps outputs. When this feature is enabled, the service // will use drop-frame timecode on outputs. If it is not possible to use drop-frame // timecode, the system will fall back to non-drop-frame. This setting is enabled @@ -19075,14 +19597,15 @@ const ( ) // If the location of parameter set NAL units doesn't matter in your workflow, -// ignore this setting. Use this setting in your CMAF, DASH, or file MP4 output. -// For file MP4 outputs, choosing HVC1 can create video that doesn't work properly -// with some downstream systems and video players. Choose HVC1 to mark your -// output as HVC1. This makes your output compliant with the following specification: -// ISO IECJTC1 SC29 N13798 Text ISO/IEC FDIS 14496-15 3rd Edition. For these -// outputs, the service stores parameter set NAL units in the sample headers -// but not in the samples directly. The service defaults to marking your output -// as HEV1. For these outputs, the service writes parameter set NAL units directly +// ignore this setting. Use this setting only with CMAF or DASH outputs, or +// with standalone file outputs in an MPEG-4 container (MP4 outputs). Choose +// HVC1 to mark your output as HVC1. This makes your output compliant with the +// following specification: ISO IECJTC1 SC29 N13798 Text ISO/IEC FDIS 14496-15 +// 3rd Edition. For these outputs, the service stores parameter set NAL units +// in the sample headers but not in the samples directly. For MP4 outputs, when +// you choose HVC1, your output video might not work properly with some downstream +// systems and video players. The service defaults to marking your output as +// HEV1. For these outputs, the service writes parameter set NAL units directly // into the samples. const ( // H265WriteMp4PackagingTypeHvc1 is a H265WriteMp4PackagingType enum value @@ -20340,6 +20863,44 @@ const ( Mp4MoovPlacementNormal = "NORMAL" ) +// Use this setting only in DASH output groups that include sidecar TTML or +// IMSC captions. You specify sidecar captions in a separate output from your +// audio and video. Choose Raw (RAW) for captions in a single XML file in a +// raw container. Choose Fragmented MPEG-4 (FRAGMENTED_MP4) for captions in +// XML format contained within fragmented MP4 files. This set of fragmented +// MP4 files is separate from your video and audio fragmented MP4 files. +const ( + // MpdCaptionContainerTypeRaw is a MpdCaptionContainerType enum value + MpdCaptionContainerTypeRaw = "RAW" + + // MpdCaptionContainerTypeFragmentedMp4 is a MpdCaptionContainerType enum value + MpdCaptionContainerTypeFragmentedMp4 = "FRAGMENTED_MP4" +) + +// Use this setting only when you specify SCTE-35 markers from ESAM. Choose +// INSERT to put SCTE-35 markers in this output at the insertion points that +// you specify in an ESAM XML document. Provide the document in the setting +// SCC XML (sccXml). +const ( + // MpdScte35EsamInsert is a MpdScte35Esam enum value + MpdScte35EsamInsert = "INSERT" + + // MpdScte35EsamNone is a MpdScte35Esam enum value + MpdScte35EsamNone = "NONE" +) + +// Ignore this setting unless you have SCTE-35 markers in your input video file. +// Choose Passthrough (PASSTHROUGH) if you want SCTE-35 markers that appear +// in your input to also appear in this output. Choose None (NONE) if you don't +// want those SCTE-35 markers in this output. +const ( + // MpdScte35SourcePassthrough is a MpdScte35Source enum value + MpdScte35SourcePassthrough = "PASSTHROUGH" + + // MpdScte35SourceNone is a MpdScte35Source enum value + MpdScte35SourceNone = "NONE" +) + // Adaptive quantization. Allows intra-frame quantizers to vary to improve visual // quality. const ( @@ -20874,6 +21435,21 @@ const ( RespondToAfdPassthrough = "PASSTHROUGH" ) +// Choose an Amazon S3 canned ACL for MediaConvert to apply to this output. +const ( + // S3ObjectCannedAclPublicRead is a S3ObjectCannedAcl enum value + S3ObjectCannedAclPublicRead = "PUBLIC_READ" + + // S3ObjectCannedAclAuthenticatedRead is a S3ObjectCannedAcl enum value + S3ObjectCannedAclAuthenticatedRead = "AUTHENTICATED_READ" + + // S3ObjectCannedAclBucketOwnerRead is a S3ObjectCannedAcl enum value + S3ObjectCannedAclBucketOwnerRead = "BUCKET_OWNER_READ" + + // S3ObjectCannedAclBucketOwnerFullControl is a S3ObjectCannedAcl enum value + S3ObjectCannedAclBucketOwnerFullControl = "BUCKET_OWNER_FULL_CONTROL" +) + // Specify how you want your data keys managed. AWS uses data keys to encrypt // your content. AWS also encrypts the data keys themselves, using a customer // master key (CMK), and then stores the encrypted data keys alongside your @@ -20920,6 +21496,9 @@ const ( // SccDestinationFramerateFramerate24 is a SccDestinationFramerate enum value SccDestinationFramerateFramerate24 = "FRAMERATE_24" + // SccDestinationFramerateFramerate25 is a SccDestinationFramerate enum value + SccDestinationFramerateFramerate25 = "FRAMERATE_25" + // SccDestinationFramerateFramerate2997Dropframe is a SccDestinationFramerate enum value SccDestinationFramerateFramerate2997Dropframe = "FRAMERATE_29_97_DROPFRAME" diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go index 767f80602d20..115d54ec1028 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go @@ -7013,9 +7013,7 @@ func (c *SSM) GetParametersByPathRequest(input *GetParametersByPathInput) (req * // GetParametersByPath API operation for Amazon Simple Systems Manager (SSM). // -// Retrieve parameters in a specific hierarchy. For more information, see Working -// with Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-working.html) -// in the AWS Systems Manager User Guide. +// Retrieve information about one or more parameters in a specific hierarchy. // // Request results are returned on a best-effort basis. If you specify MaxResults // in the request, the response includes information up to the limit specified. @@ -7025,8 +7023,6 @@ func (c *SSM) GetParametersByPathRequest(input *GetParametersByPathInput) (req * // that point and a NextToken. You can specify the NextToken in a subsequent // call to get the next set of results. // -// This API action doesn't support filtering by tags. -// // 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. @@ -20483,7 +20479,7 @@ func (s *DescribeOpsItemsOutput) SetOpsItemSummaries(v []*OpsItemSummary) *Descr type DescribeParametersInput struct { _ struct{} `type:"structure"` - // One or more filters. Use a filter to return a more specific list of results. + // This data type is deprecated. Instead, use ParameterFilters. Filters []*ParametersFilter `type:"list"` // The maximum number of items to return for this call. The call also returns @@ -24282,8 +24278,6 @@ type GetParametersByPathInput struct { NextToken *string `type:"string"` // Filters to limit the request results. - // - // You can't filter using the parameter name. ParameterFilters []*ParameterStringFilter `type:"list"` // The hierarchy for the parameter. Hierarchies start with a forward slash (/) @@ -30313,9 +30307,19 @@ func (s *ParameterMetadata) SetVersion(v int64) *ParameterMetadata { // One or more filters. Use a filter to return a more specific list of results. // -// The Name and Tier filter keys can't be used with the GetParametersByPath -// API action. Also, the Label filter key can't be used with the DescribeParameters -// API action. +// The ParameterStringFilter object is used by the DescribeParameters and GetParametersByPath +// API actions. However, not all of the pattern values listed for Key can be +// used with both actions. +// +// For DescribeActions, all of the listed patterns are valid, with the exception +// of Label. +// +// For GetParametersByPath, the following patterns listed for Key are not valid: +// Name, Path, and Tier. +// +// For examples of CLI commands demonstrating valid parameter filter constructions, +// see Searching for Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-search.html) +// in the AWS Systems Manager User Guide. type ParameterStringFilter struct { _ struct{} `type:"structure"` @@ -30324,8 +30328,14 @@ type ParameterStringFilter struct { // Key is a required field Key *string `min:"1" type:"string" required:"true"` - // Valid options are Equals and BeginsWith. For Path filter, valid options are - // Recursive and OneLevel. + // For all filters used with DescribeParameters, valid options include Equals + // and BeginsWith. The Name filter additionally supports the Contains option. + // (Exception: For filters using the key Path, valid options include Recursive + // and OneLevel.) + // + // For filters used with GetParametersByPath, valid options include Equals and + // BeginsWith. (Exception: For filters using the key Label, the only valid option + // is Equals.) Option *string `min:"1" type:"string"` // The value you want to search for. @@ -34768,16 +34778,8 @@ func (s *Tag) SetValue(v string) *Tag { // * Key=tag-key,Values=Name,Instance-Type,CostCenter // // * (Maintenance window targets only) Key=resource-groups:Name,Values=ProductionResourceGroup -// This example demonstrates how to target all resources in the resource -// group ProductionResourceGroup in your maintenance window. // // * (Maintenance window targets only) Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::INSTANCE,AWS::EC2::VPC -// This example demonstrates how to target only Amazon EC2 instances and -// VPCs in your maintenance window. -// -// * (State Manager association targets only) Key=InstanceIds,Values=* This -// example demonstrates how to target all managed instances in the AWS Region -// where the association was created. // // For information about how to send commands that target instances using Key,Value // parameters, see Using Targets and Rate Controls to Send Commands to a Fleet diff --git a/vendor/github.com/aws/aws-sdk-go/service/workspaces/api.go b/vendor/github.com/aws/aws-sdk-go/service/workspaces/api.go index cc276d428311..7cf7a73fa236 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/workspaces/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/workspaces/api.go @@ -835,6 +835,100 @@ func (c *WorkSpaces) DeleteWorkspaceImageWithContext(ctx aws.Context, input *Del return out, req.Send() } +const opDeregisterWorkspaceDirectory = "DeregisterWorkspaceDirectory" + +// DeregisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the +// client's request for the DeregisterWorkspaceDirectory 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 DeregisterWorkspaceDirectory for more information on using the DeregisterWorkspaceDirectory +// 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 DeregisterWorkspaceDirectoryRequest method. +// req, resp := client.DeregisterWorkspaceDirectoryRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory +func (c *WorkSpaces) DeregisterWorkspaceDirectoryRequest(input *DeregisterWorkspaceDirectoryInput) (req *request.Request, output *DeregisterWorkspaceDirectoryOutput) { + op := &request.Operation{ + Name: opDeregisterWorkspaceDirectory, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeregisterWorkspaceDirectoryInput{} + } + + output = &DeregisterWorkspaceDirectoryOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeregisterWorkspaceDirectory API operation for Amazon WorkSpaces. +// +// Deregisters the specified directory. This operation is asynchronous and returns +// before the WorkSpace directory is deregistered. If any WorkSpaces are registered +// to this directory, you must remove them before you can deregister the directory. +// +// 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 WorkSpaces's +// API operation DeregisterWorkspaceDirectory for usage and error information. +// +// Returned Error Codes: +// * ErrCodeAccessDeniedException "AccessDeniedException" +// The user is not authorized to access a resource. +// +// * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException" +// One or more parameter values are not valid. +// +// * ErrCodeOperationNotSupportedException "OperationNotSupportedException" +// This operation is not supported. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The resource could not be found. +// +// * ErrCodeInvalidResourceStateException "InvalidResourceStateException" +// The state of the resource is not valid for this operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory +func (c *WorkSpaces) DeregisterWorkspaceDirectory(input *DeregisterWorkspaceDirectoryInput) (*DeregisterWorkspaceDirectoryOutput, error) { + req, out := c.DeregisterWorkspaceDirectoryRequest(input) + return out, req.Send() +} + +// DeregisterWorkspaceDirectoryWithContext is the same as DeregisterWorkspaceDirectory with the addition of +// the ability to pass a context and additional request options. +// +// See DeregisterWorkspaceDirectory 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 *WorkSpaces) DeregisterWorkspaceDirectoryWithContext(ctx aws.Context, input *DeregisterWorkspaceDirectoryInput, opts ...request.Option) (*DeregisterWorkspaceDirectoryOutput, error) { + req, out := c.DeregisterWorkspaceDirectoryRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeAccount = "DescribeAccount" // DescribeAccountRequest generates a "aws/request.Request" representing the @@ -879,7 +973,7 @@ func (c *WorkSpaces) DescribeAccountRequest(input *DescribeAccountInput) (req *r // DescribeAccount API operation for Amazon WorkSpaces. // -// Retrieves a list that describes the configuration of bring your own license +// Retrieves a list that describes the configuration of Bring Your Own License // (BYOL) for the specified account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -959,8 +1053,8 @@ func (c *WorkSpaces) DescribeAccountModificationsRequest(input *DescribeAccountM // DescribeAccountModifications API operation for Amazon WorkSpaces. // -// Retrieves a list that describes modifications to the configuration of bring -// your own license (BYOL) for the specified account. +// Retrieves a list that describes modifications to the configuration of Bring +// Your Own License (BYOL) for the specified account. // // 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 @@ -1430,8 +1524,7 @@ func (c *WorkSpaces) DescribeWorkspaceDirectoriesRequest(input *DescribeWorkspac // DescribeWorkspaceDirectories API operation for Amazon WorkSpaces. // -// Describes the available AWS Directory Service directories that are registered -// with Amazon WorkSpaces. +// Describes the available directories that are registered with Amazon WorkSpaces. // // 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 @@ -2038,7 +2131,7 @@ func (c *WorkSpaces) ImportWorkspaceImageRequest(input *ImportWorkspaceImageInpu // ImportWorkspaceImage API operation for Amazon WorkSpaces. // -// Imports the specified Windows 7 or Windows 10 bring your own license (BYOL) +// Imports the specified Windows 7 or Windows 10 Bring Your Own License (BYOL) // image into Amazon WorkSpaces. The image must be an already licensed EC2 image // that is in your AWS account, and you must own the image. // @@ -2135,8 +2228,8 @@ func (c *WorkSpaces) ListAvailableManagementCidrRangesRequest(input *ListAvailab // ListAvailableManagementCidrRanges API operation for Amazon WorkSpaces. // // Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that -// you can use for the network management interface when you enable bring your -// own license (BYOL). +// you can use for the network management interface when you enable Bring Your +// Own License (BYOL). // // The management network interface is connected to a secure Amazon WorkSpaces // management network. It is used for interactive streaming of the WorkSpace @@ -2224,7 +2317,7 @@ func (c *WorkSpaces) ModifyAccountRequest(input *ModifyAccountInput) (req *reque // ModifyAccount API operation for Amazon WorkSpaces. // -// Modifies the configuration of bring your own license (BYOL) for the specified +// Modifies the configuration of Bring Your Own License (BYOL) for the specified // account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -2358,6 +2451,264 @@ func (c *WorkSpaces) ModifyClientPropertiesWithContext(ctx aws.Context, input *M return out, req.Send() } +const opModifySelfservicePermissions = "ModifySelfservicePermissions" + +// ModifySelfservicePermissionsRequest generates a "aws/request.Request" representing the +// client's request for the ModifySelfservicePermissions 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 ModifySelfservicePermissions for more information on using the ModifySelfservicePermissions +// 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 ModifySelfservicePermissionsRequest method. +// req, resp := client.ModifySelfservicePermissionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions +func (c *WorkSpaces) ModifySelfservicePermissionsRequest(input *ModifySelfservicePermissionsInput) (req *request.Request, output *ModifySelfservicePermissionsOutput) { + op := &request.Operation{ + Name: opModifySelfservicePermissions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifySelfservicePermissionsInput{} + } + + output = &ModifySelfservicePermissionsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// ModifySelfservicePermissions API operation for Amazon WorkSpaces. +// +// Modifies the self-service WorkSpace management capabilities for your users. +// For more information, see Enable Self-Service WorkSpace Management Capabilities +// for Your Users (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html). +// +// 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 WorkSpaces's +// API operation ModifySelfservicePermissions for usage and error information. +// +// Returned Error Codes: +// * ErrCodeAccessDeniedException "AccessDeniedException" +// The user is not authorized to access a resource. +// +// * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException" +// One or more parameter values are not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The resource could not be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions +func (c *WorkSpaces) ModifySelfservicePermissions(input *ModifySelfservicePermissionsInput) (*ModifySelfservicePermissionsOutput, error) { + req, out := c.ModifySelfservicePermissionsRequest(input) + return out, req.Send() +} + +// ModifySelfservicePermissionsWithContext is the same as ModifySelfservicePermissions with the addition of +// the ability to pass a context and additional request options. +// +// See ModifySelfservicePermissions 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 *WorkSpaces) ModifySelfservicePermissionsWithContext(ctx aws.Context, input *ModifySelfservicePermissionsInput, opts ...request.Option) (*ModifySelfservicePermissionsOutput, error) { + req, out := c.ModifySelfservicePermissionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opModifyWorkspaceAccessProperties = "ModifyWorkspaceAccessProperties" + +// ModifyWorkspaceAccessPropertiesRequest generates a "aws/request.Request" representing the +// client's request for the ModifyWorkspaceAccessProperties 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 ModifyWorkspaceAccessProperties for more information on using the ModifyWorkspaceAccessProperties +// 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 ModifyWorkspaceAccessPropertiesRequest method. +// req, resp := client.ModifyWorkspaceAccessPropertiesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties +func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesRequest(input *ModifyWorkspaceAccessPropertiesInput) (req *request.Request, output *ModifyWorkspaceAccessPropertiesOutput) { + op := &request.Operation{ + Name: opModifyWorkspaceAccessProperties, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyWorkspaceAccessPropertiesInput{} + } + + output = &ModifyWorkspaceAccessPropertiesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// ModifyWorkspaceAccessProperties API operation for Amazon WorkSpaces. +// +// Specifies which devices and operating systems users can use to access their +// Workspaces. For more information, see Control Device Access (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html#control-device-access). +// +// 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 WorkSpaces's +// API operation ModifyWorkspaceAccessProperties for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The resource could not be found. +// +// * ErrCodeAccessDeniedException "AccessDeniedException" +// The user is not authorized to access a resource. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties +func (c *WorkSpaces) ModifyWorkspaceAccessProperties(input *ModifyWorkspaceAccessPropertiesInput) (*ModifyWorkspaceAccessPropertiesOutput, error) { + req, out := c.ModifyWorkspaceAccessPropertiesRequest(input) + return out, req.Send() +} + +// ModifyWorkspaceAccessPropertiesWithContext is the same as ModifyWorkspaceAccessProperties with the addition of +// the ability to pass a context and additional request options. +// +// See ModifyWorkspaceAccessProperties 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 *WorkSpaces) ModifyWorkspaceAccessPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceAccessPropertiesInput, opts ...request.Option) (*ModifyWorkspaceAccessPropertiesOutput, error) { + req, out := c.ModifyWorkspaceAccessPropertiesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opModifyWorkspaceCreationProperties = "ModifyWorkspaceCreationProperties" + +// ModifyWorkspaceCreationPropertiesRequest generates a "aws/request.Request" representing the +// client's request for the ModifyWorkspaceCreationProperties 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 ModifyWorkspaceCreationProperties for more information on using the ModifyWorkspaceCreationProperties +// 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 ModifyWorkspaceCreationPropertiesRequest method. +// req, resp := client.ModifyWorkspaceCreationPropertiesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties +func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesRequest(input *ModifyWorkspaceCreationPropertiesInput) (req *request.Request, output *ModifyWorkspaceCreationPropertiesOutput) { + op := &request.Operation{ + Name: opModifyWorkspaceCreationProperties, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ModifyWorkspaceCreationPropertiesInput{} + } + + output = &ModifyWorkspaceCreationPropertiesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// ModifyWorkspaceCreationProperties API operation for Amazon WorkSpaces. +// +// Modify the default properties used to create WorkSpaces. +// +// 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 WorkSpaces's +// API operation ModifyWorkspaceCreationProperties for usage and error information. +// +// Returned Error Codes: +// * ErrCodeAccessDeniedException "AccessDeniedException" +// The user is not authorized to access a resource. +// +// * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException" +// One or more parameter values are not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The resource could not be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties +func (c *WorkSpaces) ModifyWorkspaceCreationProperties(input *ModifyWorkspaceCreationPropertiesInput) (*ModifyWorkspaceCreationPropertiesOutput, error) { + req, out := c.ModifyWorkspaceCreationPropertiesRequest(input) + return out, req.Send() +} + +// ModifyWorkspaceCreationPropertiesWithContext is the same as ModifyWorkspaceCreationProperties with the addition of +// the ability to pass a context and additional request options. +// +// See ModifyWorkspaceCreationProperties 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 *WorkSpaces) ModifyWorkspaceCreationPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceCreationPropertiesInput, opts ...request.Option) (*ModifyWorkspaceCreationPropertiesOutput, error) { + req, out := c.ModifyWorkspaceCreationPropertiesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opModifyWorkspaceProperties = "ModifyWorkspaceProperties" // ModifyWorkspacePropertiesRequest generates a "aws/request.Request" representing the @@ -2425,7 +2776,8 @@ func (c *WorkSpaces) ModifyWorkspacePropertiesRequest(input *ModifyWorkspaceProp // // * ErrCodeUnsupportedWorkspaceConfigurationException "UnsupportedWorkspaceConfigurationException" // The configuration of this WorkSpace is not supported for this operation. -// For more information, see the Amazon WorkSpaces Administration Guide (https://docs.aws.amazon.com/workspaces/latest/adminguide/). +// For more information, see Required Configuration and Service Components for +// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html). // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The resource could not be found. @@ -2679,32 +3031,143 @@ func (c *WorkSpaces) RebuildWorkspacesRequest(input *RebuildWorkspacesInput) (re // Rebuilding a WorkSpace is a potentially destructive action that can result // in the loss of data. For more information, see Rebuild a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html). // -// This operation is asynchronous and returns before the WorkSpaces have been -// completely rebuilt. +// This operation is asynchronous and returns before the WorkSpaces have been +// completely rebuilt. +// +// 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 WorkSpaces's +// API operation RebuildWorkspaces for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces +func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) { + req, out := c.RebuildWorkspacesRequest(input) + return out, req.Send() +} + +// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of +// the ability to pass a context and additional request options. +// +// See RebuildWorkspaces 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 *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) { + req, out := c.RebuildWorkspacesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRegisterWorkspaceDirectory = "RegisterWorkspaceDirectory" + +// RegisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the +// client's request for the RegisterWorkspaceDirectory 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 RegisterWorkspaceDirectory for more information on using the RegisterWorkspaceDirectory +// 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 RegisterWorkspaceDirectoryRequest method. +// req, resp := client.RegisterWorkspaceDirectoryRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory +func (c *WorkSpaces) RegisterWorkspaceDirectoryRequest(input *RegisterWorkspaceDirectoryInput) (req *request.Request, output *RegisterWorkspaceDirectoryOutput) { + op := &request.Operation{ + Name: opRegisterWorkspaceDirectory, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RegisterWorkspaceDirectoryInput{} + } + + output = &RegisterWorkspaceDirectoryOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// RegisterWorkspaceDirectory API operation for Amazon WorkSpaces. +// +// Registers the specified directory. This operation is asynchronous and returns +// before the WorkSpace directory is registered. If this is the first time you +// are registering a directory, you will need to create the workspaces_DefaultRole +// role before you can register a directory. For more information, see Creating +// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role). // // 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 WorkSpaces's -// API operation RebuildWorkspaces for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces -func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) { - req, out := c.RebuildWorkspacesRequest(input) +// API operation RegisterWorkspaceDirectory for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException" +// One or more parameter values are not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The resource could not be found. +// +// * ErrCodeResourceLimitExceededException "ResourceLimitExceededException" +// Your resource limits have been exceeded. +// +// * ErrCodeAccessDeniedException "AccessDeniedException" +// The user is not authorized to access a resource. +// +// * ErrCodeWorkspacesDefaultRoleNotFoundException "WorkspacesDefaultRoleNotFoundException" +// The workspaces_DefaultRole role could not be found. If this is the first +// time you are registering a directory, you will need to create the workspaces_DefaultRole +// role before you can register a directory. For more information, see Creating +// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role). +// +// * ErrCodeInvalidResourceStateException "InvalidResourceStateException" +// The state of the resource is not valid for this operation. +// +// * ErrCodeUnsupportedNetworkConfigurationException "UnsupportedNetworkConfigurationException" +// The configuration of this network is not supported for this operation, or +// your network configuration conflicts with the Amazon WorkSpaces management +// network IP range. For more information, see Configure a VPC for Amazon WorkSpaces +// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html). +// +// * ErrCodeOperationNotSupportedException "OperationNotSupportedException" +// This operation is not supported. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory +func (c *WorkSpaces) RegisterWorkspaceDirectory(input *RegisterWorkspaceDirectoryInput) (*RegisterWorkspaceDirectoryOutput, error) { + req, out := c.RegisterWorkspaceDirectoryRequest(input) return out, req.Send() } -// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of +// RegisterWorkspaceDirectoryWithContext is the same as RegisterWorkspaceDirectory with the addition of // the ability to pass a context and additional request options. // -// See RebuildWorkspaces for details on how to use this API operation. +// See RegisterWorkspaceDirectory 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 *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) { - req, out := c.RebuildWorkspacesRequest(input) +func (c *WorkSpaces) RegisterWorkspaceDirectoryWithContext(ctx aws.Context, input *RegisterWorkspaceDirectoryInput, opts ...request.Option) (*RegisterWorkspaceDirectoryOutput, error) { + req, out := c.RegisterWorkspaceDirectoryRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() @@ -3223,7 +3686,7 @@ func (c *WorkSpaces) UpdateRulesOfIpGroupWithContext(ctx aws.Context, input *Upd return out, req.Send() } -// Describes a modification to the configuration of bring your own license (BYOL) +// Describes a modification to the configuration of Bring Your Own License (BYOL) // for the specified account. type AccountModification struct { _ struct{} `type:"structure"` @@ -3301,7 +3764,7 @@ type AssociateIpGroupsInput struct { // The identifier of the directory. // // DirectoryId is a required field - DirectoryId *string `type:"string" required:"true"` + DirectoryId *string `min:"10" type:"string" required:"true"` // The identifiers of one or more IP access control groups. // @@ -3325,6 +3788,9 @@ func (s *AssociateIpGroupsInput) Validate() error { if s.DirectoryId == nil { invalidParams.Add(request.NewErrParamRequired("DirectoryId")) } + if s.DirectoryId != nil && len(*s.DirectoryId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10)) + } if s.GroupIds == nil { invalidParams.Add(request.NewErrParamRequired("GroupIds")) } @@ -3902,13 +4368,14 @@ func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorks return s } -// Describes the default values used to create a WorkSpace. +// Describes the default values that are used to create WorkSpaces. For more +// information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html). type DefaultWorkspaceCreationProperties struct { _ struct{} `type:"structure"` // The identifier of any security groups to apply to WorkSpaces when they are // created. - CustomSecurityGroupId *string `type:"string"` + CustomSecurityGroupId *string `min:"11" type:"string"` // The organizational unit (OU) in the directory for the WorkSpace machine accounts. DefaultOu *string `type:"string"` @@ -3925,10 +4392,14 @@ type DefaultWorkspaceCreationProperties struct { // (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html). EnableInternetAccess *bool `type:"boolean"` + // Specifies whether maintenance mode is enabled for WorkSpaces. For more information, + // see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + EnableMaintenanceMode *bool `type:"boolean"` + // Specifies whether the directory is enabled for Amazon WorkDocs. EnableWorkDocs *bool `type:"boolean"` - // Specifies whether the WorkSpace user is an administrator on the WorkSpace. + // Specifies whether WorkSpace users are local administrators on their WorkSpaces. UserEnabledAsLocalAdministrator *bool `type:"boolean"` } @@ -3960,6 +4431,12 @@ func (s *DefaultWorkspaceCreationProperties) SetEnableInternetAccess(v bool) *De return s } +// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value. +func (s *DefaultWorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *DefaultWorkspaceCreationProperties { + s.EnableMaintenanceMode = &v + return s +} + // SetEnableWorkDocs sets the EnableWorkDocs field's value. func (s *DefaultWorkspaceCreationProperties) SetEnableWorkDocs(v bool) *DefaultWorkspaceCreationProperties { s.EnableWorkDocs = &v @@ -4147,6 +4624,63 @@ func (s DeleteWorkspaceImageOutput) GoString() string { return s.String() } +type DeregisterWorkspaceDirectoryInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. If any WorkSpaces are registered to this + // directory, you must remove them before you deregister the directory, or you + // will receive an OperationNotSupportedException error. + // + // DirectoryId is a required field + DirectoryId *string `min:"10" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeregisterWorkspaceDirectoryInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeregisterWorkspaceDirectoryInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterWorkspaceDirectoryInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeregisterWorkspaceDirectoryInput"} + if s.DirectoryId == nil { + invalidParams.Add(request.NewErrParamRequired("DirectoryId")) + } + if s.DirectoryId != nil && len(*s.DirectoryId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDirectoryId sets the DirectoryId field's value. +func (s *DeregisterWorkspaceDirectoryInput) SetDirectoryId(v string) *DeregisterWorkspaceDirectoryInput { + s.DirectoryId = &v + return s +} + +type DeregisterWorkspaceDirectoryOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeregisterWorkspaceDirectoryOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeregisterWorkspaceDirectoryOutput) GoString() string { + return s.String() +} + type DescribeAccountInput struct { _ struct{} `type:"structure"` } @@ -4594,6 +5128,9 @@ type DescribeWorkspaceDirectoriesInput struct { // are retrieved. DirectoryIds []*string `min:"1" type:"list"` + // The maximum number of directories to return. + Limit *int64 `min:"1" type:"integer"` + // If you received a NextToken from a previous call that was paginated, provide // this token to receive the next set of results. NextToken *string `min:"1" type:"string"` @@ -4615,6 +5152,9 @@ func (s *DescribeWorkspaceDirectoriesInput) Validate() error { if s.DirectoryIds != nil && len(s.DirectoryIds) < 1 { invalidParams.Add(request.NewErrParamMinLen("DirectoryIds", 1)) } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } if s.NextToken != nil && len(*s.NextToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } @@ -4631,6 +5171,12 @@ func (s *DescribeWorkspaceDirectoriesInput) SetDirectoryIds(v []*string) *Descri return s } +// SetLimit sets the Limit field's value. +func (s *DescribeWorkspaceDirectoriesInput) SetLimit(v int64) *DescribeWorkspaceDirectoriesInput { + s.Limit = &v + return s +} + // SetNextToken sets the NextToken field's value. func (s *DescribeWorkspaceDirectoriesInput) SetNextToken(v string) *DescribeWorkspaceDirectoriesInput { s.NextToken = &v @@ -4928,7 +5474,7 @@ type DescribeWorkspacesInput struct { // The identifier of the directory. In addition, you can optionally specify // a specific directory user (see UserName). You cannot combine this parameter // with any other filter. - DirectoryId *string `type:"string"` + DirectoryId *string `min:"10" type:"string"` // The maximum number of items to return. Limit *int64 `min:"1" type:"integer"` @@ -4962,6 +5508,9 @@ func (s DescribeWorkspacesInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *DescribeWorkspacesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesInput"} + if s.DirectoryId != nil && len(*s.DirectoryId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10)) + } if s.Limit != nil && *s.Limit < 1 { invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) } @@ -5059,7 +5608,7 @@ type DisassociateIpGroupsInput struct { // The identifier of the directory. // // DirectoryId is a required field - DirectoryId *string `type:"string" required:"true"` + DirectoryId *string `min:"10" type:"string" required:"true"` // The identifiers of one or more IP access control groups. // @@ -5083,6 +5632,9 @@ func (s *DisassociateIpGroupsInput) Validate() error { if s.DirectoryId == nil { invalidParams.Add(request.NewErrParamRequired("DirectoryId")) } + if s.DirectoryId != nil && len(*s.DirectoryId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10)) + } if s.GroupIds == nil { invalidParams.Add(request.NewErrParamRequired("GroupIds")) } @@ -5609,33 +6161,245 @@ type ModifyClientPropertiesInput struct { // ClientProperties is a required field ClientProperties *ClientProperties `type:"structure" required:"true"` - // The resource identifiers, in the form of directory IDs. + // The resource identifiers, in the form of directory IDs. + // + // ResourceId is a required field + ResourceId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ModifyClientPropertiesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyClientPropertiesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyClientPropertiesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyClientPropertiesInput"} + if s.ClientProperties == nil { + invalidParams.Add(request.NewErrParamRequired("ClientProperties")) + } + if s.ResourceId == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientProperties sets the ClientProperties field's value. +func (s *ModifyClientPropertiesInput) SetClientProperties(v *ClientProperties) *ModifyClientPropertiesInput { + s.ClientProperties = v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *ModifyClientPropertiesInput) SetResourceId(v string) *ModifyClientPropertiesInput { + s.ResourceId = &v + return s +} + +type ModifyClientPropertiesOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s ModifyClientPropertiesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyClientPropertiesOutput) GoString() string { + return s.String() +} + +type ModifySelfservicePermissionsInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. + // + // ResourceId is a required field + ResourceId *string `min:"10" type:"string" required:"true"` + + // The permissions to enable or disable self-service capabilities. + // + // SelfservicePermissions is a required field + SelfservicePermissions *SelfservicePermissions `type:"structure" required:"true"` +} + +// String returns the string representation +func (s ModifySelfservicePermissionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifySelfservicePermissionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifySelfservicePermissionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifySelfservicePermissionsInput"} + if s.ResourceId == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10)) + } + if s.SelfservicePermissions == nil { + invalidParams.Add(request.NewErrParamRequired("SelfservicePermissions")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceId sets the ResourceId field's value. +func (s *ModifySelfservicePermissionsInput) SetResourceId(v string) *ModifySelfservicePermissionsInput { + s.ResourceId = &v + return s +} + +// SetSelfservicePermissions sets the SelfservicePermissions field's value. +func (s *ModifySelfservicePermissionsInput) SetSelfservicePermissions(v *SelfservicePermissions) *ModifySelfservicePermissionsInput { + s.SelfservicePermissions = v + return s +} + +type ModifySelfservicePermissionsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s ModifySelfservicePermissionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifySelfservicePermissionsOutput) GoString() string { + return s.String() +} + +type ModifyWorkspaceAccessPropertiesInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. + // + // ResourceId is a required field + ResourceId *string `min:"10" type:"string" required:"true"` + + // The device types and operating systems to enable or disable for access. + // + // WorkspaceAccessProperties is a required field + WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure" required:"true"` +} + +// String returns the string representation +func (s ModifyWorkspaceAccessPropertiesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyWorkspaceAccessPropertiesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyWorkspaceAccessPropertiesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceAccessPropertiesInput"} + if s.ResourceId == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10)) + } + if s.WorkspaceAccessProperties == nil { + invalidParams.Add(request.NewErrParamRequired("WorkspaceAccessProperties")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceId sets the ResourceId field's value. +func (s *ModifyWorkspaceAccessPropertiesInput) SetResourceId(v string) *ModifyWorkspaceAccessPropertiesInput { + s.ResourceId = &v + return s +} + +// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value. +func (s *ModifyWorkspaceAccessPropertiesInput) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *ModifyWorkspaceAccessPropertiesInput { + s.WorkspaceAccessProperties = v + return s +} + +type ModifyWorkspaceAccessPropertiesOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s ModifyWorkspaceAccessPropertiesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ModifyWorkspaceAccessPropertiesOutput) GoString() string { + return s.String() +} + +type ModifyWorkspaceCreationPropertiesInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. // // ResourceId is a required field - ResourceId *string `min:"1" type:"string" required:"true"` + ResourceId *string `min:"10" type:"string" required:"true"` + + // The default properties for creating WorkSpaces. + // + // WorkspaceCreationProperties is a required field + WorkspaceCreationProperties *WorkspaceCreationProperties `type:"structure" required:"true"` } // String returns the string representation -func (s ModifyClientPropertiesInput) String() string { +func (s ModifyWorkspaceCreationPropertiesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ModifyClientPropertiesInput) GoString() string { +func (s ModifyWorkspaceCreationPropertiesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ModifyClientPropertiesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ModifyClientPropertiesInput"} - if s.ClientProperties == nil { - invalidParams.Add(request.NewErrParamRequired("ClientProperties")) - } +func (s *ModifyWorkspaceCreationPropertiesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceCreationPropertiesInput"} if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) + if s.ResourceId != nil && len(*s.ResourceId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10)) + } + if s.WorkspaceCreationProperties == nil { + invalidParams.Add(request.NewErrParamRequired("WorkspaceCreationProperties")) + } + if s.WorkspaceCreationProperties != nil { + if err := s.WorkspaceCreationProperties.Validate(); err != nil { + invalidParams.AddNested("WorkspaceCreationProperties", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -5644,29 +6408,29 @@ func (s *ModifyClientPropertiesInput) Validate() error { return nil } -// SetClientProperties sets the ClientProperties field's value. -func (s *ModifyClientPropertiesInput) SetClientProperties(v *ClientProperties) *ModifyClientPropertiesInput { - s.ClientProperties = v +// SetResourceId sets the ResourceId field's value. +func (s *ModifyWorkspaceCreationPropertiesInput) SetResourceId(v string) *ModifyWorkspaceCreationPropertiesInput { + s.ResourceId = &v return s } -// SetResourceId sets the ResourceId field's value. -func (s *ModifyClientPropertiesInput) SetResourceId(v string) *ModifyClientPropertiesInput { - s.ResourceId = &v +// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value. +func (s *ModifyWorkspaceCreationPropertiesInput) SetWorkspaceCreationProperties(v *WorkspaceCreationProperties) *ModifyWorkspaceCreationPropertiesInput { + s.WorkspaceCreationProperties = v return s } -type ModifyClientPropertiesOutput struct { +type ModifyWorkspaceCreationPropertiesOutput struct { _ struct{} `type:"structure"` } // String returns the string representation -func (s ModifyClientPropertiesOutput) String() string { +func (s ModifyWorkspaceCreationPropertiesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ModifyClientPropertiesOutput) GoString() string { +func (s ModifyWorkspaceCreationPropertiesOutput) GoString() string { return s.String() } @@ -6052,6 +6816,137 @@ func (s *RebuildWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRe return s } +type RegisterWorkspaceDirectoryInput struct { + _ struct{} `type:"structure"` + + // The identifier of the directory. You cannot register a directory if it does + // not have a status of Active. If the directory does not have a status of Active, + // you will receive an InvalidResourceStateException error. If you have already + // registered the maximum number of directories that you can register with Amazon + // WorkSpaces, you will receive a ResourceLimitExceededException error. Deregister + // directories that you are not using for WorkSpaces, and try again. + // + // DirectoryId is a required field + DirectoryId *string `min:"10" type:"string" required:"true"` + + // Indicates whether self-service capabilities are enabled or disabled. + EnableSelfService *bool `type:"boolean"` + + // Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled + // this parameter and WorkDocs is not available in the Region, you will receive + // an OperationNotSupportedException error. Set EnableWorkDocs to disabled, + // and try again. + // + // EnableWorkDocs is a required field + EnableWorkDocs *bool `type:"boolean" required:"true"` + + // The identifiers of the subnets for your virtual private cloud (VPC). Make + // sure that the subnets are in supported Availability Zones. The subnets must + // also be in separate Availability Zones. If these conditions are not met, + // you will receive an OperationNotSupportedException error. + SubnetIds []*string `type:"list"` + + // The tags associated with the directory. + Tags []*Tag `type:"list"` + + // Indicates whether your WorkSpace directory is dedicated or shared. To use + // Bring Your Own License (BYOL) images, this value must be set to DEDICATED + // and your AWS account must be enabled for BYOL. If your account has not been + // enabled for BYOL, you will receive an InvalidParameterValuesException error. + // For more information about BYOL images, see Bring Your Own Windows Desktop + // Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html). + Tenancy *string `type:"string" enum:"Tenancy"` +} + +// String returns the string representation +func (s RegisterWorkspaceDirectoryInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RegisterWorkspaceDirectoryInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterWorkspaceDirectoryInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RegisterWorkspaceDirectoryInput"} + if s.DirectoryId == nil { + invalidParams.Add(request.NewErrParamRequired("DirectoryId")) + } + if s.DirectoryId != nil && len(*s.DirectoryId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10)) + } + if s.EnableWorkDocs == nil { + invalidParams.Add(request.NewErrParamRequired("EnableWorkDocs")) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDirectoryId sets the DirectoryId field's value. +func (s *RegisterWorkspaceDirectoryInput) SetDirectoryId(v string) *RegisterWorkspaceDirectoryInput { + s.DirectoryId = &v + return s +} + +// SetEnableSelfService sets the EnableSelfService field's value. +func (s *RegisterWorkspaceDirectoryInput) SetEnableSelfService(v bool) *RegisterWorkspaceDirectoryInput { + s.EnableSelfService = &v + return s +} + +// SetEnableWorkDocs sets the EnableWorkDocs field's value. +func (s *RegisterWorkspaceDirectoryInput) SetEnableWorkDocs(v bool) *RegisterWorkspaceDirectoryInput { + s.EnableWorkDocs = &v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *RegisterWorkspaceDirectoryInput) SetSubnetIds(v []*string) *RegisterWorkspaceDirectoryInput { + s.SubnetIds = v + return s +} + +// SetTags sets the Tags field's value. +func (s *RegisterWorkspaceDirectoryInput) SetTags(v []*Tag) *RegisterWorkspaceDirectoryInput { + s.Tags = v + return s +} + +// SetTenancy sets the Tenancy field's value. +func (s *RegisterWorkspaceDirectoryInput) SetTenancy(v string) *RegisterWorkspaceDirectoryInput { + s.Tenancy = &v + return s +} + +type RegisterWorkspaceDirectoryOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s RegisterWorkspaceDirectoryOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RegisterWorkspaceDirectoryOutput) GoString() string { + return s.String() +} + type RestoreWorkspaceInput struct { _ struct{} `type:"structure"` @@ -6194,6 +7089,70 @@ func (s *RootStorage) SetCapacity(v string) *RootStorage { return s } +// Describes the self-service permissions for a directory. For more information, +// see Enable Self-Service WorkSpace Management Capabilities for Your Users +// (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html). +type SelfservicePermissions struct { + _ struct{} `type:"structure"` + + // Specifies whether users can change the compute type (bundle) for their WorkSpace. + ChangeComputeType *string `type:"string" enum:"ReconnectEnum"` + + // Specifies whether users can increase the volume size of the drives on their + // WorkSpace. + IncreaseVolumeSize *string `type:"string" enum:"ReconnectEnum"` + + // Specifies whether users can rebuild the operating system of a WorkSpace to + // its original state. + RebuildWorkspace *string `type:"string" enum:"ReconnectEnum"` + + // Specifies whether users can restart their WorkSpace. + RestartWorkspace *string `type:"string" enum:"ReconnectEnum"` + + // Specifies whether users can switch the running mode of their WorkSpace. + SwitchRunningMode *string `type:"string" enum:"ReconnectEnum"` +} + +// String returns the string representation +func (s SelfservicePermissions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SelfservicePermissions) GoString() string { + return s.String() +} + +// SetChangeComputeType sets the ChangeComputeType field's value. +func (s *SelfservicePermissions) SetChangeComputeType(v string) *SelfservicePermissions { + s.ChangeComputeType = &v + return s +} + +// SetIncreaseVolumeSize sets the IncreaseVolumeSize field's value. +func (s *SelfservicePermissions) SetIncreaseVolumeSize(v string) *SelfservicePermissions { + s.IncreaseVolumeSize = &v + return s +} + +// SetRebuildWorkspace sets the RebuildWorkspace field's value. +func (s *SelfservicePermissions) SetRebuildWorkspace(v string) *SelfservicePermissions { + s.RebuildWorkspace = &v + return s +} + +// SetRestartWorkspace sets the RestartWorkspace field's value. +func (s *SelfservicePermissions) SetRestartWorkspace(v string) *SelfservicePermissions { + s.RestartWorkspace = &v + return s +} + +// SetSwitchRunningMode sets the SwitchRunningMode field's value. +func (s *SelfservicePermissions) SetSwitchRunningMode(v string) *SelfservicePermissions { + s.SwitchRunningMode = &v + return s +} + // Describes a snapshot. type Snapshot struct { _ struct{} `type:"structure"` @@ -6659,7 +7618,7 @@ type Workspace struct { ComputerName *string `type:"string"` // The identifier of the AWS Directory Service directory for the WorkSpace. - DirectoryId *string `type:"string"` + DirectoryId *string `min:"10" type:"string"` // The error code that is returned if the WorkSpace cannot be created. ErrorCode *string `type:"string"` @@ -6681,7 +7640,7 @@ type Workspace struct { State *string `type:"string" enum:"WorkspaceState"` // The identifier of the subnet for the WorkSpace. - SubnetId *string `type:"string"` + SubnetId *string `min:"15" type:"string"` // The user for the WorkSpace. UserName *string `min:"1" type:"string"` @@ -6799,6 +7758,91 @@ func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace { return s } +// The device types and operating systems that can be used to access a WorkSpace. +// For more information, see Amazon WorkSpaces Client Network Requirements (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-network-requirements.html). +type WorkspaceAccessProperties struct { + _ struct{} `type:"structure"` + + // Indicates whether users can use Android devices to access their WorkSpaces. + DeviceTypeAndroid *string `type:"string" enum:"AccessPropertyValue"` + + // Indicates whether users can use Chromebooks to access their WorkSpaces. + DeviceTypeChromeOs *string `type:"string" enum:"AccessPropertyValue"` + + // Indicates whether users can use iOS devices to access their WorkSpaces. + DeviceTypeIos *string `type:"string" enum:"AccessPropertyValue"` + + // Indicates whether users can use macOS clients to access their WorkSpaces. + // To restrict WorkSpaces access to trusted devices (also known as managed devices) + // with valid certificates, specify a value of TRUST. For more information, + // see Restrict WorkSpaces Access to Trusted Devices (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html). + DeviceTypeOsx *string `type:"string" enum:"AccessPropertyValue"` + + // Indicates whether users can access their WorkSpaces through a web browser. + DeviceTypeWeb *string `type:"string" enum:"AccessPropertyValue"` + + // Indicates whether users can use Windows clients to access their WorkSpaces. + // To restrict WorkSpaces access to trusted devices (also known as managed devices) + // with valid certificates, specify a value of TRUST. For more information, + // see Restrict WorkSpaces Access to Trusted Devices (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html). + DeviceTypeWindows *string `type:"string" enum:"AccessPropertyValue"` + + // Indicates whether users can use zero client devices to access their WorkSpaces. + DeviceTypeZeroClient *string `type:"string" enum:"AccessPropertyValue"` +} + +// String returns the string representation +func (s WorkspaceAccessProperties) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s WorkspaceAccessProperties) GoString() string { + return s.String() +} + +// SetDeviceTypeAndroid sets the DeviceTypeAndroid field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeAndroid(v string) *WorkspaceAccessProperties { + s.DeviceTypeAndroid = &v + return s +} + +// SetDeviceTypeChromeOs sets the DeviceTypeChromeOs field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeChromeOs(v string) *WorkspaceAccessProperties { + s.DeviceTypeChromeOs = &v + return s +} + +// SetDeviceTypeIos sets the DeviceTypeIos field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeIos(v string) *WorkspaceAccessProperties { + s.DeviceTypeIos = &v + return s +} + +// SetDeviceTypeOsx sets the DeviceTypeOsx field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeOsx(v string) *WorkspaceAccessProperties { + s.DeviceTypeOsx = &v + return s +} + +// SetDeviceTypeWeb sets the DeviceTypeWeb field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeWeb(v string) *WorkspaceAccessProperties { + s.DeviceTypeWeb = &v + return s +} + +// SetDeviceTypeWindows sets the DeviceTypeWindows field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeWindows(v string) *WorkspaceAccessProperties { + s.DeviceTypeWindows = &v + return s +} + +// SetDeviceTypeZeroClient sets the DeviceTypeZeroClient field's value. +func (s *WorkspaceAccessProperties) SetDeviceTypeZeroClient(v string) *WorkspaceAccessProperties { + s.DeviceTypeZeroClient = &v + return s +} + // Describes a WorkSpace bundle. type WorkspaceBundle struct { _ struct{} `type:"structure"` @@ -6930,7 +7974,82 @@ func (s *WorkspaceConnectionStatus) SetWorkspaceId(v string) *WorkspaceConnectio return s } -// Describes an AWS Directory Service directory that is used with Amazon WorkSpaces. +// Describes the default properties that are used for creating WorkSpaces. For +// more information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html). +type WorkspaceCreationProperties struct { + _ struct{} `type:"structure"` + + // The identifier of your custom security group. + CustomSecurityGroupId *string `min:"11" type:"string"` + + // The default organizational unit (OU) for your WorkSpace directories. + DefaultOu *string `type:"string"` + + // Indicates whether internet access is enabled for your WorkSpaces. + EnableInternetAccess *bool `type:"boolean"` + + // Indicates whether maintenance mode is enabled for your WorkSpaces. For more + // information, see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + EnableMaintenanceMode *bool `type:"boolean"` + + // Indicates whether users are local administrators of their WorkSpaces. + UserEnabledAsLocalAdministrator *bool `type:"boolean"` +} + +// String returns the string representation +func (s WorkspaceCreationProperties) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s WorkspaceCreationProperties) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *WorkspaceCreationProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "WorkspaceCreationProperties"} + if s.CustomSecurityGroupId != nil && len(*s.CustomSecurityGroupId) < 11 { + invalidParams.Add(request.NewErrParamMinLen("CustomSecurityGroupId", 11)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value. +func (s *WorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *WorkspaceCreationProperties { + s.CustomSecurityGroupId = &v + return s +} + +// SetDefaultOu sets the DefaultOu field's value. +func (s *WorkspaceCreationProperties) SetDefaultOu(v string) *WorkspaceCreationProperties { + s.DefaultOu = &v + return s +} + +// SetEnableInternetAccess sets the EnableInternetAccess field's value. +func (s *WorkspaceCreationProperties) SetEnableInternetAccess(v bool) *WorkspaceCreationProperties { + s.EnableInternetAccess = &v + return s +} + +// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value. +func (s *WorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *WorkspaceCreationProperties { + s.EnableMaintenanceMode = &v + return s +} + +// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value. +func (s *WorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *WorkspaceCreationProperties { + s.UserEnabledAsLocalAdministrator = &v + return s +} + +// Describes a directory that is used with Amazon WorkSpaces. type WorkspaceDirectory struct { _ struct{} `type:"structure"` @@ -6941,7 +8060,7 @@ type WorkspaceDirectory struct { CustomerUserName *string `min:"1" type:"string"` // The directory identifier. - DirectoryId *string `type:"string"` + DirectoryId *string `min:"10" type:"string"` // The name of the directory. DirectoryName *string `type:"string"` @@ -6963,17 +8082,28 @@ type WorkspaceDirectory struct { // in their Amazon WorkSpaces client application to connect to the directory. RegistrationCode *string `min:"1" type:"string"` - // The state of the directory's registration with Amazon WorkSpaces + // The default self-service permissions for WorkSpaces in the directory. + SelfservicePermissions *SelfservicePermissions `type:"structure"` + + // The state of the directory's registration with Amazon WorkSpaces. State *string `type:"string" enum:"WorkspaceDirectoryState"` // The identifiers of the subnets used with the directory. SubnetIds []*string `type:"list"` + // Specifies whether the directory is dedicated or shared. To use Bring Your + // Own License (BYOL), this value must be set to DEDICATED. For more information, + // see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html). + Tenancy *string `type:"string" enum:"Tenancy"` + + // The devices and operating systems that users can use to access Workspaces. + WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure"` + // The default creation properties for all WorkSpaces in the directory. WorkspaceCreationProperties *DefaultWorkspaceCreationProperties `type:"structure"` // The identifier of the security group that is assigned to new WorkSpaces. - WorkspaceSecurityGroupId *string `type:"string"` + WorkspaceSecurityGroupId *string `min:"11" type:"string"` } // String returns the string representation @@ -7040,6 +8170,12 @@ func (s *WorkspaceDirectory) SetRegistrationCode(v string) *WorkspaceDirectory { return s } +// SetSelfservicePermissions sets the SelfservicePermissions field's value. +func (s *WorkspaceDirectory) SetSelfservicePermissions(v *SelfservicePermissions) *WorkspaceDirectory { + s.SelfservicePermissions = v + return s +} + // SetState sets the State field's value. func (s *WorkspaceDirectory) SetState(v string) *WorkspaceDirectory { s.State = &v @@ -7052,6 +8188,18 @@ func (s *WorkspaceDirectory) SetSubnetIds(v []*string) *WorkspaceDirectory { return s } +// SetTenancy sets the Tenancy field's value. +func (s *WorkspaceDirectory) SetTenancy(v string) *WorkspaceDirectory { + s.Tenancy = &v + return s +} + +// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value. +func (s *WorkspaceDirectory) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *WorkspaceDirectory { + s.WorkspaceAccessProperties = v + return s +} + // SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value. func (s *WorkspaceDirectory) SetWorkspaceCreationProperties(v *DefaultWorkspaceCreationProperties) *WorkspaceDirectory { s.WorkspaceCreationProperties = v @@ -7086,8 +8234,9 @@ type WorkspaceImage struct { // The operating system that the image is running. OperatingSystem *OperatingSystem `type:"structure"` - // Specifies whether the image is running on dedicated hardware. When bring - // your own license (BYOL) is enabled, this value is set to DEDICATED. + // Specifies whether the image is running on dedicated hardware. When Bring + // Your Own License (BYOL) is enabled, this value is set to DEDICATED. For more + // information, see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html). RequiredTenancy *string `type:"string" enum:"WorkspaceImageRequiredTenancy"` // The status of the image. @@ -7228,7 +8377,7 @@ type WorkspaceRequest struct { // You can use DescribeWorkspaceDirectories to list the available directories. // // DirectoryId is a required field - DirectoryId *string `type:"string" required:"true"` + DirectoryId *string `min:"10" type:"string" required:"true"` // Indicates whether the data stored on the root volume is encrypted. RootVolumeEncryptionEnabled *bool `type:"boolean"` @@ -7236,8 +8385,8 @@ type WorkspaceRequest struct { // The tags for the WorkSpace. Tags []*Tag `type:"list"` - // The username of the user for the WorkSpace. This username must exist in the - // AWS Directory Service directory for the WorkSpace. + // The user name of the user for the WorkSpace. This user name must exist in + // the AWS Directory Service directory for the WorkSpace. // // UserName is a required field UserName *string `min:"1" type:"string" required:"true"` @@ -7271,6 +8420,9 @@ func (s *WorkspaceRequest) Validate() error { if s.DirectoryId == nil { invalidParams.Add(request.NewErrParamRequired("DirectoryId")) } + if s.DirectoryId != nil && len(*s.DirectoryId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10)) + } if s.UserName == nil { invalidParams.Add(request.NewErrParamRequired("UserName")) } @@ -7342,6 +8494,14 @@ func (s *WorkspaceRequest) SetWorkspaceProperties(v *WorkspaceProperties) *Works return s } +const ( + // AccessPropertyValueAllow is a AccessPropertyValue enum value + AccessPropertyValueAllow = "ALLOW" + + // AccessPropertyValueDeny is a AccessPropertyValue enum value + AccessPropertyValueDeny = "DENY" +) + const ( // ComputeValue is a Compute enum value ComputeValue = "VALUE" @@ -7451,6 +8611,14 @@ const ( TargetWorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE" ) +const ( + // TenancyDedicated is a Tenancy enum value + TenancyDedicated = "DEDICATED" + + // TenancyShared is a Tenancy enum value + TenancyShared = "SHARED" +) + const ( // WorkspaceDirectoryStateRegistering is a WorkspaceDirectoryState enum value WorkspaceDirectoryStateRegistering = "REGISTERING" diff --git a/vendor/github.com/aws/aws-sdk-go/service/workspaces/errors.go b/vendor/github.com/aws/aws-sdk-go/service/workspaces/errors.go index ca1e70285ad2..770e7980bb30 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/workspaces/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/workspaces/errors.go @@ -71,10 +71,29 @@ const ( // The specified resource is not available. ErrCodeResourceUnavailableException = "ResourceUnavailableException" + // ErrCodeUnsupportedNetworkConfigurationException for service response error code + // "UnsupportedNetworkConfigurationException". + // + // The configuration of this network is not supported for this operation, or + // your network configuration conflicts with the Amazon WorkSpaces management + // network IP range. For more information, see Configure a VPC for Amazon WorkSpaces + // (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html). + ErrCodeUnsupportedNetworkConfigurationException = "UnsupportedNetworkConfigurationException" + // ErrCodeUnsupportedWorkspaceConfigurationException for service response error code // "UnsupportedWorkspaceConfigurationException". // // The configuration of this WorkSpace is not supported for this operation. - // For more information, see the Amazon WorkSpaces Administration Guide (https://docs.aws.amazon.com/workspaces/latest/adminguide/). + // For more information, see Required Configuration and Service Components for + // WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html). ErrCodeUnsupportedWorkspaceConfigurationException = "UnsupportedWorkspaceConfigurationException" + + // ErrCodeWorkspacesDefaultRoleNotFoundException for service response error code + // "WorkspacesDefaultRoleNotFoundException". + // + // The workspaces_DefaultRole role could not be found. If this is the first + // time you are registering a directory, you will need to create the workspaces_DefaultRole + // role before you can register a directory. For more information, see Creating + // the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role). + ErrCodeWorkspacesDefaultRoleNotFoundException = "WorkspacesDefaultRoleNotFoundException" ) diff --git a/vendor/modules.txt b/vendor/modules.txt index 5c8afb71a069..fac54671c282 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -21,7 +21,7 @@ github.com/apparentlymart/go-cidr/cidr github.com/apparentlymart/go-textseg/textseg # github.com/armon/go-radix v1.0.0 github.com/armon/go-radix -# github.com/aws/aws-sdk-go v1.25.35 +# github.com/aws/aws-sdk-go v1.25.36 github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/arn github.com/aws/aws-sdk-go/aws/awserr