diff --git a/CHANGELOG.md b/CHANGELOG.md index 03bdaeaff0..aa6ba5991f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +Release v1.40.53 (2021-09-30) +=== + +### Service Client Updates +* `service/account`: Updates service API, documentation, paginators, and examples +* `service/cloudcontrol`: Adds new service +* `service/dataexchange`: Updates service API, documentation, and paginators +* `service/macie2`: Updates service API and documentation +* `service/network-firewall`: Updates service API and documentation +* `service/workmail`: Updates service API, documentation, and paginators + * This release adds support for mobile device access overrides management in Amazon WorkMail. +* `service/workspaces`: Updates service API and documentation + * Added CreateUpdatedWorkspaceImage API to update WorkSpace images with latest software and drivers. Updated DescribeWorkspaceImages API to display if there are updates available for WorkSpace images. + Release v1.40.52 (2021-09-29) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index afae001e5b..a470fd4bc3 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -237,6 +237,19 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "account": service{ + PartitionEndpoint: "aws-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-global": endpoint{ + Hostname: "account.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + }, + }, "acm": service{ Endpoints: endpoints{ @@ -959,11 +972,15 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "athena": service{ @@ -1241,6 +1258,62 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "cloudcontrol": service{ + + Endpoints: endpoints{ + "af-south-1": endpoint{}, + "ap-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-northeast-3": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "cloudcontrolapi-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "cloudcontrolapi-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "cloudcontrolapi-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "cloudcontrolapi-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "cloudcontrolapi-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "clouddirectory": service{ Endpoints: endpoints{ @@ -8079,6 +8152,19 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "account": service{ + PartitionEndpoint: "aws-cn-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-cn-global": endpoint{ + Hostname: "account.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, "acm": service{ Endpoints: endpoints{ @@ -9290,6 +9376,25 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "cloudcontrol": service{ + + Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "cloudcontrolapi-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "cloudcontrolapi-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "clouddirectory": service{ Endpoints: endpoints{ diff --git a/aws/version.go b/aws/version.go index 131f7e594e..3ed25ff98a 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.40.52" +const SDKVersion = "1.40.53" diff --git a/models/apis/account/2021-02-01/api-2.json b/models/apis/account/2021-02-01/api-2.json new file mode 100644 index 0000000000..b0fe503032 --- /dev/null +++ b/models/apis/account/2021-02-01/api-2.json @@ -0,0 +1,217 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-02-01", + "endpointPrefix":"account", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Account", + "serviceId":"Account", + "signatureVersion":"v4", + "signingName":"account", + "uid":"account-2021-02-01" + }, + "operations":{ + "DeleteAlternateContact":{ + "name":"DeleteAlternateContact", + "http":{ + "method":"POST", + "requestUri":"/deleteAlternateContact", + "responseCode":200 + }, + "input":{"shape":"DeleteAlternateContactRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "GetAlternateContact":{ + "name":"GetAlternateContact", + "http":{ + "method":"POST", + "requestUri":"/getAlternateContact", + "responseCode":200 + }, + "input":{"shape":"GetAlternateContactRequest"}, + "output":{"shape":"GetAlternateContactResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ] + }, + "PutAlternateContact":{ + "name":"PutAlternateContact", + "http":{ + "method":"POST", + "requestUri":"/putAlternateContact", + "responseCode":200 + }, + "input":{"shape":"PutAlternateContactRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccountId":{ + "type":"string", + "pattern":"^\\d{12}$" + }, + "AlternateContact":{ + "type":"structure", + "members":{ + "AlternateContactType":{"shape":"AlternateContactType"}, + "EmailAddress":{"shape":"EmailAddress"}, + "Name":{"shape":"Name"}, + "PhoneNumber":{"shape":"PhoneNumber"}, + "Title":{"shape":"Title"} + } + }, + "AlternateContactType":{ + "type":"string", + "enum":[ + "BILLING", + "OPERATIONS", + "SECURITY" + ] + }, + "DeleteAlternateContactRequest":{ + "type":"structure", + "required":["AlternateContactType"], + "members":{ + "AccountId":{"shape":"AccountId"}, + "AlternateContactType":{"shape":"AlternateContactType"} + } + }, + "EmailAddress":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[\\w+=,.-]+@[\\w.-]+\\.[\\w]+", + "sensitive":true + }, + "GetAlternateContactRequest":{ + "type":"structure", + "required":["AlternateContactType"], + "members":{ + "AccountId":{"shape":"AccountId"}, + "AlternateContactType":{"shape":"AlternateContactType"} + } + }, + "GetAlternateContactResponse":{ + "type":"structure", + "members":{ + "AlternateContact":{"shape":"AlternateContact"} + } + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "Name":{ + "type":"string", + "max":64, + "min":1, + "sensitive":true + }, + "PhoneNumber":{ + "type":"string", + "max":25, + "min":1, + "pattern":"^[\\s0-9()+-]+$", + "sensitive":true + }, + "PutAlternateContactRequest":{ + "type":"structure", + "required":[ + "AlternateContactType", + "EmailAddress", + "Name", + "PhoneNumber", + "Title" + ], + "members":{ + "AccountId":{"shape":"AccountId"}, + "AlternateContactType":{"shape":"AlternateContactType"}, + "EmailAddress":{"shape":"EmailAddress"}, + "Name":{"shape":"Name"}, + "PhoneNumber":{"shape":"PhoneNumber"}, + "Title":{"shape":"Title"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "Title":{ + "type":"string", + "max":50, + "min":1, + "sensitive":true + }, + "TooManyRequestsException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + } +} diff --git a/models/apis/account/2021-02-01/docs-2.json b/models/apis/account/2021-02-01/docs-2.json new file mode 100644 index 0000000000..cc750c275d --- /dev/null +++ b/models/apis/account/2021-02-01/docs-2.json @@ -0,0 +1,117 @@ +{ + "version": "2.0", + "service": "

Operations for Amazon Web Services Account Management

", + "operations": { + "DeleteAlternateContact": "

Deletes the specified alternate contact from an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

", + "GetAlternateContact": "

Retrieves the specified alternate contact attached to an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

", + "PutAlternateContact": "

Modifies the specified alternate contact attached to an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

The operation failed because the calling identity doesn't have the minimum required permissions.

", + "refs": { + } + }, + "AccountId": { + "base": null, + "refs": { + "DeleteAlternateContactRequest$AccountId": "

Specifies the 12 digit account ID number of the Amazon Web Services account that you want to access or modify with this operation.

If you do not specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation.

To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account, and the specified account ID must be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId; it must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, then don't specify this parameter, and call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

", + "GetAlternateContactRequest$AccountId": "

Specifies the 12 digit account ID number of the Amazon Web Services account that you want to access or modify with this operation.

If you do not specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation.

To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account, and the specified account ID must be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId; it must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, then don't specify this parameter, and call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

", + "PutAlternateContactRequest$AccountId": "

Specifies the 12 digit account ID number of the Amazon Web Services account that you want to access or modify with this operation.

If you do not specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation.

To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account, and the specified account ID must be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId; it must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, then don't specify this parameter, and call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

" + } + }, + "AlternateContact": { + "base": "

A structure that contains the details of an alternate contact associated with an Amazon Web Services account

", + "refs": { + "GetAlternateContactResponse$AlternateContact": "

A structure that contains the details for the specified alternate contact.

" + } + }, + "AlternateContactType": { + "base": null, + "refs": { + "AlternateContact$AlternateContactType": "

The type of alternate contact.

", + "DeleteAlternateContactRequest$AlternateContactType": "

Specifies which of the alternate contacts to delete.

", + "GetAlternateContactRequest$AlternateContactType": "

Specifies which alternate contact you want to retrieve.

", + "PutAlternateContactRequest$AlternateContactType": "

Specifies which alternate contact you want to create or update.

" + } + }, + "DeleteAlternateContactRequest": { + "base": null, + "refs": { + } + }, + "EmailAddress": { + "base": null, + "refs": { + "AlternateContact$EmailAddress": "

The email address associated with this alternate contact.

", + "PutAlternateContactRequest$EmailAddress": "

Specifies an email address for the alternate contact.

" + } + }, + "GetAlternateContactRequest": { + "base": null, + "refs": { + } + }, + "GetAlternateContactResponse": { + "base": null, + "refs": { + } + }, + "InternalServerException": { + "base": "

The operation failed because of an error internal to Amazon Web Services. Try your operation again later.

", + "refs": { + } + }, + "Name": { + "base": null, + "refs": { + "AlternateContact$Name": "

The name associated with this alternate contact.

", + "PutAlternateContactRequest$Name": "

Specifies a name for the alternate contact.

" + } + }, + "PhoneNumber": { + "base": null, + "refs": { + "AlternateContact$PhoneNumber": "

The phone number associated with this alternate contact.

", + "PutAlternateContactRequest$PhoneNumber": "

Specifies a phone number for the alternate contact.

" + } + }, + "PutAlternateContactRequest": { + "base": null, + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

The operation failed because it specified a resource that can't be found.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "InternalServerException$message": null, + "ResourceNotFoundException$message": null, + "TooManyRequestsException$message": null, + "ValidationException$message": null + } + }, + "Title": { + "base": null, + "refs": { + "AlternateContact$Title": "

The title associated with this alternate contact.

", + "PutAlternateContactRequest$Title": "

Specifies a title for the alternate contact.

" + } + }, + "TooManyRequestsException": { + "base": "

The operation failed because it was called too frequently and exceeded a throttle limit.

", + "refs": { + } + }, + "ValidationException": { + "base": "

The operation failed because one of the input parameters was invalid.

", + "refs": { + } + } + } +} diff --git a/models/apis/account/2021-02-01/examples-1.json b/models/apis/account/2021-02-01/examples-1.json new file mode 100644 index 0000000000..0ea7e3b0bb --- /dev/null +++ b/models/apis/account/2021-02-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/account/2021-02-01/paginators-1.json b/models/apis/account/2021-02-01/paginators-1.json new file mode 100644 index 0000000000..5677bd8e4a --- /dev/null +++ b/models/apis/account/2021-02-01/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/cloudcontrol/2021-09-30/api-2.json b/models/apis/cloudcontrol/2021-09-30/api-2.json new file mode 100644 index 0000000000..c4eb4753a3 --- /dev/null +++ b/models/apis/cloudcontrol/2021-09-30/api-2.json @@ -0,0 +1,662 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-09-30", + "endpointPrefix":"cloudcontrolapi", + "jsonVersion":"1.0", + "protocol":"json", + "serviceAbbreviation":"CloudControlApi", + "serviceFullName":"AWS Cloud Control API", + "serviceId":"CloudControl", + "signatureVersion":"v4", + "signingName":"cloudcontrolapi", + "targetPrefix":"CloudApiService", + "uid":"cloudcontrol-2021-09-30" + }, + "operations":{ + "CancelResourceRequest":{ + "name":"CancelResourceRequest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelResourceRequestInput"}, + "output":{"shape":"CancelResourceRequestOutput"}, + "errors":[ + {"shape":"RequestTokenNotFoundException"}, + {"shape":"ConcurrentModificationException"} + ], + "idempotent":true + }, + "CreateResource":{ + "name":"CreateResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateResourceInput"}, + "output":{"shape":"CreateResourceOutput"}, + "errors":[ + {"shape":"ConcurrentOperationException"}, + {"shape":"ClientTokenConflictException"}, + {"shape":"UnsupportedActionException"}, + {"shape":"TypeNotFoundException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"GeneralServiceException"}, + {"shape":"HandlerInternalFailureException"}, + {"shape":"InvalidCredentialsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NetworkFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotStabilizedException"}, + {"shape":"NotUpdatableException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ServiceInternalErrorException"}, + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"PrivateTypeException"}, + {"shape":"HandlerFailureException"} + ] + }, + "DeleteResource":{ + "name":"DeleteResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourceInput"}, + "output":{"shape":"DeleteResourceOutput"}, + "errors":[ + {"shape":"ConcurrentOperationException"}, + {"shape":"ClientTokenConflictException"}, + {"shape":"UnsupportedActionException"}, + {"shape":"TypeNotFoundException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"GeneralServiceException"}, + {"shape":"HandlerInternalFailureException"}, + {"shape":"InvalidCredentialsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NetworkFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotStabilizedException"}, + {"shape":"NotUpdatableException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ServiceInternalErrorException"}, + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"PrivateTypeException"}, + {"shape":"HandlerFailureException"} + ] + }, + "GetResource":{ + "name":"GetResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceInput"}, + "output":{"shape":"GetResourceOutput"}, + "errors":[ + {"shape":"UnsupportedActionException"}, + {"shape":"TypeNotFoundException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"GeneralServiceException"}, + {"shape":"HandlerInternalFailureException"}, + {"shape":"InvalidCredentialsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NetworkFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotStabilizedException"}, + {"shape":"NotUpdatableException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ServiceInternalErrorException"}, + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"PrivateTypeException"}, + {"shape":"HandlerFailureException"} + ] + }, + "GetResourceRequestStatus":{ + "name":"GetResourceRequestStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceRequestStatusInput"}, + "output":{"shape":"GetResourceRequestStatusOutput"}, + "errors":[ + {"shape":"RequestTokenNotFoundException"} + ] + }, + "ListResourceRequests":{ + "name":"ListResourceRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceRequestsInput"}, + "output":{"shape":"ListResourceRequestsOutput"} + }, + "ListResources":{ + "name":"ListResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourcesInput"}, + "output":{"shape":"ListResourcesOutput"}, + "errors":[ + {"shape":"UnsupportedActionException"}, + {"shape":"TypeNotFoundException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"GeneralServiceException"}, + {"shape":"HandlerInternalFailureException"}, + {"shape":"InvalidCredentialsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NetworkFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotStabilizedException"}, + {"shape":"NotUpdatableException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ServiceInternalErrorException"}, + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"PrivateTypeException"}, + {"shape":"HandlerFailureException"} + ] + }, + "UpdateResource":{ + "name":"UpdateResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateResourceInput"}, + "output":{"shape":"UpdateResourceOutput"}, + "errors":[ + {"shape":"ConcurrentOperationException"}, + {"shape":"ClientTokenConflictException"}, + {"shape":"UnsupportedActionException"}, + {"shape":"TypeNotFoundException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"GeneralServiceException"}, + {"shape":"HandlerInternalFailureException"}, + {"shape":"InvalidCredentialsException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NetworkFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotStabilizedException"}, + {"shape":"NotUpdatableException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ServiceInternalErrorException"}, + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"PrivateTypeException"}, + {"shape":"HandlerFailureException"} + ] + } + }, + "shapes":{ + "AlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "CancelResourceRequestInput":{ + "type":"structure", + "required":["RequestToken"], + "members":{ + "RequestToken":{"shape":"RequestToken"} + } + }, + "CancelResourceRequestOutput":{ + "type":"structure", + "members":{ + "ProgressEvent":{"shape":"ProgressEvent"} + } + }, + "ClientToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[-A-Za-z0-9+/=]+" + }, + "ClientTokenConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ConcurrentOperationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "CreateResourceInput":{ + "type":"structure", + "required":[ + "TypeName", + "DesiredState" + ], + "members":{ + "TypeName":{"shape":"TypeName"}, + "TypeVersionId":{"shape":"TypeVersionId"}, + "RoleArn":{"shape":"RoleArn"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "DesiredState":{"shape":"Properties"} + } + }, + "CreateResourceOutput":{ + "type":"structure", + "members":{ + "ProgressEvent":{"shape":"ProgressEvent"} + } + }, + "DeleteResourceInput":{ + "type":"structure", + "required":[ + "TypeName", + "Identifier" + ], + "members":{ + "TypeName":{"shape":"TypeName"}, + "TypeVersionId":{"shape":"TypeVersionId"}, + "RoleArn":{"shape":"RoleArn"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "Identifier":{"shape":"Identifier"} + } + }, + "DeleteResourceOutput":{ + "type":"structure", + "members":{ + "ProgressEvent":{"shape":"ProgressEvent"} + } + }, + "ErrorMessage":{ + "type":"string", + "max":1024, + "min":1 + }, + "GeneralServiceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "GetResourceInput":{ + "type":"structure", + "required":[ + "TypeName", + "Identifier" + ], + "members":{ + "TypeName":{"shape":"TypeName"}, + "TypeVersionId":{"shape":"TypeVersionId"}, + "RoleArn":{"shape":"RoleArn"}, + "Identifier":{"shape":"Identifier"} + } + }, + "GetResourceOutput":{ + "type":"structure", + "members":{ + "TypeName":{"shape":"TypeName"}, + "ResourceDescription":{"shape":"ResourceDescription"} + } + }, + "GetResourceRequestStatusInput":{ + "type":"structure", + "required":["RequestToken"], + "members":{ + "RequestToken":{"shape":"RequestToken"} + } + }, + "GetResourceRequestStatusOutput":{ + "type":"structure", + "members":{ + "ProgressEvent":{"shape":"ProgressEvent"} + } + }, + "HandlerErrorCode":{ + "type":"string", + "enum":[ + "NotUpdatable", + "InvalidRequest", + "AccessDenied", + "InvalidCredentials", + "AlreadyExists", + "NotFound", + "ResourceConflict", + "Throttling", + "ServiceLimitExceeded", + "NotStabilized", + "GeneralServiceException", + "ServiceInternalError", + "ServiceTimeout", + "NetworkFailure", + "InternalFailure" + ] + }, + "HandlerFailureException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "HandlerInternalFailureException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "HandlerNextToken":{ + "type":"string", + "max":2048, + "min":1, + "pattern":".+" + }, + "Identifier":{ + "type":"string", + "max":1024, + "min":1, + "pattern":".+" + }, + "InvalidCredentialsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListResourceRequestsInput":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"}, + "ResourceRequestStatusFilter":{"shape":"ResourceRequestStatusFilter"} + } + }, + "ListResourceRequestsOutput":{ + "type":"structure", + "members":{ + "ResourceRequestStatusSummaries":{"shape":"ResourceRequestStatusSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListResourcesInput":{ + "type":"structure", + "required":["TypeName"], + "members":{ + "TypeName":{"shape":"TypeName"}, + "TypeVersionId":{"shape":"TypeVersionId"}, + "RoleArn":{"shape":"RoleArn"}, + "NextToken":{"shape":"HandlerNextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "ResourceModel":{"shape":"Properties"} + } + }, + "ListResourcesOutput":{ + "type":"structure", + "members":{ + "TypeName":{"shape":"TypeName"}, + "ResourceDescriptions":{"shape":"ResourceDescriptions"}, + "NextToken":{"shape":"HandlerNextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "NetworkFailureException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[-A-Za-z0-9+/=]+" + }, + "NotStabilizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "NotUpdatableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Operation":{ + "type":"string", + "enum":[ + "CREATE", + "DELETE", + "UPDATE" + ] + }, + "OperationStatus":{ + "type":"string", + "enum":[ + "PENDING", + "IN_PROGRESS", + "SUCCESS", + "FAILED", + "CANCEL_IN_PROGRESS", + "CANCEL_COMPLETE" + ] + }, + "OperationStatuses":{ + "type":"list", + "member":{"shape":"OperationStatus"} + }, + "Operations":{ + "type":"list", + "member":{"shape":"Operation"} + }, + "PatchDocument":{ + "type":"string", + "max":65536, + "min":1, + "pattern":"(.|\\s)*", + "sensitive":true + }, + "PrivateTypeException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ProgressEvent":{ + "type":"structure", + "members":{ + "TypeName":{"shape":"TypeName"}, + "Identifier":{"shape":"Identifier"}, + "RequestToken":{"shape":"RequestToken"}, + "Operation":{"shape":"Operation"}, + "OperationStatus":{"shape":"OperationStatus"}, + "EventTime":{"shape":"Timestamp"}, + "ResourceModel":{"shape":"Properties"}, + "StatusMessage":{"shape":"StatusMessage"}, + "ErrorCode":{"shape":"HandlerErrorCode"}, + "RetryAfter":{"shape":"Timestamp"} + } + }, + "Properties":{ + "type":"string", + "max":16384, + "min":1, + "pattern":"(.|\\s)*", + "sensitive":true + }, + "RequestToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[-A-Za-z0-9+/=]+" + }, + "RequestTokenNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceDescription":{ + "type":"structure", + "members":{ + "Identifier":{"shape":"Identifier"}, + "Properties":{"shape":"Properties"} + } + }, + "ResourceDescriptions":{ + "type":"list", + "member":{"shape":"ResourceDescription"} + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceRequestStatusFilter":{ + "type":"structure", + "members":{ + "Operations":{"shape":"Operations"}, + "OperationStatuses":{"shape":"OperationStatuses"} + } + }, + "ResourceRequestStatusSummaries":{ + "type":"list", + "member":{"shape":"ProgressEvent"} + }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:.+:iam::[0-9]{12}:role/.+" + }, + "ServiceInternalErrorException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ServiceLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "StatusMessage":{ + "type":"string", + "max":1024, + "pattern":"(.|\\s)*" + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "TypeName":{ + "type":"string", + "max":196, + "min":10, + "pattern":"[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}" + }, + "TypeNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "TypeVersionId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[A-Za-z0-9-]+" + }, + "UnsupportedActionException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "UpdateResourceInput":{ + "type":"structure", + "required":[ + "TypeName", + "Identifier", + "PatchDocument" + ], + "members":{ + "TypeName":{"shape":"TypeName"}, + "TypeVersionId":{"shape":"TypeVersionId"}, + "RoleArn":{"shape":"RoleArn"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "Identifier":{"shape":"Identifier"}, + "PatchDocument":{"shape":"PatchDocument"} + } + }, + "UpdateResourceOutput":{ + "type":"structure", + "members":{ + "ProgressEvent":{"shape":"ProgressEvent"} + } + } + } +} diff --git a/models/apis/cloudcontrol/2021-09-30/docs-2.json b/models/apis/cloudcontrol/2021-09-30/docs-2.json new file mode 100644 index 0000000000..98b481f8fb --- /dev/null +++ b/models/apis/cloudcontrol/2021-09-30/docs-2.json @@ -0,0 +1,403 @@ +{ + "version": "2.0", + "service": "

Use Amazon Web Services Cloud Control API to create, read, update, delete, and list (CRUD-L) your cloud resources that belong to a wide range of services--both Amazon Web Services and third-party. With the Cloud Control API standardized set of application programming interfaces (APIs), you can perform CRUD-L operations on any supported resources in your Amazon Web Services account. Using Cloud Control API, you won't have to generate code or scripts specific to each individual service responsible for those resources.

For more information about Amazon Web Services Cloud Control API, see the Amazon Web Services Cloud Control API User Guide.

", + "operations": { + "CancelResourceRequest": "

Cancels the specified resource operation request. For more information, see Canceling resource operation requests in the Amazon Web Services Cloud Control API User Guide.

Only resource operations requests with a status of PENDING or IN_PROGRESS can be cancelled.

", + "CreateResource": "

Creates the specified resource. For more information, see Creating a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource creation request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent type returned by CreateResource.

", + "DeleteResource": "

Deletes the specified resource. For details, see Deleting a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource deletion request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by DeleteResource.

", + "GetResource": "

Returns information about the current state of the specified resource. For details, see Reading a resource's current state.

You can use this action to return information about an existing resource in your account and Amazon Web Services Region, whether or not those resources were provisioned using Cloud Control API.

", + "GetResourceRequestStatus": "

Returns the current status of a resource operation request. For more information, see Tracking the progress of resource operation requests in the Amazon Web Services Cloud Control API User Guide.

", + "ListResourceRequests": "

Returns existing resource operation requests. This includes requests of all status types. For more information, see Listing active resource operation requests in the Amazon Web Services Cloud Control API User Guide.

Resource operation requests expire after seven days.

", + "ListResources": "

Returns information about the specified resources. For more information, see Discovering resources in the Amazon Web Services Cloud Control API User Guide.

You can use this action to return information about existing resources in your account and Amazon Web Services Region, whether or not those resources were provisioned using Cloud Control API.

", + "UpdateResource": "

Updates the specified property values in the resource.

You specify your resource property updates as a list of patch operations contained in a JSON patch document that adheres to the RFC 6902 - JavaScript Object Notation (JSON) Patch standard.

For details on how Cloud Control API performs resource update operations, see Updating a resource in the Amazon Web Services Cloud Control API User Guide.

After you have initiated a resource update request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by UpdateResource.

For more information about the properties of a specific resource, refer to the related topic for the resource in the Resource and property types reference in the Amazon Web Services CloudFormation Users Guide.

" + }, + "shapes": { + "AlreadyExistsException": { + "base": "

The resource with the name requested already exists.

", + "refs": { + } + }, + "CancelResourceRequestInput": { + "base": null, + "refs": { + } + }, + "CancelResourceRequestOutput": { + "base": null, + "refs": { + } + }, + "ClientToken": { + "base": null, + "refs": { + "CreateResourceInput$ClientToken": "

A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distinguish between request retries and new resource requests. You might retry a resource request to ensure that it was successfully received.

A client token is valid for 36 hours once used. After that, a resource request with the same client token is treated as a new request.

If you do not specify a client token, one is generated for inclusion in the request.

For more information, see Ensuring resource operation requests are unique in the Amazon Web Services Cloud Control API User Guide.

", + "DeleteResourceInput$ClientToken": "

A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distinguish between request retries and new resource requests. You might retry a resource request to ensure that it was successfully received.

A client token is valid for 36 hours once used. After that, a resource request with the same client token is treated as a new request.

If you do not specify a client token, one is generated for inclusion in the request.

For more information, see Ensuring resource operation requests are unique in the Amazon Web Services Cloud Control API User Guide.

", + "UpdateResourceInput$ClientToken": "

A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distinguish between request retries and new resource requests. You might retry a resource request to ensure that it was successfully received.

A client token is valid for 36 hours once used. After that, a resource request with the same client token is treated as a new request.

If you do not specify a client token, one is generated for inclusion in the request.

For more information, see Ensuring resource operation requests are unique in the Amazon Web Services Cloud Control API User Guide.

" + } + }, + "ClientTokenConflictException": { + "base": "

The specified client token has already been used in another resource request.

It is best practice for client tokens to be unique for each resource operation request. However, client token expire after 36 hours.

", + "refs": { + } + }, + "ConcurrentModificationException": { + "base": "

The resource is currently being modified by another operation.

", + "refs": { + } + }, + "ConcurrentOperationException": { + "base": "

Another resource operation is currently being performed on this resource.

", + "refs": { + } + }, + "CreateResourceInput": { + "base": null, + "refs": { + } + }, + "CreateResourceOutput": { + "base": null, + "refs": { + } + }, + "DeleteResourceInput": { + "base": null, + "refs": { + } + }, + "DeleteResourceOutput": { + "base": null, + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AlreadyExistsException$Message": null, + "ClientTokenConflictException$Message": null, + "ConcurrentModificationException$Message": null, + "ConcurrentOperationException$Message": null, + "GeneralServiceException$Message": null, + "HandlerFailureException$Message": null, + "HandlerInternalFailureException$Message": null, + "InvalidCredentialsException$Message": null, + "InvalidRequestException$Message": null, + "NetworkFailureException$Message": null, + "NotStabilizedException$Message": null, + "NotUpdatableException$Message": null, + "PrivateTypeException$Message": null, + "RequestTokenNotFoundException$Message": null, + "ResourceConflictException$Message": null, + "ResourceNotFoundException$Message": null, + "ServiceInternalErrorException$Message": null, + "ServiceLimitExceededException$Message": null, + "ThrottlingException$Message": null, + "TypeNotFoundException$Message": null, + "UnsupportedActionException$Message": null + } + }, + "GeneralServiceException": { + "base": "

The resource handler has returned that the downstream service generated an error that does not map to any other handler error code.

", + "refs": { + } + }, + "GetResourceInput": { + "base": null, + "refs": { + } + }, + "GetResourceOutput": { + "base": null, + "refs": { + } + }, + "GetResourceRequestStatusInput": { + "base": null, + "refs": { + } + }, + "GetResourceRequestStatusOutput": { + "base": null, + "refs": { + } + }, + "HandlerErrorCode": { + "base": null, + "refs": { + "ProgressEvent$ErrorCode": "

For requests with a status of FAILED, the associated error code.

For error code definitions, see Handler error codes in the CloudFormation Command Line Interface User Guide for Extension Development.

" + } + }, + "HandlerFailureException": { + "base": "

The resource handler has failed without a returning a more specific error code. This can include timeouts.

", + "refs": { + } + }, + "HandlerInternalFailureException": { + "base": "

The resource handler has returned that an unexpected error occurred within the resource handler.

", + "refs": { + } + }, + "HandlerNextToken": { + "base": null, + "refs": { + "ListResourcesInput$NextToken": "

If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.

", + "ListResourcesOutput$NextToken": "

If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListResources again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null.

" + } + }, + "Identifier": { + "base": null, + "refs": { + "DeleteResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", + "GetResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", + "ProgressEvent$Identifier": "

The primary identifier for the resource.

In some cases, the resource identifier may be available before the resource operation has reached a status of SUCCESS.

", + "ResourceDescription$Identifier": "

The primary identifier for the resource.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

", + "UpdateResourceInput$Identifier": "

The identifier for the resource.

You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary identifiers can be specified as a string or JSON; secondary identifiers must be specified as JSON.

For compound primary identifiers (that is, one that consists of multiple resource properties strung together), to specify the primary identifier as a string, list the property values in the order they are specified in the primary identifier definition, separated by |.

For more information, see Identifying resources in the Amazon Web Services Cloud Control API User Guide.

" + } + }, + "InvalidCredentialsException": { + "base": "

The resource handler has returned that the credentials provided by the user are invalid.

", + "refs": { + } + }, + "InvalidRequestException": { + "base": "

The resource handler has returned that invalid input from the user has generated a generic exception.

", + "refs": { + } + }, + "ListResourceRequestsInput": { + "base": null, + "refs": { + } + }, + "ListResourceRequestsOutput": { + "base": null, + "refs": { + } + }, + "ListResourcesInput": { + "base": null, + "refs": { + } + }, + "ListResourcesOutput": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListResourceRequestsInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

The default is 20.

", + "ListResourcesInput$MaxResults": "

The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results.

The default is 20.

" + } + }, + "NetworkFailureException": { + "base": "

The resource handler has returned that the request could not be completed due to networking issues, such as a failure to receive a response from the server.

", + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "ListResourceRequestsInput$NextToken": "

If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.

", + "ListResourceRequestsOutput$NextToken": "

If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListResources again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null.

" + } + }, + "NotStabilizedException": { + "base": "

The resource handler has returned that the downstream resource failed to complete all of its ready-state checks.

", + "refs": { + } + }, + "NotUpdatableException": { + "base": "

One or more properties included in this resource operation are defined as create-only, and therefore cannot be updated.

", + "refs": { + } + }, + "Operation": { + "base": null, + "refs": { + "Operations$member": null, + "ProgressEvent$Operation": "

The resource operation type.

" + } + }, + "OperationStatus": { + "base": null, + "refs": { + "OperationStatuses$member": null, + "ProgressEvent$OperationStatus": "

The current status of the resource operation request.

" + } + }, + "OperationStatuses": { + "base": null, + "refs": { + "ResourceRequestStatusFilter$OperationStatuses": "

The operation statuses to include in the filter.

" + } + }, + "Operations": { + "base": null, + "refs": { + "ResourceRequestStatusFilter$Operations": "

The operation types to include in the filter.

" + } + }, + "PatchDocument": { + "base": null, + "refs": { + "UpdateResourceInput$PatchDocument": "

A JavaScript Object Notation (JSON) document listing the patch operations that represent the updates to apply to the current resource properties. For details, see Composing the patch document in the Amazon Web Services Cloud Control API User Guide.

" + } + }, + "PrivateTypeException": { + "base": "

Cloud Control API has not received a valid response from the resource handler, due to a configuration error. This includes issues such as the resource handler returning an invalid response, or timing out.

", + "refs": { + } + }, + "ProgressEvent": { + "base": "

Represents the current status of a resource operation request. For more information, see Managing resource operation requests in the Amazon Web Services Cloud Control API User Guide.

", + "refs": { + "CancelResourceRequestOutput$ProgressEvent": null, + "CreateResourceOutput$ProgressEvent": "

Represents the current status of the resource creation request.

After you have initiated a resource creation request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by CreateResource.

", + "DeleteResourceOutput$ProgressEvent": "

Represents the current status of the resource deletion request.

After you have initiated a resource deletion request, you can monitor the progress of your request by calling GetResourceRequestStatus using the RequestToken of the ProgressEvent returned by DeleteResource.

", + "GetResourceRequestStatusOutput$ProgressEvent": "

Represents the current status of the resource operation request.

", + "ResourceRequestStatusSummaries$member": null, + "UpdateResourceOutput$ProgressEvent": "

Represents the current status of the resource update request.

Use the RequestToken of the ProgressEvent with GetResourceRequestStatus to return the current status of a resource operation request.

" + } + }, + "Properties": { + "base": null, + "refs": { + "CreateResourceInput$DesiredState": "

Structured data format representing the desired state of the resource, consisting of that resource's properties and their desired values.

Cloud Control API currently supports JSON as a structured data format.

Specify the desired state as one of the following:

For more information, see Composing the desired state of the resource in the Amazon Web Services Cloud Control API User Guide.

For more information about the properties of a specific resource, refer to the related topic for the resource in the Resource and property types reference in the Amazon Web Services CloudFormation Users Guide.

", + "ListResourcesInput$ResourceModel": "

The resource model to use to select the resources to return.

", + "ProgressEvent$ResourceModel": "

A JSON string containing the resource model, consisting of each resource property and its current value.

", + "ResourceDescription$Properties": "

A list of the resource properties and their current values.

" + } + }, + "RequestToken": { + "base": null, + "refs": { + "CancelResourceRequestInput$RequestToken": "

The RequestToken of the ProgressEvent object returned by the resource operation request.

", + "GetResourceRequestStatusInput$RequestToken": "

A unique token used to track the progress of the resource operation request.

Request tokens are included in the ProgressEvent type returned by a resource operation request.

", + "ProgressEvent$RequestToken": "

The unique token representing this resource operation request.

Use the RequestToken with GetResourceRequestStatus to return the current status of a resource operation request.

" + } + }, + "RequestTokenNotFoundException": { + "base": "

A resource operation with the specified request token cannot be found.

", + "refs": { + } + }, + "ResourceConflictException": { + "base": "

The resource is temporarily unavailable to be acted upon. For example, if the resource is currently undergoing an operation and cannot be acted upon until that operation is finished.

", + "refs": { + } + }, + "ResourceDescription": { + "base": "

Represents information about a provisioned resource.

", + "refs": { + "GetResourceOutput$ResourceDescription": null, + "ResourceDescriptions$member": null + } + }, + "ResourceDescriptions": { + "base": null, + "refs": { + "ListResourcesOutput$ResourceDescriptions": "

Information about the specified resources, including primary identifier and resource model.

" + } + }, + "ResourceNotFoundException": { + "base": "

A resource with the specified identifier cannot be found.

", + "refs": { + } + }, + "ResourceRequestStatusFilter": { + "base": "

The filter criteria to use in determining the requests returned.

", + "refs": { + "ListResourceRequestsInput$ResourceRequestStatusFilter": "

The filter criteria to apply to the requests returned.

" + } + }, + "ResourceRequestStatusSummaries": { + "base": null, + "refs": { + "ListResourceRequestsOutput$ResourceRequestStatusSummaries": "

The requests that match the specified filter criteria.

" + } + }, + "RoleArn": { + "base": null, + "refs": { + "CreateResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "DeleteResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "GetResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "ListResourcesInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

", + "UpdateResourceInput$RoleArn": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) for Cloud Control API to use when performing this resource operation. The role specified must have the permissions required for this operation. The necessary permissions for each event handler are defined in the handlers section of the resource type definition schema.

If you do not specify a role, Cloud Control API uses a temporary session created using your Amazon Web Services user credentials.

For more information, see Specifying credentials in the Amazon Web Services Cloud Control API User Guide.

" + } + }, + "ServiceInternalErrorException": { + "base": "

The resource handler has returned that the downstream service returned an internal error, typically with a 5XX HTTP status code.

", + "refs": { + } + }, + "ServiceLimitExceededException": { + "base": "

The resource handler has returned that a non-transient resource limit was reached on the service side.

", + "refs": { + } + }, + "StatusMessage": { + "base": null, + "refs": { + "ProgressEvent$StatusMessage": "

Any message explaining the current status.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "ProgressEvent$EventTime": "

When the resource operation request was initiated.

", + "ProgressEvent$RetryAfter": "

When to next request the status of this resource operation request.

" + } + }, + "TypeName": { + "base": null, + "refs": { + "CreateResourceInput$TypeName": "

The name of the resource type.

", + "DeleteResourceInput$TypeName": "

The name of the resource type.

", + "GetResourceInput$TypeName": "

The name of the resource type.

", + "GetResourceOutput$TypeName": "

The name of the resource type.

", + "ListResourcesInput$TypeName": "

The name of the resource type.

", + "ListResourcesOutput$TypeName": "

The name of the resource type.

", + "ProgressEvent$TypeName": "

The name of the resource type used in the operation.

", + "UpdateResourceInput$TypeName": "

The name of the resource type.

" + } + }, + "TypeNotFoundException": { + "base": "

The specified extension does not exist in the CloudFormation registry.

", + "refs": { + } + }, + "TypeVersionId": { + "base": null, + "refs": { + "CreateResourceInput$TypeVersionId": "

For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version.

", + "DeleteResourceInput$TypeVersionId": "

For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version.

", + "GetResourceInput$TypeVersionId": "

For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version.

", + "ListResourcesInput$TypeVersionId": "

For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version.

", + "UpdateResourceInput$TypeVersionId": "

For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version.

" + } + }, + "UnsupportedActionException": { + "base": "

The specified resource does not support this resource operation.

", + "refs": { + } + }, + "UpdateResourceInput": { + "base": null, + "refs": { + } + }, + "UpdateResourceOutput": { + "base": null, + "refs": { + } + } + } +} diff --git a/models/apis/cloudcontrol/2021-09-30/examples-1.json b/models/apis/cloudcontrol/2021-09-30/examples-1.json new file mode 100644 index 0000000000..0ea7e3b0bb --- /dev/null +++ b/models/apis/cloudcontrol/2021-09-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/cloudcontrol/2021-09-30/paginators-1.json b/models/apis/cloudcontrol/2021-09-30/paginators-1.json new file mode 100644 index 0000000000..107915ef70 --- /dev/null +++ b/models/apis/cloudcontrol/2021-09-30/paginators-1.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "ListResourceRequests": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListResources": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/models/apis/cloudcontrol/2021-09-30/waiters-2.json b/models/apis/cloudcontrol/2021-09-30/waiters-2.json new file mode 100644 index 0000000000..be633a924a --- /dev/null +++ b/models/apis/cloudcontrol/2021-09-30/waiters-2.json @@ -0,0 +1,31 @@ +{ + "version": 2, + "waiters": { + "ResourceRequestSuccess": { + "description": "Wait until resource operation request is successful", + "operation": "GetResourceRequestStatus", + "delay": 5, + "maxAttempts": 720, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "ProgressEvent.OperationStatus", + "expected": "SUCCESS" + }, + { + "state": "failure", + "matcher": "path", + "argument": "ProgressEvent.OperationStatus", + "expected": "FAILED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "ProgressEvent.OperationStatus", + "expected": "CANCEL_COMPLETE" + } + ] + } + } +} \ No newline at end of file diff --git a/models/apis/dataexchange/2017-07-25/api-2.json b/models/apis/dataexchange/2017-07-25/api-2.json index 54c9cad672..67eba2c021 100644 --- a/models/apis/dataexchange/2017-07-25/api-2.json +++ b/models/apis/dataexchange/2017-07-25/api-2.json @@ -70,6 +70,37 @@ } ] }, + "CreateEventAction": { + "name": "CreateEventAction", + "http": { + "method": "POST", + "requestUri": "/v1/event-actions", + "responseCode": 201 + }, + "input": { + "shape": "CreateEventActionRequest" + }, + "output": { + "shape": "CreateEventActionResponse" + }, + "errors": [ + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ServiceLimitExceededException" + }, + { + "shape": "AccessDeniedException" + } + ] + }, "CreateJob": { "name": "CreateJob", "http": { @@ -85,19 +116,19 @@ }, "errors": [ { - "shape": "ResourceNotFoundException" + "shape": "ValidationException" }, { - "shape": "ThrottlingException" + "shape": "InternalServerException" }, { - "shape": "ValidationException" + "shape": "AccessDeniedException" }, { - "shape": "InternalServerException" + "shape": "ResourceNotFoundException" }, { - "shape": "AccessDeniedException" + "shape": "ThrottlingException" } ] }, @@ -194,6 +225,31 @@ } ] }, + "DeleteEventAction": { + "name": "DeleteEventAction", + "http": { + "method": "DELETE", + "requestUri": "/v1/event-actions/{EventActionId}", + "responseCode": 204 + }, + "input": { + "shape": "DeleteEventActionRequest" + }, + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + } + ] + }, "DeleteRevision": { "name": "DeleteRevision", "http": { @@ -281,6 +337,34 @@ } ] }, + "GetEventAction": { + "name": "GetEventAction", + "http": { + "method": "GET", + "requestUri": "/v1/event-actions/{EventActionId}", + "responseCode": 200 + }, + "input": { + "shape": "GetEventActionRequest" + }, + "output": { + "shape": "GetEventActionResponse" + }, + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + } + ] + }, "GetJob": { "name": "GetJob", "http": { @@ -393,6 +477,34 @@ } ] }, + "ListEventActions": { + "name": "ListEventActions", + "http": { + "method": "GET", + "requestUri": "/v1/event-actions", + "responseCode": 200 + }, + "input": { + "shape": "ListEventActionsRequest" + }, + "output": { + "shape": "ListEventActionsResponse" + }, + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + } + ] + }, "ListJobs": { "name": "ListJobs", "http": { @@ -587,6 +699,37 @@ } ] }, + "UpdateEventAction": { + "name": "UpdateEventAction", + "http": { + "method": "PATCH", + "requestUri": "/v1/event-actions/{EventActionId}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateEventActionRequest" + }, + "output": { + "shape": "UpdateEventActionResponse" + }, + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + } + ] + }, "UpdateRevision": { "name": "UpdateRevision", "http": { @@ -638,6 +781,14 @@ "httpStatusCode": 403 } }, + "Action": { + "type": "structure", + "members": { + "ExportRevisionToS3": { + "shape": "AutoExportRevisionToS3RequestDetails" + } + } + }, "Arn": { "type": "string" }, @@ -737,6 +888,34 @@ "S3_SNAPSHOT" ] }, + "AutoExportRevisionDestinationEntry": { + "type": "structure", + "members": { + "Bucket": { + "shape": "__string" + }, + "KeyPattern": { + "shape": "__string" + } + }, + "required": [ + "Bucket" + ] + }, + "AutoExportRevisionToS3RequestDetails": { + "type": "structure", + "members": { + "Encryption": { + "shape": "ExportServerSideEncryption" + }, + "RevisionDestination": { + "shape": "AutoExportRevisionDestinationEntry" + } + }, + "required": [ + "RevisionDestination" + ] + }, "CancelJobRequest": { "type": "structure", "members": { @@ -843,6 +1022,44 @@ } } }, + "CreateEventActionRequest": { + "type": "structure", + "members": { + "Action": { + "shape": "Action" + }, + "Event": { + "shape": "Event" + } + }, + "required": [ + "Action", + "Event" + ] + }, + "CreateEventActionResponse": { + "type": "structure", + "members": { + "Action": { + "shape": "Action" + }, + "Arn": { + "shape": "Arn" + }, + "CreatedAt": { + "shape": "Timestamp" + }, + "Event": { + "shape": "Event" + }, + "Id": { + "shape": "Id" + }, + "UpdatedAt": { + "shape": "Timestamp" + } + } + }, "CreateJobRequest": { "type": "structure", "members": { @@ -1021,6 +1238,19 @@ "DataSetId" ] }, + "DeleteEventActionRequest": { + "type": "structure", + "members": { + "EventActionId": { + "shape": "__string", + "location": "uri", + "locationName": "EventActionId" + } + }, + "required": [ + "EventActionId" + ] + }, "DeleteRevisionRequest": { "type": "structure", "members": { @@ -1054,6 +1284,52 @@ } } }, + "Event": { + "type": "structure", + "members": { + "RevisionPublished": { + "shape": "RevisionPublished" + } + } + }, + "EventActionEntry": { + "type": "structure", + "members": { + "Action": { + "shape": "Action" + }, + "Arn": { + "shape": "Arn" + }, + "CreatedAt": { + "shape": "Timestamp" + }, + "Event": { + "shape": "Event" + }, + "Id": { + "shape": "Id" + }, + "UpdatedAt": { + "shape": "Timestamp" + } + }, + "required": [ + "Action", + "CreatedAt", + "Event", + "Id", + "Arn", + "UpdatedAt" + ] + }, + "ExceptionCause": { + "type": "string", + "enum": [ + "InsufficientS3BucketPolicy", + "S3AccessDenied" + ] + }, "ExportAssetToSignedUrlRequestDetails": { "type": "structure", "members": { @@ -1169,6 +1445,9 @@ "Encryption": { "shape": "ExportServerSideEncryption" }, + "EventActionArn": { + "shape": "__string" + }, "RevisionDestinations": { "shape": "ListOfRevisionDestinationEntry" } @@ -1303,6 +1582,42 @@ } } }, + "GetEventActionRequest": { + "type": "structure", + "members": { + "EventActionId": { + "shape": "__string", + "location": "uri", + "locationName": "EventActionId" + } + }, + "required": [ + "EventActionId" + ] + }, + "GetEventActionResponse": { + "type": "structure", + "members": { + "Action": { + "shape": "Action" + }, + "Arn": { + "shape": "Arn" + }, + "CreatedAt": { + "shape": "Timestamp" + }, + "Event": { + "shape": "Event" + }, + "Id": { + "shape": "Id" + }, + "UpdatedAt": { + "shape": "Timestamp" + } + } + }, "GetJobRequest": { "type": "structure", "members": { @@ -1429,8 +1744,8 @@ "required": [ "DataSetId", "Md5Hash", - "RevisionId", - "AssetName" + "AssetName", + "RevisionId" ] }, "ImportAssetFromSignedUrlResponseDetails": { @@ -1593,7 +1908,8 @@ "type": "string", "enum": [ "REVISION", - "ASSET" + "ASSET", + "DATA_SET" ] }, "LimitName": { @@ -1610,7 +1926,10 @@ "Concurrent in progress jobs to import assets from Amazon S3", "Concurrent in progress jobs to import assets from a signed URL", "Concurrent in progress jobs to export assets to Amazon S3", - "Concurrent in progress jobs to export assets to a signed URL" + "Concurrent in progress jobs to export assets to a signed URL", + "Concurrent in progress jobs to export revisions to Amazon S3", + "Event actions per account", + "Auto export event actions per data set" ] }, "ListDataSetRevisionsRequest": { @@ -1678,6 +1997,37 @@ } } }, + "ListEventActionsRequest": { + "type": "structure", + "members": { + "EventSourceId": { + "shape": "__string", + "location": "querystring", + "locationName": "eventSourceId" + }, + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListEventActionsResponse": { + "type": "structure", + "members": { + "EventActions": { + "shape": "ListOfEventActionEntry" + }, + "NextToken": { + "shape": "NextToken" + } + } + }, "ListJobsRequest": { "type": "structure", "members": { @@ -1870,7 +2220,8 @@ "DATA_SET", "REVISION", "ASSET", - "JOB" + "JOB", + "EVENT_ACTION" ] }, "ResponseDetails": { @@ -1947,6 +2298,17 @@ "UpdatedAt" ] }, + "RevisionPublished": { + "type": "structure", + "members": { + "DataSetId": { + "shape": "Id" + } + }, + "required": [ + "DataSetId" + ] + }, "S3SnapshotAsset": { "type": "structure", "members": { @@ -2198,6 +2560,45 @@ } } }, + "UpdateEventActionRequest": { + "type": "structure", + "members": { + "Action": { + "shape": "Action" + }, + "EventActionId": { + "shape": "__string", + "location": "uri", + "locationName": "EventActionId" + } + }, + "required": [ + "EventActionId" + ] + }, + "UpdateEventActionResponse": { + "type": "structure", + "members": { + "Action": { + "shape": "Action" + }, + "Arn": { + "shape": "Arn" + }, + "CreatedAt": { + "shape": "Timestamp" + }, + "Event": { + "shape": "Event" + }, + "Id": { + "shape": "Id" + }, + "UpdatedAt": { + "shape": "Timestamp" + } + } + }, "UpdateRevisionRequest": { "type": "structure", "members": { @@ -2257,6 +2658,9 @@ "members": { "Message": { "shape": "__string" + }, + "ExceptionCause": { + "shape": "ExceptionCause" } }, "required": [ @@ -2288,6 +2692,12 @@ "shape": "DataSetEntry" } }, + "ListOfEventActionEntry": { + "type": "list", + "member": { + "shape": "EventActionEntry" + } + }, "ListOfJobEntry": { "type": "list", "member": { diff --git a/models/apis/dataexchange/2017-07-25/docs-2.json b/models/apis/dataexchange/2017-07-25/docs-2.json index 0fc3738cb5..8f846e91c1 100644 --- a/models/apis/dataexchange/2017-07-25/docs-2.json +++ b/models/apis/dataexchange/2017-07-25/docs-2.json @@ -4,17 +4,21 @@ "operations" : { "CancelJob" : "

This operation cancels a job. Jobs can be cancelled only when they are in the WAITING state.

", "CreateDataSet" : "

This operation creates a data set.

", + "CreateEventAction" : "

This operation creates an event action.

", "CreateJob" : "

This operation creates a job.

", "CreateRevision" : "

This operation creates a revision for a data set.

", "DeleteAsset" : "

This operation deletes an asset.

", "DeleteDataSet" : "

This operation deletes a data set.

", + "DeleteEventAction" : "

This operation deletes the event action.

", "DeleteRevision" : "

This operation deletes a revision.

", "GetAsset" : "

This operation returns information about an asset.

", "GetDataSet" : "

This operation returns information about a data set.

", + "GetEventAction" : "

This operation retrieves information about an event action.

", "GetJob" : "

This operation returns information about a job.

", "GetRevision" : "

This operation returns information about a revision.

", "ListDataSetRevisions" : "

This operation lists a data set's revisions sorted by CreatedAt in descending order.

", "ListDataSets" : "

This operation lists your data sets. When listing by origin OWNED, results are sorted by CreatedAt in descending order. When listing by origin ENTITLED, there is no order and the maxResults parameter is ignored.

", + "ListEventActions" : "

This operation lists your event actions.

", "ListJobs" : "

This operation lists your jobs sorted by CreatedAt in descending order.

", "ListRevisionAssets" : "

This operation lists a revision's assets sorted alphabetically in descending order.

", "ListTagsForResource" : "

This operation lists the tags on the resource.

", @@ -23,6 +27,7 @@ "UntagResource" : "

This operation removes one or more tags from a resource.

", "UpdateAsset" : "

This operation updates an asset.

", "UpdateDataSet" : "

This operation updates a data set.

", + "UpdateEventAction" : "

This operation updates the event action.

", "UpdateRevision" : "

This operation updates a revision.

" }, "shapes" : { @@ -30,6 +35,15 @@ "base" : "

Access to the resource is denied.

", "refs" : { } }, + "Action" : { + "base" : null, + "refs" : { + "CreateEventActionRequest$Action" : "

What occurs after a certain event.

", + "EventAction$Action" : "

What occurs after a certain event.

", + "EventActionEntry$Action" : "

What occurs after a certain event.

", + "UpdateEventActionRequest$Action" : "

What occurs after a certain event.

" + } + }, "Arn" : { "base" : "

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

", "refs" : { @@ -37,6 +51,8 @@ "AssetEntry$Arn" : "

The ARN for the asset.

", "DataSet$Arn" : "

The ARN for the data set.

", "DataSetEntry$Arn" : "

The ARN for the data set.

", + "EventAction$Arn" : "

The ARN for the event action.

", + "EventActionEntry$Arn" : "

The ARN for the event action.

", "Job$Arn" : "

The ARN for the job.

", "JobEntry$Arn" : "

The ARN for the job.

", "Revision$Arn" : "

The ARN for the revision.

", @@ -96,6 +112,18 @@ "TaggedDataSet$AssetType" : "

The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.

" } }, + "AutoExportRevisionDestinationEntry" : { + "base" : "

A revision destination is the Amazon S3 bucket folder destination to where the export will be sent.

", + "refs" : { + "AutoExportRevisionToS3RequestDetails$RevisionDestination" : null + } + }, + "AutoExportRevisionToS3RequestDetails" : { + "base" : "

Details of the operation to be performed by the job.

", + "refs" : { + "Action$ExportRevisionToS3" : null + } + }, "Code" : { "base" : null, "refs" : { @@ -110,6 +138,10 @@ "base" : "

A request to create a data set that contains one or more revisions.

", "refs" : { } }, + "CreateEventActionRequest" : { + "base" : "

A request to create an event action.

", + "refs" : { } + }, "CreateJobRequest" : { "base" : "

The CreateJob request. AWS Data Exchange Jobs are asynchronous import or export operations used to create or copy assets. A data set owner can both import and export assets. A subscriber with an entitlement to a data set can only export. Jobs are deleted 90 days after they are created. Created jobs must be started with the StartJob operation.

", "refs" : { } @@ -144,6 +176,30 @@ "JobError$Details" : null } }, + "Event" : { + "base" : null, + "refs" : { + "CreateEventActionRequest$Event" : "

What occurs to start an action.

", + "EventAction$Event" : "

What occurs to start an action.

", + "EventActionEntry$Event" : "

What occurs to start an action.

" + } + }, + "EventAction" : { + "base" : "

An event action is an object that defines the relationship between a specific event and an automated action that will be taken on behalf of the customer.

", + "refs" : { } + }, + "EventActionEntry" : { + "base" : "

An event action is an object that defines the relationship between a specific event and an automated action that will be taken on behalf of the customer.

", + "refs" : { + "ListOfEventActionEntry$member" : null + } + }, + "ExceptionCause" : { + "base" : null, + "refs" : { + "ValidationException$ExceptionCause" : "

The message that informs you about what the exception was.

" + } + }, "ExportAssetToSignedUrlRequestDetails" : { "base" : "

Details of the operation to be performed by the job.

", "refs" : { @@ -181,8 +237,9 @@ } }, "ExportServerSideEncryption" : { - "base" : "

Encryption configuration of the export job. Includes the encryption type as well as the AWS KMS key. The KMS key is only necessary if you chose the KMS encryption type.

", + "base" : "

Encryption configuration of the export job. Includes the encryption type in addition to the AWS KMS key. The KMS key is only necessary if you chose the KMS encryption. type.

", "refs" : { + "AutoExportRevisionToS3RequestDetails$Encryption" : null, "ExportAssetsToS3RequestDetails$Encryption" : "

Encryption configuration for the export job.

", "ExportAssetsToS3ResponseDetails$Encryption" : "

Encryption configuration of the export job.

", "ExportRevisionsToS3RequestDetails$Encryption" : "

Encryption configuration for the export job.

", @@ -205,6 +262,8 @@ "DataSet$SourceId" : "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

", "DataSetEntry$Id" : "

The unique identifier for the data set.

", "DataSetEntry$SourceId" : "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

", + "EventAction$Id" : "

The unique identifier for the event action.

", + "EventActionEntry$Id" : "

The unique identifier for the event action.

", "ExportAssetToSignedUrlRequestDetails$AssetId" : "

The unique identifier for the asset that is exported to a signed URL.

", "ExportAssetToSignedUrlRequestDetails$DataSetId" : "

The unique identifier for the data set associated with this export job.

", "ExportAssetToSignedUrlRequestDetails$RevisionId" : "

The unique identifier for the revision associated with this export request.

", @@ -234,6 +293,7 @@ "RevisionEntry$DataSetId" : "

The unique identifier for the data set associated with this revision.

", "RevisionEntry$Id" : "

The unique identifier for the revision.

", "RevisionEntry$SourceId" : "

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

", + "RevisionPublished$DataSetId" : null, "TaggedDataSet$Id" : "

The unique identifier for the data set.

", "TaggedDataSet$SourceId" : "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

", "TaggedRevision$DataSetId" : "

The unique identifier for the data set associated with this revision.

", @@ -332,6 +392,10 @@ "base" : "

The data set objects listed by the request.

", "refs" : { } }, + "ListOfEventActions" : { + "base" : "

The event entry oobjects listed by the request.

", + "refs" : { } + }, "ListOfJobs" : { "base" : "

The token value retrieved from a previous call to access the next page of results.

", "refs" : { } @@ -362,6 +426,7 @@ "refs" : { "ListOfAssets$NextToken" : "

The token value retrieved from a previous call to access the next page of results.

", "ListOfDataSets$NextToken" : "

The token value retrieved from a previous call to access the next page of results.

", + "ListOfEventActions$NextToken" : "

The token value retrieved from a previous call to access the next page of results.

", "ListOfJobs$NextToken" : "

The token value retrieved from a previous call to access the next page of results.

", "ListOfRevisions$NextToken" : "

The token value retrieved from a previous call to access the next page of results.

" } @@ -422,6 +487,12 @@ "ListOfRevisionEntry$member" : null } }, + "RevisionPublished" : { + "base" : null, + "refs" : { + "Event$RevisionPublished" : null + } + }, "S3SnapshotAsset" : { "base" : "

The S3 object that is the asset.

", "refs" : { @@ -476,6 +547,10 @@ "DataSet$UpdatedAt" : "

The date and time that the data set was last updated, in ISO 8601 format.

", "DataSetEntry$CreatedAt" : "

The date and time that the data set was created, in ISO 8601 format.

", "DataSetEntry$UpdatedAt" : "

The date and time that the data set was last updated, in ISO 8601 format.

", + "EventAction$CreatedAt" : "

The date and time that the event action was created, in ISO 8601 format.

", + "EventAction$UpdatedAt" : "

The date and time that the event action was last updated, in ISO 8601 format.

", + "EventActionEntry$CreatedAt" : "

The date and time that the event action was created, in ISO 8601 format.

", + "EventActionEntry$UpdatedAt" : "

The date and time that the event action was last updated, in ISO 8601 format.

", "ExportAssetToSignedUrlResponseDetails$SignedUrlExpiresAt" : "

The date and time that the signed URL expires, in ISO 8601 format.

", "ImportAssetFromSignedUrlResponseDetails$SignedUrlExpiresAt" : "

The time and date at which the signed URL expires, in ISO 8601 format.

", "Job$CreatedAt" : "

The date and time that the job was created, in ISO 8601 format.

", @@ -508,6 +583,10 @@ "base" : "

The request to update a data set.

", "refs" : { } }, + "UpdateEventActionRequest" : { + "base" : "

The request to update an event action.

", + "refs" : { } + }, "UpdateRevisionRequest" : { "base" : "

The request to update a revision.

", "refs" : { } @@ -550,6 +629,12 @@ "ListOfDataSets$DataSets" : "

The data set objects listed by the request.

" } }, + "ListOfEventActionEntry" : { + "base" : null, + "refs" : { + "ListOfEventActions$EventActions" : "

The event action objects listed by the request.

" + } + }, "ListOfJobEntry" : { "base" : null, "refs" : { @@ -587,10 +672,13 @@ "AssetDestinationEntry$Key" : "

The name of the object in Amazon S3 for the asset.

", "AssetSourceEntry$Bucket" : "

The S3 bucket that's part of the source of the asset.

", "AssetSourceEntry$Key" : "

The name of the object in Amazon S3 for the asset.

", + "AutoExportRevisionDestinationEntry$Bucket" : "

The S3 bucket that is the destination for the event action.

", + "AutoExportRevisionDestinationEntry$KeyPattern" : "

A string representing the pattern for generated names of the individual assets in the revision. For more information about key patterns, see Key patterns when exporting revisions.

", "ConflictException$Message" : "

The request couldn't be completed because it conflicted with the current state of the resource.

", "ConflictException$ResourceId" : "

The unique identifier for the resource with the conflict.

", "ExportAssetToSignedUrlResponseDetails$SignedUrl" : "

The signed URL for the export request.

", - "ExportServerSideEncryption$KmsKeyArn" : "

The Amazon Resource Name (ARN) of the the AWS KMS key you want to use to encrypt the Amazon S3 objects. This parameter is required if you choose aws:kms as an encryption type.

", + "ExportRevisionsToS3ResponseDetails$EventActionArn": "

The ARN for the event action.

", + "ExportServerSideEncryption$KmsKeyArn" : "

The Amazon Resource Name (ARN) of the AWS KMS key you want to use to encrypt the Amazon S3 objects. This parameter is required if you choose aws:kms as an encryption type.

", "ImportAssetFromSignedUrlResponseDetails$SignedUrl" : "

The signed URL.

", "InternalServerException$Message" : "The message identifying the service exception that occurred.", "JobError$Message" : "The message related to the job error.", diff --git a/models/apis/dataexchange/2017-07-25/paginators-1.json b/models/apis/dataexchange/2017-07-25/paginators-1.json index d76ccf7f38..4a2636d02c 100644 --- a/models/apis/dataexchange/2017-07-25/paginators-1.json +++ b/models/apis/dataexchange/2017-07-25/paginators-1.json @@ -12,6 +12,12 @@ "limit_key": "MaxResults", "result_key": "DataSets" }, + "ListEventActions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "EventActions" + }, "ListJobs": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/macie2/2020-01-01/api-2.json b/models/apis/macie2/2020-01-01/api-2.json index 6958e04607..5401a5bf5f 100644 --- a/models/apis/macie2/2020-01-01/api-2.json +++ b/models/apis/macie2/2020-01-01/api-2.json @@ -2448,6 +2448,14 @@ "shape": "__long", "locationName": "classifiableSizeInBytes" }, + "errorCode": { + "shape": "BucketMetadataErrorCode", + "locationName": "errorCode" + }, + "errorMessage": { + "shape": "__string", + "locationName": "errorMessage" + }, "jobDetails": { "shape": "JobDetails", "locationName": "jobDetails" @@ -2510,6 +2518,12 @@ } } }, + "BucketMetadataErrorCode": { + "type": "string", + "enum": [ + "ACCESS_DENIED" + ] + }, "BucketPermissionConfiguration": { "type": "structure", "members": { @@ -4864,6 +4878,14 @@ "shape": "__long", "locationName": "classifiableSizeInBytes" }, + "errorCode": { + "shape": "BucketMetadataErrorCode", + "locationName": "errorCode" + }, + "errorMessage": { + "shape": "__string", + "locationName": "errorMessage" + }, "jobDetails": { "shape": "JobDetails", "locationName": "jobDetails" diff --git a/models/apis/macie2/2020-01-01/docs-2.json b/models/apis/macie2/2020-01-01/docs-2.json index 1a4ed39d56..f9c578d78e 100644 --- a/models/apis/macie2/2020-01-01/docs-2.json +++ b/models/apis/macie2/2020-01-01/docs-2.json @@ -194,11 +194,18 @@ } }, "BucketMetadata" : { - "base" : "

Provides information about an S3 bucket that Amazon Macie monitors and analyzes.

", + "base" : "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for most of these properties is null. Exceptions are accountId, bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify the cause of the error, refer to the errorCode and errorMessage values.

", "refs" : { "__listOfBucketMetadata$member" : null } }, + "BucketMetadataErrorCode" : { + "base" : "

The error code for an error that prevented Amazon Macie from retrieving and processing information about an S3 bucket and the bucket's objects.

", + "refs" : { + "BucketMetadata$ErrorCode" : "

Specifies the error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

", + "MatchingBucket$ErrorCode" : "

Specifies the error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

" + } + }, "BucketPermissionConfiguration" : { "base" : "

Provides information about the account-level and bucket-level permissions settings for an S3 bucket.

", "refs" : { @@ -417,7 +424,7 @@ "refs" : { } }, "DescribeBucketsResponse" : { - "base" : "

Provides the results of a query that retrieved statistical data and other information about one or more S3 buckets that Amazon Macie monitors and analyzes.

", + "base" : "

Provides the results of a query that retrieved statistical data and other information about one or more S3 buckets that Amazon Macie monitors and analyzes for your account.

", "refs" : { } }, "DescribeClassificationJobResponse" : { @@ -561,7 +568,7 @@ "refs" : { } }, "GetBucketStatisticsResponse" : { - "base" : "

Provides the results of a query that retrieved aggregated statistical data for all the S3 buckets that Amazon Macie monitors and analyzes for an account.

", + "base" : "

Provides the results of a query that retrieved aggregated statistical data for all the S3 buckets that Amazon Macie monitors and analyzes for your account.

", "refs" : { } }, "GetClassificationExportConfigurationResponse" : { @@ -887,13 +894,13 @@ } }, "MatchingBucket" : { - "base" : "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes.

", + "base" : "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for most of these properties is null. Exceptions are accountId and bucketName. To identify the cause of the error, refer to the errorCode and errorMessage values.

", "refs" : { "MatchingResource$MatchingBucket" : "

The details of an S3 bucket that Amazon Macie monitors and analyzes.

" } }, "MatchingResource" : { - "base" : "

Provides statistical data and other information about an Amazon Web Services resource that Amazon Macie monitors and analyzes.

", + "base" : "

Provides statistical data and other information about an Amazon Web Services resource that Amazon Macie monitors and analyzes for your account.

", "refs" : { "__listOfMatchingResource$member" : null } @@ -918,7 +925,7 @@ } }, "ObjectLevelStatistics" : { - "base" : "

Provides information about the total storage size (in bytes) or number of objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse object, this data is aggregated for all the buckets in the query results. If versioning is enabled for a bucket, total storage size values are based on the size of the latest version of each applicable object in the bucket.

", + "base" : "

Provides information about the total storage size (in bytes) or number of objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse object, this data is aggregated for the buckets in the query results. If versioning is enabled for a bucket, total storage size values are based on the size of the latest version of each applicable object in the bucket.

", "refs" : { "BucketMetadata$UnclassifiableObjectCount" : "

The total number of objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.

", "BucketMetadata$UnclassifiableObjectSizeInBytes" : "

The total storage size, in bytes, of the objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.

", @@ -1114,7 +1121,7 @@ "refs" : { } }, "SearchResourcesResponse" : { - "base" : "

Provides the results of a query that retrieved statistical data and other information about Amazon Web Services resources that Amazon Macie monitors and analyzes.

", + "base" : "

Provides the results of a query that retrieved statistical data and other information about Amazon Web Services resources that Amazon Macie monitors and analyzes for your account.

", "refs" : { } }, "SearchResourcesSimpleCriterion" : { @@ -1348,7 +1355,7 @@ "Type" : { "base" : null, "refs" : { - "BucketServerSideEncryption$Type" : "

The type of server-side encryption that's used by default when storing new objects in the bucket. Possible values are:

" + "BucketServerSideEncryption$Type" : "

The type of server-side encryption that's used by default when storing new objects in the bucket. Possible values are:

" } }, "Unit" : { @@ -1715,7 +1722,7 @@ "refs" : { "BatchGetCustomDataIdentifiersRequest$Ids" : "

An array of custom data identifier IDs, one for each custom data identifier to retrieve information about.

", "BatchGetCustomDataIdentifiersResponse$NotFoundIdentifierIds" : "

An array of custom data identifier IDs, one for each custom data identifier that was specified in the request but doesn't correlate to an existing custom data identifier.

", - "BucketCriteriaAdditionalProperties$Eq" : "

The value for the property matches (equals) the specified value. If you specify multiple values, Macie uses OR logic to join the values.

", + "BucketCriteriaAdditionalProperties$Eq" : "

The value for the property matches (equals) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values.

", "BucketCriteriaAdditionalProperties$Neq" : "

The value for the property doesn't match (doesn't equal) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values.

", "CreateClassificationJobRequest$CustomDataIdentifierIds" : "

An array of unique identifiers, one for each custom data identifier for the job to use when it analyzes data. To use only managed data identifiers, don't specify a value for this property and specify a value other than NONE for the managedDataIdentifierSelector property.

", "CreateClassificationJobRequest$ManagedDataIdentifierIds" : "

An array of unique identifiers, one for each managed data identifier for the job to include (use) or exclude (not use) when it analyzes data. Inclusion or exclusion depends on the managed data identifier selection type that you specify for the job (managedDataIdentifierSelector).

To retrieve a list of valid values for this property, use the ListManagedDataIdentifiers operation.

", @@ -1751,7 +1758,7 @@ "BucketCountByEffectivePermission$PubliclyReadable" : "

The total number of buckets that allow the general public to have read access to the bucket.

", "BucketCountByEffectivePermission$PubliclyWritable" : "

The total number of buckets that allow the general public to have write access to the bucket.

", "BucketCountByEffectivePermission$Unknown" : "

The total number of buckets that Amazon Macie wasn't able to evaluate permissions settings for. Macie can't determine whether these buckets are publicly accessible.

", - "BucketCountByEncryptionType$KmsManaged" : "

The total number of buckets that use an Key Management Service (KMS) customer master key (CMK) to encrypt new objects by default. These buckets use Amazon Web Services managed KMS encryption (AWS-KMS) or customer managed KMS encryption (SSE-KMS) by default.

", + "BucketCountByEncryptionType$KmsManaged" : "

The total number of buckets that use an KMS key to encrypt new objects by default, either an Amazon Web Services managed key or a customer managed key. These buckets use KMS encryption (SSE-KMS) by default.

", "BucketCountByEncryptionType$S3Managed" : "

The total number of buckets that use an Amazon S3 managed key to encrypt new objects by default. These buckets use Amazon S3 managed encryption (SSE-S3) by default.

", "BucketCountByEncryptionType$Unencrypted" : "

The total number of buckets that don't encrypt new objects by default. Default encryption is disabled for these buckets.

", "BucketCountByEncryptionType$Unknown" : "

The total number of buckets that Amazon Macie doesn't have current encryption metadata for. Macie can't provide current data about the default encryption settings for these buckets.

", @@ -1770,7 +1777,7 @@ "BucketMetadata$ClassifiableSizeInBytes" : "

The total storage size, in bytes, of the objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.

If versioning is enabled for the bucket, Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

", "BucketMetadata$ObjectCount" : "

The total number of objects in the bucket.

", "BucketMetadata$SizeInBytes" : "

The total storage size, in bytes, of the bucket.

If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each object in the bucket. This value doesn't reflect the storage size of all versions of each object in the bucket.

", - "BucketMetadata$SizeInBytesCompressed" : "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the bucket.

If versioning is enabled for the bucket, Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

", + "BucketMetadata$SizeInBytesCompressed" : "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the bucket.

If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

", "Cell$Column" : "

The column number of the column that contains the sensitive data. For a Microsoft Excel workbook, this value correlates to the alphabetical character(s) for a column identifier, for example: 1 for column A, 2 for column B, and so on.

", "Cell$Row" : "

The row number of the row that contains the sensitive data.

", "ClassificationResult$SizeClassified" : "

The total size, in bytes, of the data that the finding applies to.

", @@ -1786,17 +1793,17 @@ "GetBucketStatisticsResponse$ClassifiableObjectCount" : "

The total number of objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.

", "GetBucketStatisticsResponse$ClassifiableSizeInBytes" : "

The total storage size, in bytes, of all the objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.

If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of all applicable objects in the buckets.

", "GetBucketStatisticsResponse$ObjectCount" : "

The total number of objects in the buckets.

", - "GetBucketStatisticsResponse$SizeInBytes" : "

The total storage size, in bytes, of the buckets.

If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each object in those buckets. This value doesn't reflect the storage size of all versions of the objects in the buckets.

", - "GetBucketStatisticsResponse$SizeInBytesCompressed" : "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the buckets.

If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of the applicable objects in the buckets.

", + "GetBucketStatisticsResponse$SizeInBytes" : "

The total storage size, in bytes, of the buckets.

If versioning is enabled for any of the buckets, Amazon Macie calculates this value based on the size of the latest version of each object in those buckets. This value doesn't reflect the storage size of all versions of the objects in the buckets.

", + "GetBucketStatisticsResponse$SizeInBytesCompressed" : "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the buckets.

If versioning is enabled for any of the buckets, Amazon Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of the applicable objects in the buckets.

", "GetInvitationsCountResponse$InvitationsCount" : "

The total number of invitations that were received by the account, not including the currently accepted invitation.

", "GroupCount$Count" : "

The total number of findings in the group of query results.

", "MatchingBucket$ClassifiableObjectCount" : "

The total number of objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.

", "MatchingBucket$ClassifiableSizeInBytes" : "

The total storage size, in bytes, of the objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.

If versioning is enabled for the bucket, Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

", "MatchingBucket$ObjectCount" : "

The total number of objects in the bucket.

", "MatchingBucket$SizeInBytes" : "

The total storage size, in bytes, of the bucket.

If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each object in the bucket. This value doesn't reflect the storage size of all versions of each object in the bucket.

", - "MatchingBucket$SizeInBytesCompressed" : "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the bucket.

If versioning is enabled for the bucket, Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

", - "ObjectCountByEncryptionType$CustomerManaged" : "

The total number of objects that are encrypted with a customer-managed key. The objects use customer-provided server-side encryption (SSE-C).

", - "ObjectCountByEncryptionType$KmsManaged" : "

The total number of objects that are encrypted with an Key Management Service (KMS) customer master key (CMK). The objects use Amazon Web Services managed KMS encryption (AWS-KMS) or customer managed KMS encryption (SSE-KMS).

", + "MatchingBucket$SizeInBytesCompressed" : "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the bucket.

If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

", + "ObjectCountByEncryptionType$CustomerManaged" : "

The total number of objects that are encrypted with a customer-provided key. The objects use customer-provided server-side encryption (SSE-C).

", + "ObjectCountByEncryptionType$KmsManaged" : "

The total number of objects that are encrypted with an KMS key, either an Amazon Web Services managed key or a customer managed key. The objects use KMS encryption (SSE-KMS).

", "ObjectCountByEncryptionType$S3Managed" : "

The total number of objects that are encrypted with an Amazon S3 managed key. The objects use Amazon S3 managed encryption (SSE-S3).

", "ObjectCountByEncryptionType$Unencrypted" : "

The total number of objects that aren't encrypted or use client-side encryption.

", "ObjectCountByEncryptionType$Unknown" : "

The total number of objects that Amazon Macie doesn't have current encryption metadata for. Macie can't provide current data about the encryption settings for these objects.

", @@ -1841,8 +1848,9 @@ "BucketMetadata$AccountId" : "

The unique identifier for the Amazon Web Services account that owns the bucket.

", "BucketMetadata$BucketArn" : "

The Amazon Resource Name (ARN) of the bucket.

", "BucketMetadata$BucketName" : "

The name of the bucket.

", + "BucketMetadata$ErrorMessage" : "

A brief description of the error (errorCode) that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. This value is null if Macie was able to retrieve and process the information.

", "BucketMetadata$Region" : "

The Amazon Web Services Region that hosts the bucket.

", - "BucketServerSideEncryption$KmsMasterKeyId" : "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the Key Management Service (KMS) customer master key (CMK) that's used by default to encrypt objects that are added to the bucket. This value is null if the bucket uses an Amazon S3 managed key to encrypt new objects or the bucket doesn't encrypt new objects by default.

", + "BucketServerSideEncryption$KmsMasterKeyId" : "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS key that's used by default to encrypt objects that are added to the bucket. This value is null if the bucket uses an Amazon S3 managed key to encrypt new objects or the bucket doesn't encrypt new objects by default.

", "BucketSortCriteria$AttributeName" : "

The name of the bucket property to sort the results by. This value can be one of the following properties that Amazon Macie defines as bucket metadata: accountId, bucketName, classifiableObjectCount, classifiableSizeInBytes, objectCount, or sizeInBytes.

", "Cell$CellReference" : "

The location of the cell, as an absolute cell reference, that contains the sensitive data, for example Sheet2!C5 for cell C5 on Sheet2 in a Microsoft Excel workbook. This value is null for CSV and TSV files.

", "Cell$ColumnName" : "

The name of the column that contains the sensitive data, if available.

", @@ -1956,6 +1964,7 @@ "ManagedDataIdentifierSummary$Id" : "

The unique identifier for the managed data identifier. This is a string that describes the type of sensitive data that the managed data identifier detects. For example: OPENSSH_PRIVATE_KEY for OpenSSH private keys, CREDIT_CARD_NUMBER for credit card numbers, or USA_PASSPORT_NUMBER for US passport numbers.

", "MatchingBucket$AccountId" : "

The unique identifier for the Amazon Web Services account that owns the bucket.

", "MatchingBucket$BucketName" : "

The name of the bucket.

", + "MatchingBucket$ErrorMessage" : "

A brief description of the error (errorCode) that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. This value is null if Macie was able to retrieve and process the information.

", "Member$AccountId" : "

The Amazon Web Services account ID for the account.

", "Member$AdministratorAccountId" : "

The Amazon Web Services account ID for the administrator account.

", "Member$Arn" : "

The Amazon Resource Name (ARN) of the account.

", @@ -1971,7 +1980,7 @@ "S3BucketOwner$Id" : "

The canonical user ID for the account that owns the bucket.

", "S3Destination$BucketName" : "

The name of the bucket.

", "S3Destination$KeyPrefix" : "

The path prefix to use in the path to the location in the bucket. This prefix specifies where to store classification results in the bucket.

", - "S3Destination$KmsKeyArn" : "

The Amazon Resource Name (ARN) of the Key Management Service (KMS) customer master key (CMK) to use for encryption of the results. This must be the ARN of an existing CMK that's in the same Amazon Web Services Region as the bucket.

", + "S3Destination$KmsKeyArn" : "

The Amazon Resource Name (ARN) of the KMS key to use for encryption of the results. This must be the ARN of an existing, symmetric, customer managed KMS key that's in the same Amazon Web Services Region as the bucket.

", "S3Object$BucketArn" : "

The Amazon Resource Name (ARN) of the bucket that contains the object.

", "S3Object$ETag" : "

The entity tag (ETag) that identifies the affected version of the object. If the object was overwritten or changed after Amazon Macie produced the finding, this value might be different from the current ETag for the object.

", "S3Object$Extension" : "

The file name extension of the object. If the object doesn't have a file name extension, this value is \"\".

", @@ -1982,7 +1991,7 @@ "SearchResourcesResponse$NextToken" : "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

", "SearchResourcesTagCriterionPair$Key" : "

The value for the tag key to use in the condition.

", "SearchResourcesTagCriterionPair$Value" : "

The tag value to use in the condition.

", - "ServerSideEncryption$KmsMasterKeyId" : "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the Key Management Service (KMS) customer master key (CMK) that's used to encrypt data in the bucket or the object. If an KMS CMK isn't used, this value is null.

", + "ServerSideEncryption$KmsMasterKeyId" : "

The Amazon Resource Name (ARN) or unique identifier (key ID) for the KMS key that's used to encrypt data in the bucket or the object. This value is null if an KMS key isn't used to encrypt the data.

", "ServiceQuotaExceededException$Message" : "

The explanation of the error that occurred.

", "SessionIssuer$AccountId" : "

The unique identifier for the Amazon Web Services account that owns the entity that was used to get the credentials.

", "SessionIssuer$Arn" : "

The Amazon Resource Name (ARN) of the source account, IAM user, or role that was used to get the credentials.

", diff --git a/models/apis/network-firewall/2020-11-12/api-2.json b/models/apis/network-firewall/2020-11-12/api-2.json index 41b8317718..02861445bb 100644 --- a/models/apis/network-firewall/2020-11-12/api-2.json +++ b/models/apis/network-firewall/2020-11-12/api-2.json @@ -144,7 +144,8 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServerError"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ThrottlingException"} + {"shape":"ThrottlingException"}, + {"shape":"InvalidResourcePolicyException"} ] }, "DeleteRuleGroup":{ @@ -494,7 +495,7 @@ "type":"string", "max":255, "min":1, - "pattern":"^([a-fA-F\\d:\\.]+/\\d{1,3})$" + "pattern":"^([a-fA-F\\d:\\.]+($|/\\d{1,3}))$" }, "Addresses":{ "type":"list", @@ -902,7 +903,9 @@ "StatelessDefaultActions":{"shape":"StatelessActions"}, "StatelessFragmentDefaultActions":{"shape":"StatelessActions"}, "StatelessCustomActions":{"shape":"CustomActions"}, - "StatefulRuleGroupReferences":{"shape":"StatefulRuleGroupReferences"} + "StatefulRuleGroupReferences":{"shape":"StatefulRuleGroupReferences"}, + "StatefulDefaultActions":{"shape":"StatefulActions"}, + "StatefulEngineOptions":{"shape":"StatefulEngineOptions"} } }, "FirewallPolicyMetadata":{ @@ -925,7 +928,10 @@ "FirewallPolicyId":{"shape":"ResourceId"}, "Description":{"shape":"Description"}, "FirewallPolicyStatus":{"shape":"ResourceStatus"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "ConsumedStatelessRuleCapacity":{"shape":"RuleCapacity"}, + "ConsumedStatefulRuleCapacity":{"shape":"RuleCapacity"}, + "NumberOfAssociations":{"shape":"NumberOfAssociations"} } }, "FirewallStatus":{ @@ -1187,6 +1193,7 @@ "TCPFlags":{"shape":"TCPFlags"} } }, + "NumberOfAssociations":{"type":"integer"}, "PaginationMaxResults":{ "type":"integer", "max":100, @@ -1348,7 +1355,8 @@ "required":["RulesSource"], "members":{ "RuleVariables":{"shape":"RuleVariables"}, - "RulesSource":{"shape":"RulesSource"} + "RulesSource":{"shape":"RulesSource"}, + "StatefulRuleOptions":{"shape":"StatefulRuleOptions"} } }, "RuleGroupMetadata":{ @@ -1373,7 +1381,9 @@ "Type":{"shape":"RuleGroupType"}, "Capacity":{"shape":"RuleCapacity"}, "RuleGroupStatus":{"shape":"ResourceStatus"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "ConsumedCapacity":{"shape":"RuleCapacity"}, + "NumberOfAssociations":{"shape":"NumberOfAssociations"} } }, "RuleGroupType":{ @@ -1399,6 +1409,13 @@ "type":"list", "member":{"shape":"RuleOption"} }, + "RuleOrder":{ + "type":"string", + "enum":[ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ] + }, "RuleTargets":{ "type":"list", "member":{"shape":"CollectionMember_String"} @@ -1440,7 +1457,7 @@ }, "RulesString":{ "type":"string", - "max":1000000, + "max":2000000, "min":0 }, "Setting":{ @@ -1467,6 +1484,16 @@ "ALERT" ] }, + "StatefulActions":{ + "type":"list", + "member":{"shape":"CollectionMember_String"} + }, + "StatefulEngineOptions":{ + "type":"structure", + "members":{ + "RuleOrder":{"shape":"RuleOrder"} + } + }, "StatefulRule":{ "type":"structure", "required":[ @@ -1491,13 +1518,23 @@ "type":"structure", "required":["ResourceArn"], "members":{ - "ResourceArn":{"shape":"ResourceArn"} + "ResourceArn":{"shape":"ResourceArn"}, + "Priority":{ + "shape":"Priority", + "box":true + } } }, "StatefulRuleGroupReferences":{ "type":"list", "member":{"shape":"StatefulRuleGroupReference"} }, + "StatefulRuleOptions":{ + "type":"structure", + "members":{ + "RuleOrder":{"shape":"RuleOrder"} + } + }, "StatefulRuleProtocol":{ "type":"string", "enum":[ diff --git a/models/apis/network-firewall/2020-11-12/docs-2.json b/models/apis/network-firewall/2020-11-12/docs-2.json index e7126d3929..971739e1c5 100644 --- a/models/apis/network-firewall/2020-11-12/docs-2.json +++ b/models/apis/network-firewall/2020-11-12/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

This is the API Reference for AWS Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.

Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source intrusion detection system (IDS) engine. For information about Suricata, see the Suricata website.

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

To start using Network Firewall, do the following:

  1. (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.

  2. In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.

  3. In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.

  4. In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.

  5. In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy.

  6. In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints.

", + "service": "

This is the API Reference for AWS Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.

Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source intrusion detection system (IDS) engine. AWS Network Firewall supports Suricata version 5.0.2. For information about Suricata, see the Suricata website.

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

To start using Network Firewall, do the following:

  1. (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.

  2. In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.

  3. In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.

  4. In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.

  5. In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy.

  6. In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints.

", "operations": { "AssociateFirewallPolicy": "

Associates a FirewallPolicy to a Firewall.

A firewall policy defines how to monitor and manage your VPC network traffic, using a collection of inspection rule groups and other settings. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls.

", "AssociateSubnets": "

Associates the specified subnets in the Amazon VPC to the firewall. You can specify one subnet for each of the Availability Zones that the VPC spans.

This request creates an AWS Network Firewall firewall endpoint in each of the subnets. To enable the firewall's protections, you must also modify the VPC's route tables for each subnet's Availability Zone, to redirect the traffic that's coming into and going out of the zone through the firewall endpoint.

", @@ -140,6 +140,7 @@ "base": null, "refs": { "RuleTargets$member": null, + "StatefulActions$member": null, "StatelessActions$member": null, "SubnetMapping$SubnetId": "

The unique identifier for the subnet.

" } @@ -444,9 +445,9 @@ } }, "Header": { - "base": "

The 5-tuple criteria for AWS Network Firewall to use to inspect packet headers in stateful traffic flow inspection. Traffic flows that match the criteria are a match for the corresponding StatefulRule.

", + "base": "

The basic rule criteria for AWS Network Firewall to use to inspect packet headers in stateful traffic flow inspection. Traffic flows that match the criteria are a match for the corresponding StatefulRule.

", "refs": { - "StatefulRule$Header": "

The stateful 5-tuple inspection criteria for this rule, used to inspect traffic flows.

" + "StatefulRule$Header": "

The stateful inspection criteria for this rule, used to inspect traffic flows.

" } }, "IPSet": { @@ -482,7 +483,7 @@ } }, "InvalidResourcePolicyException": { - "base": "

", + "base": "

The policy statement failed validation.

", "refs": { } }, @@ -591,6 +592,13 @@ "RuleDefinition$MatchAttributes": "

Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags.

" } }, + "NumberOfAssociations": { + "base": null, + "refs": { + "FirewallPolicyResponse$NumberOfAssociations": "

The number of firewalls that are associated with this firewall policy.

", + "RuleGroupResponse$NumberOfAssociations": "

The number of firewall policies that use this rule group.

" + } + }, "PaginationMaxResults": { "base": null, "refs": { @@ -634,8 +642,8 @@ "Port": { "base": null, "refs": { - "Header$SourcePort": "

The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990-1994. To match with any port, specify ANY.

", - "Header$DestinationPort": "

The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990-1994. To match with any port, specify ANY.

" + "Header$SourcePort": "

The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

", + "Header$DestinationPort": "

The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

" } }, "PortRange": { @@ -654,8 +662,8 @@ "PortRanges": { "base": null, "refs": { - "MatchAttributes$SourcePorts": "

The source ports to inspect for. If not specified, this matches with any source port. This setting is only used for protocols 6 (TCP) and 17 (UDP).

You can specify individual ports, for example 1994 and you can specify port ranges, for example 1990-1994.

", - "MatchAttributes$DestinationPorts": "

The destination ports to inspect for. If not specified, this matches with any destination port. This setting is only used for protocols 6 (TCP) and 17 (UDP).

You can specify individual ports, for example 1994 and you can specify port ranges, for example 1990-1994.

" + "MatchAttributes$SourcePorts": "

The source ports to inspect for. If not specified, this matches with any source port. This setting is only used for protocols 6 (TCP) and 17 (UDP).

You can specify individual ports, for example 1994 and you can specify port ranges, for example 1990:1994.

", + "MatchAttributes$DestinationPorts": "

The destination ports to inspect for. If not specified, this matches with any destination port. This setting is only used for protocols 6 (TCP) and 17 (UDP).

You can specify individual ports, for example 1994 and you can specify port ranges, for example 1990:1994.

" } }, "PortSet": { @@ -673,7 +681,8 @@ "Priority": { "base": null, "refs": { - "StatelessRule$Priority": "

A setting that indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. You must ensure that the priority settings are unique for the rule group.

Each stateless rule group uses exactly one StatelessRulesAndCustomActions object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules object. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single StatelessRules object.

You can change the priority settings of your rules at any time. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on.

", + "StatefulRuleGroupReference$Priority": "

An integer setting that indicates the order in which to run the stateful rule groups in a single FirewallPolicy. This setting only applies to firewall policies that specify the STRICT_ORDER rule order in the stateful engine options settings.

Network Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy.

You can change the priority settings of your rule groups at any time. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on.

", + "StatelessRule$Priority": "

Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. You must ensure that the priority settings are unique for the rule group.

Each stateless rule group uses exactly one StatelessRulesAndCustomActions object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules object. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single StatelessRules object.

You can change the priority settings of your rules at any time. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on.

", "StatelessRuleGroupReference$Priority": "

An integer setting that indicates the order in which to run the stateless rule groups in a single FirewallPolicy. Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy.

" } }, @@ -808,7 +817,7 @@ } }, "ResourceOwnerCheckException": { - "base": "

", + "base": "

Unable to change the resource because your account doesn't own it.

", "refs": { } }, @@ -823,7 +832,10 @@ "base": null, "refs": { "CreateRuleGroupRequest$Capacity": "

The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

You can't change or exceed this capacity when you update the rule group, so leave room for your rule group to grow.

Capacity for a stateless rule group

For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules that you expect to have in the rule group.

To calculate the capacity requirement of a single rule, multiply the capacity requirement values of each of the rule's match settings:

A rule with no criteria specified in any of its match settings has a capacity requirement of 1. A rule with protocol setting [\"UDP\",\"TCP\"], source setting [\"10.0.0.0/24\",\"10.0.0.1/24\",\"10.0.0.2/24\"], and a single specification or no specification for each of the other match settings has a capacity requirement of 6.

Capacity for a stateful rule group

For a stateful rule group, the minimum capacity required is the number of individual rules that you expect to have in the rule group.

", - "RuleGroupResponse$Capacity": "

The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

" + "FirewallPolicyResponse$ConsumedStatelessRuleCapacity": "

The number of capacity units currently consumed by the policy's stateless rules.

", + "FirewallPolicyResponse$ConsumedStatefulRuleCapacity": "

The number of capacity units currently consumed by the policy's stateful rules.

", + "RuleGroupResponse$Capacity": "

The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

", + "RuleGroupResponse$ConsumedCapacity": "

The number of capacity units currently consumed by the rule group rules.

" } }, "RuleDefinition": { @@ -880,7 +892,14 @@ "RuleOptions": { "base": null, "refs": { - "StatefulRule$RuleOptions": "

" + "StatefulRule$RuleOptions": "

Additional options for the rule. These are the Suricata RuleOptions settings.

" + } + }, + "RuleOrder": { + "base": null, + "refs": { + "StatefulEngineOptions$RuleOrder": "

Indicates how to manage the order of stateful rule evaluation for the policy. By default, Network Firewall leaves the rule evaluation order up to the Suricata rule processing engine. If you set this to STRICT_ORDER, your rules are evaluated in the exact order that you provide them in the policy. With strict ordering, the rule groups are evaluated by order of priority, starting from the lowest number, and the rules in each rule group are processed in the order that they're defined.

", + "StatefulRuleOptions$RuleOrder": "

Indicates how to manage the order of the rule evaluation for the rule group. By default, Network Firewall leaves the rule evaluation order up to the Suricata rule processing engine. If you set this to STRICT_ORDER, your rules are evaluated in the exact order that they're listed in your Suricata rules string.

" } }, "RuleTargets": { @@ -909,7 +928,7 @@ } }, "RulesSourceList": { - "base": "

Stateful inspection criteria for a domain list rule group.

For HTTPS traffic, domain filtering is SNI-based. It uses the server name indicator extension of the TLS handshake.

By default, Network Firewall domain list inspection only includes traffic coming from the VPC where you deploy the firewall. To inspect traffic from IP addresses outside of the deployment VPC, you set the HOME_NET rule variable to include the CIDR range of the deployment VPC plus the other CIDR ranges. For more information, see RuleVariables in this guide and Stateful domain list rule groups in AWS Network Firewall in the Network Firewall Developer Guide

", + "base": "

Stateful inspection criteria for a domain list rule group.

For HTTPS traffic, domain filtering is SNI-based. It uses the server name indicator extension of the TLS handshake.

By default, Network Firewall domain list inspection only includes traffic coming from the VPC where you deploy the firewall. To inspect traffic from IP addresses outside of the deployment VPC, you set the HOME_NET rule variable to include the CIDR range of the deployment VPC plus the other CIDR ranges. For more information, see RuleVariables in this guide and Stateful domain list rule groups in AWS Network Firewall in the Network Firewall Developer Guide.

", "refs": { "RulesSource$RulesSourceList": "

Stateful inspection criteria for a domain list rule group.

" } @@ -946,8 +965,20 @@ "StatefulRule$Action": "

Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow.

The actions for a stateful rule are defined as follows:

" } }, + "StatefulActions": { + "base": null, + "refs": { + "FirewallPolicy$StatefulDefaultActions": "

The default actions to take on a packet that doesn't match any stateful rules.

" + } + }, + "StatefulEngineOptions": { + "base": "

Configuration settings for the handling of the stateful rule groups in a firewall policy.

", + "refs": { + "FirewallPolicy$StatefulEngineOptions": "

Additional options governing how Network Firewall handles stateful rules. The stateful rule groups that you use in your policy must have stateful rule options settings that are compatible with these settings.

" + } + }, "StatefulRule": { - "base": "

A single 5-tuple stateful rule, for use in a stateful rule group.

", + "base": "

A single Suricata rules specification, for use in a stateful rule group. Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

", "refs": { "StatefulRules$member": null } @@ -967,7 +998,13 @@ "StatefulRuleGroupReferences": { "base": null, "refs": { - "FirewallPolicy$StatefulRuleGroupReferences": "

References to the stateless rule groups that are used in the policy. These define the inspection criteria in stateful rules.

" + "FirewallPolicy$StatefulRuleGroupReferences": "

References to the stateful rule groups that are used in the policy. These define the inspection criteria in stateful rules.

" + } + }, + "StatefulRuleOptions": { + "base": "

Additional options governing how Network Firewall handles the rule group. You can only use these for stateful rule groups.

", + "refs": { + "RuleGroup$StatefulRuleOptions": "

Additional options governing how Network Firewall handles stateful rules. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings.

" } }, "StatefulRuleProtocol": { @@ -979,7 +1016,7 @@ "StatefulRules": { "base": null, "refs": { - "RulesSource$StatefulRules": "

The 5-tuple stateful inspection criteria. This contains an array of individual 5-tuple stateful rules to be used together in a stateful rule group.

" + "RulesSource$StatefulRules": "

An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" } }, "StatelessActions": { @@ -1135,7 +1172,7 @@ "TargetTypes": { "base": null, "refs": { - "RulesSourceList$TargetTypes": "

The protocols you want to inspect. Specify TLS_SNI for HTTPS. Specity HTTP_HOST for HTTP. You can specify either or both.

" + "RulesSourceList$TargetTypes": "

The protocols you want to inspect. Specify TLS_SNI for HTTPS. Specify HTTP_HOST for HTTP. You can specify either or both.

" } }, "ThrottlingException": { diff --git a/models/apis/workmail/2017-10-01/api-2.json b/models/apis/workmail/2017-10-01/api-2.json index 80a1999f66..d4d0ac392b 100644 --- a/models/apis/workmail/2017-10-01/api-2.json +++ b/models/apis/workmail/2017-10-01/api-2.json @@ -244,6 +244,21 @@ ], "idempotent":true }, + "DeleteMobileDeviceAccessOverride":{ + "name":"DeleteMobileDeviceAccessOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMobileDeviceAccessOverrideRequest"}, + "output":{"shape":"DeleteMobileDeviceAccessOverrideResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"EntityNotFoundException"} + ] + }, "DeleteMobileDeviceAccessRule":{ "name":"DeleteMobileDeviceAccessRule", "http":{ @@ -515,6 +530,22 @@ {"shape":"OrganizationStateException"} ] }, + "GetMobileDeviceAccessOverride":{ + "name":"GetMobileDeviceAccessOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMobileDeviceAccessOverrideRequest"}, + "output":{"shape":"GetMobileDeviceAccessOverrideResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ListAccessControlRules":{ "name":"ListAccessControlRules", "http":{ @@ -609,6 +640,21 @@ ], "idempotent":true }, + "ListMobileDeviceAccessOverrides":{ + "name":"ListMobileDeviceAccessOverrides", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMobileDeviceAccessOverridesRequest"}, + "output":{"shape":"ListMobileDeviceAccessOverridesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"EntityNotFoundException"} + ] + }, "ListMobileDeviceAccessRules":{ "name":"ListMobileDeviceAccessRules", "http":{ @@ -728,6 +774,22 @@ ], "idempotent":true }, + "PutMobileDeviceAccessOverride":{ + "name":"PutMobileDeviceAccessOverride", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutMobileDeviceAccessOverrideRequest"}, + "output":{"shape":"PutMobileDeviceAccessOverrideResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"EntityStateException"} + ] + }, "PutRetentionPolicy":{ "name":"PutRetentionPolicy", "http":{ @@ -1252,6 +1314,24 @@ "members":{ } }, + "DeleteMobileDeviceAccessOverrideRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "UserId", + "DeviceId" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "UserId":{"shape":"EntityIdentifier"}, + "DeviceId":{"shape":"DeviceId"} + } + }, + "DeleteMobileDeviceAccessOverrideResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteMobileDeviceAccessRuleRequest":{ "type":"structure", "required":[ @@ -1479,6 +1559,12 @@ "min":0, "pattern":"[\\S\\s]*" }, + "DeviceId":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[A-Za-z0-9]+" + }, "DeviceModel":{ "type":"string", "max":256, @@ -1629,6 +1715,12 @@ }, "exception":true }, + "EntityIdentifier":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9._%+@-]+" + }, "EntityNotFoundException":{ "type":"structure", "members":{ @@ -1751,6 +1843,30 @@ "MatchedRules":{"shape":"MobileDeviceAccessMatchedRuleList"} } }, + "GetMobileDeviceAccessOverrideRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "UserId", + "DeviceId" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "UserId":{"shape":"EntityIdentifier"}, + "DeviceId":{"shape":"DeviceId"} + } + }, + "GetMobileDeviceAccessOverrideResponse":{ + "type":"structure", + "members":{ + "UserId":{"shape":"WorkMailIdentifier"}, + "DeviceId":{"shape":"DeviceId"}, + "Effect":{"shape":"MobileDeviceAccessRuleEffect"}, + "Description":{"shape":"MobileDeviceAccessRuleDescription"}, + "DateCreated":{"shape":"Timestamp"}, + "DateModified":{"shape":"Timestamp"} + } + }, "Group":{ "type":"structure", "members":{ @@ -1945,6 +2061,24 @@ "NextToken":{"shape":"NextToken"} } }, + "ListMobileDeviceAccessOverridesRequest":{ + "type":"structure", + "required":["OrganizationId"], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "UserId":{"shape":"EntityIdentifier"}, + "DeviceId":{"shape":"DeviceId"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListMobileDeviceAccessOverridesResponse":{ + "type":"structure", + "members":{ + "Overrides":{"shape":"MobileDeviceAccessOverridesList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListMobileDeviceAccessRulesRequest":{ "type":"structure", "required":["OrganizationId"], @@ -2136,6 +2270,21 @@ "max":10, "min":0 }, + "MobileDeviceAccessOverride":{ + "type":"structure", + "members":{ + "UserId":{"shape":"WorkMailIdentifier"}, + "DeviceId":{"shape":"DeviceId"}, + "Effect":{"shape":"MobileDeviceAccessRuleEffect"}, + "Description":{"shape":"MobileDeviceAccessRuleDescription"}, + "DateCreated":{"shape":"Timestamp"}, + "DateModified":{"shape":"Timestamp"} + } + }, + "MobileDeviceAccessOverridesList":{ + "type":"list", + "member":{"shape":"MobileDeviceAccessOverride"} + }, "MobileDeviceAccessRule":{ "type":"structure", "members":{ @@ -2331,6 +2480,27 @@ "members":{ } }, + "PutMobileDeviceAccessOverrideRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "UserId", + "DeviceId", + "Effect" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "UserId":{"shape":"EntityIdentifier"}, + "DeviceId":{"shape":"DeviceId"}, + "Effect":{"shape":"MobileDeviceAccessRuleEffect"}, + "Description":{"shape":"MobileDeviceAccessRuleDescription"} + } + }, + "PutMobileDeviceAccessOverrideResponse":{ + "type":"structure", + "members":{ + } + }, "PutRetentionPolicyRequest":{ "type":"structure", "required":[ diff --git a/models/apis/workmail/2017-10-01/docs-2.json b/models/apis/workmail/2017-10-01/docs-2.json index 9f884a1c8e..1459a5d5f5 100644 --- a/models/apis/workmail/2017-10-01/docs-2.json +++ b/models/apis/workmail/2017-10-01/docs-2.json @@ -15,6 +15,7 @@ "DeleteAlias": "

Remove one or more specified aliases from a set of aliases for a given user.

", "DeleteGroup": "

Deletes a group from Amazon WorkMail.

", "DeleteMailboxPermissions": "

Deletes permissions granted to a member (user or group).

", + "DeleteMobileDeviceAccessOverride": "

Deletes the mobile device access override for the given WorkMail organization, user, and device.

", "DeleteMobileDeviceAccessRule": "

Deletes a mobile device access rule for the specified Amazon WorkMail organization.

", "DeleteOrganization": "

Deletes an Amazon WorkMail organization and all underlying AWS resources managed by Amazon WorkMail as part of the organization. You can choose whether to delete the associated directory. For more information, see Removing an organization in the Amazon WorkMail Administrator Guide.

", "DeleteResource": "

Deletes the specified resource.

", @@ -32,12 +33,14 @@ "GetDefaultRetentionPolicy": "

Gets the default retention policy details for the specified organization.

", "GetMailboxDetails": "

Requests a user's mailbox details for a specified organization and user.

", "GetMobileDeviceAccessEffect": "

Simulates the effect of the mobile device access rules for the given attributes of a sample access event. Use this method to test the effects of the current set of mobile device access rules for the Amazon WorkMail organization for a particular user's attributes.

", + "GetMobileDeviceAccessOverride": "

Gets the mobile device access override for the given WorkMail organization, user, and device.

", "ListAccessControlRules": "

Lists the access control rules for the specified organization.

", "ListAliases": "

Creates a paginated call to list the aliases associated with a given entity.

", "ListGroupMembers": "

Returns an overview of the members of a group. Users and groups can be members of a group.

", "ListGroups": "

Returns summaries of the organization's groups.

", "ListMailboxExportJobs": "

Lists the mailbox export jobs started for the specified organization within the last seven days.

", "ListMailboxPermissions": "

Lists the mailbox permissions associated with a user, group, or resource mailbox.

", + "ListMobileDeviceAccessOverrides": "

Lists all the mobile device access overrides for any given combination of WorkMail organization, user, or device.

", "ListMobileDeviceAccessRules": "

Lists the mobile device access rules for the specified Amazon WorkMail organization.

", "ListOrganizations": "

Returns summaries of the customer's organizations.

", "ListResourceDelegates": "

Lists the delegates associated with a resource. Users and groups can be resource delegates and answer requests on behalf of the resource.

", @@ -46,6 +49,7 @@ "ListUsers": "

Returns summaries of the organization's users.

", "PutAccessControlRule": "

Adds a new access control rule for the specified organization. The rule allows or denies access to the organization for the specified IPv4 addresses, access protocol actions, and user IDs. Adding a new rule with the same name as an existing rule replaces the older rule.

", "PutMailboxPermissions": "

Sets permissions for a user, group, or resource. This replaces any pre-existing permissions.

", + "PutMobileDeviceAccessOverride": "

Creates or updates a mobile device access override for the given WorkMail organization, user, and device.

", "PutRetentionPolicy": "

Puts a retention policy to the specified organization.

", "RegisterToWorkMail": "

Registers an existing and disabled user, group, or resource for Amazon WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see Pricing. The equivalent console functionality for this operation is Enable.

Users can either be created by calling the CreateUser API operation or they can be synchronized from your directory. For more information, see DeregisterFromWorkMail.

", "ResetPassword": "

Allows the administrator to reset the password for a user.

", @@ -284,6 +288,16 @@ "refs": { } }, + "DeleteMobileDeviceAccessOverrideRequest": { + "base": null, + "refs": { + } + }, + "DeleteMobileDeviceAccessOverrideResponse": { + "base": null, + "refs": { + } + }, "DeleteMobileDeviceAccessRuleRequest": { "base": null, "refs": { @@ -402,6 +416,17 @@ "StartMailboxExportJobRequest$Description": "

The mailbox export job description.

" } }, + "DeviceId": { + "base": null, + "refs": { + "DeleteMobileDeviceAccessOverrideRequest$DeviceId": "

The mobile device for which you delete the override. DeviceId is case insensitive.

", + "GetMobileDeviceAccessOverrideRequest$DeviceId": "

The mobile device to which the override applies. DeviceId is case insensitive.

", + "GetMobileDeviceAccessOverrideResponse$DeviceId": "

The device to which the access override applies.

", + "ListMobileDeviceAccessOverridesRequest$DeviceId": "

The mobile device to which the access override applies.

", + "MobileDeviceAccessOverride$DeviceId": "

The device to which the override applies.

", + "PutMobileDeviceAccessOverrideRequest$DeviceId": "

The mobile device for which you create the override. DeviceId is case insensitive.

" + } + }, "DeviceModel": { "base": null, "refs": { @@ -560,6 +585,15 @@ "refs": { } }, + "EntityIdentifier": { + "base": null, + "refs": { + "DeleteMobileDeviceAccessOverrideRequest$UserId": "

The WorkMail user for which you want to delete the override. Accepts the following types of user identities:

", + "GetMobileDeviceAccessOverrideRequest$UserId": "

Identifies the WorkMail user for the override. Accepts the following types of user identities:

", + "ListMobileDeviceAccessOverridesRequest$UserId": "

The WorkMail user under which you list the mobile device access overrides. Accepts the following types of user identities:

", + "PutMobileDeviceAccessOverrideRequest$UserId": "

The WorkMail user for which you create the override. Accepts the following types of user identities:

" + } + }, "EntityNotFoundException": { "base": "

The identifier supplied for the user, group, or resource does not exist in your organization.

", "refs": { @@ -641,6 +675,16 @@ "refs": { } }, + "GetMobileDeviceAccessOverrideRequest": { + "base": null, + "refs": { + } + }, + "GetMobileDeviceAccessOverrideResponse": { + "base": null, + "refs": { + } + }, "Group": { "base": "

The representation of an Amazon WorkMail group.

", "refs": { @@ -792,6 +836,16 @@ "refs": { } }, + "ListMobileDeviceAccessOverridesRequest": { + "base": null, + "refs": { + } + }, + "ListMobileDeviceAccessOverridesResponse": { + "base": null, + "refs": { + } + }, "ListMobileDeviceAccessRulesRequest": { "base": null, "refs": { @@ -911,6 +965,7 @@ "ListGroupsRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListMailboxExportJobsRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListMailboxPermissionsRequest$MaxResults": "

The maximum number of results to return in a single call.

", + "ListMobileDeviceAccessOverridesRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListOrganizationsRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListResourceDelegatesRequest$MaxResults": "

The number of maximum results in a page.

", "ListResourcesRequest$MaxResults": "

The maximum number of results to return in a single call.

", @@ -949,6 +1004,18 @@ "GetMobileDeviceAccessEffectResponse$MatchedRules": "

A list of the rules which matched the simulated user input and produced the effect.

" } }, + "MobileDeviceAccessOverride": { + "base": "

The override object.

", + "refs": { + "MobileDeviceAccessOverridesList$member": null + } + }, + "MobileDeviceAccessOverridesList": { + "base": null, + "refs": { + "ListMobileDeviceAccessOverridesResponse$Overrides": "

The list of mobile device access overrides that exist for the specified Amazon WorkMail organization and user.

" + } + }, "MobileDeviceAccessRule": { "base": "

A rule that controls access to mobile devices for an Amazon WorkMail group.

", "refs": { @@ -959,7 +1026,10 @@ "base": null, "refs": { "CreateMobileDeviceAccessRuleRequest$Description": "

The rule description.

", + "GetMobileDeviceAccessOverrideResponse$Description": "

A description of the override.

", + "MobileDeviceAccessOverride$Description": "

A description of the override.

", "MobileDeviceAccessRule$Description": "

The description of a mobile access rule.

", + "PutMobileDeviceAccessOverrideRequest$Description": "

A description of the override.

", "UpdateMobileDeviceAccessRuleRequest$Description": "

The updated rule description.

" } }, @@ -968,7 +1038,10 @@ "refs": { "CreateMobileDeviceAccessRuleRequest$Effect": "

The effect of the rule when it matches. Allowed values are ALLOW or DENY.

", "GetMobileDeviceAccessEffectResponse$Effect": "

The effect of the simulated access, ALLOW or DENY, after evaluating mobile device access rules in the Amazon WorkMail organization for the simulated user parameters.

", + "GetMobileDeviceAccessOverrideResponse$Effect": "

The effect of the override, ALLOW or DENY.

", + "MobileDeviceAccessOverride$Effect": "

The effect of the override, ALLOW or DENY.

", "MobileDeviceAccessRule$Effect": "

The effect of the rule when it matches. Allowed values are ALLOW or DENY.

", + "PutMobileDeviceAccessOverrideRequest$Effect": "

The effect of the override, ALLOW or DENY.

", "UpdateMobileDeviceAccessRuleRequest$Effect": "

The effect of the rule when it matches. Allowed values are ALLOW or DENY.

" } }, @@ -1015,6 +1088,8 @@ "ListMailboxExportJobsResponse$NextToken": "

The token to use to retrieve the next page of results.

", "ListMailboxPermissionsRequest$NextToken": "

The token to use to retrieve the next page of results. The first call does not contain any tokens.

", "ListMailboxPermissionsResponse$NextToken": "

The token to use to retrieve the next page of results. The value is \"null\" when there are no more results to return.

", + "ListMobileDeviceAccessOverridesRequest$NextToken": "

The token to use to retrieve the next page of results. The first call does not require a token.

", + "ListMobileDeviceAccessOverridesResponse$NextToken": "

The token to use to retrieve the next page of results. The value is “null” when there are no more results to return.

", "ListOrganizationsRequest$NextToken": "

The token to use to retrieve the next page of results. The first call does not contain any tokens.

", "ListOrganizationsResponse$NextToken": "

The token to use to retrieve the next page of results. The value is \"null\" when there are no more results to return.

", "ListResourceDelegatesRequest$NextToken": "

The token used to paginate through the delegates associated with a resource.

", @@ -1041,6 +1116,7 @@ "DeleteAliasRequest$OrganizationId": "

The identifier for the organization under which the user exists.

", "DeleteGroupRequest$OrganizationId": "

The organization that contains the group.

", "DeleteMailboxPermissionsRequest$OrganizationId": "

The identifier of the organization under which the member (user or group) exists.

", + "DeleteMobileDeviceAccessOverrideRequest$OrganizationId": "

The Amazon WorkMail organization for which the access override will be deleted.

", "DeleteMobileDeviceAccessRuleRequest$OrganizationId": "

The Amazon WorkMail organization under which the rule will be deleted.

", "DeleteOrganizationRequest$OrganizationId": "

The organization ID.

", "DeleteOrganizationResponse$OrganizationId": "

The organization ID.

", @@ -1060,12 +1136,14 @@ "GetDefaultRetentionPolicyRequest$OrganizationId": "

The organization ID.

", "GetMailboxDetailsRequest$OrganizationId": "

The identifier for the organization that contains the user whose mailbox details are being requested.

", "GetMobileDeviceAccessEffectRequest$OrganizationId": "

The Amazon WorkMail organization to simulate the access effect for.

", + "GetMobileDeviceAccessOverrideRequest$OrganizationId": "

The Amazon WorkMail organization to which you want to apply the override.

", "ListAccessControlRulesRequest$OrganizationId": "

The identifier for the organization.

", "ListAliasesRequest$OrganizationId": "

The identifier for the organization under which the entity exists.

", "ListGroupMembersRequest$OrganizationId": "

The identifier for the organization under which the group exists.

", "ListGroupsRequest$OrganizationId": "

The identifier for the organization under which the groups exist.

", "ListMailboxExportJobsRequest$OrganizationId": "

The organization ID.

", "ListMailboxPermissionsRequest$OrganizationId": "

The identifier of the organization under which the user, group, or resource exists.

", + "ListMobileDeviceAccessOverridesRequest$OrganizationId": "

The Amazon WorkMail organization under which to list mobile device access overrides.

", "ListMobileDeviceAccessRulesRequest$OrganizationId": "

The Amazon WorkMail organization for which to list the rules.

", "ListResourceDelegatesRequest$OrganizationId": "

The identifier for the organization that contains the resource for which delegates are listed.

", "ListResourcesRequest$OrganizationId": "

The identifier for the organization under which the resources exist.

", @@ -1073,6 +1151,7 @@ "OrganizationSummary$OrganizationId": "

The identifier associated with the organization.

", "PutAccessControlRuleRequest$OrganizationId": "

The identifier of the organization.

", "PutMailboxPermissionsRequest$OrganizationId": "

The identifier of the organization under which the user, group, or resource exists.

", + "PutMobileDeviceAccessOverrideRequest$OrganizationId": "

Identifies the Amazon WorkMail organization for which you create the override.

", "PutRetentionPolicyRequest$OrganizationId": "

The organization ID.

", "RegisterToWorkMailRequest$OrganizationId": "

The identifier for the organization under which the user, group, or resource exists.

", "ResetPasswordRequest$OrganizationId": "

The identifier of the organization that contains the user for which the password is reset.

", @@ -1178,6 +1257,16 @@ "refs": { } }, + "PutMobileDeviceAccessOverrideRequest": { + "base": null, + "refs": { + } + }, + "PutMobileDeviceAccessOverrideResponse": { + "base": null, + "refs": { + } + }, "PutRetentionPolicyRequest": { "base": null, "refs": { @@ -1417,12 +1506,16 @@ "DescribeResourceResponse$DisabledDate": "

The date and time when a resource was disabled from WorkMail, in UNIX epoch time format.

", "DescribeUserResponse$EnabledDate": "

The date and time at which the user was enabled for Amazon WorkMail usage, in UNIX epoch time format.

", "DescribeUserResponse$DisabledDate": "

The date and time at which the user was disabled for Amazon WorkMail usage, in UNIX epoch time format.

", + "GetMobileDeviceAccessOverrideResponse$DateCreated": "

The date the override was first created.

", + "GetMobileDeviceAccessOverrideResponse$DateModified": "

The date the description was last modified.

", "Group$EnabledDate": "

The date indicating when the group was enabled for Amazon WorkMail use.

", "Group$DisabledDate": "

The date indicating when the group was disabled from Amazon WorkMail use.

", "MailboxExportJob$StartTime": "

The mailbox export job start timestamp.

", "MailboxExportJob$EndTime": "

The mailbox export job end timestamp.

", "Member$EnabledDate": "

The date indicating when the member was enabled for Amazon WorkMail use.

", "Member$DisabledDate": "

The date indicating when the member was disabled from Amazon WorkMail use.

", + "MobileDeviceAccessOverride$DateCreated": "

The date the override was first created.

", + "MobileDeviceAccessOverride$DateModified": "

The date the override was last modified.

", "MobileDeviceAccessRule$DateCreated": "

The date and time at which an access rule was created.

", "MobileDeviceAccessRule$DateModified": "

The date and time at which an access rule was modified.

", "Resource$EnabledDate": "

The date indicating when the resource was enabled for Amazon WorkMail use.

", @@ -1552,12 +1645,14 @@ "DisassociateMemberFromGroupRequest$MemberId": "

The identifier for the member to be removed to the group.

", "GetAccessControlEffectRequest$UserId": "

The user ID.

", "GetMailboxDetailsRequest$UserId": "

The identifier for the user whose mailbox details are being requested.

", + "GetMobileDeviceAccessOverrideResponse$UserId": "

The WorkMail user to which the access override applies.

", "Group$Id": "

The identifier of the group.

", "ListAliasesRequest$EntityId": "

The identifier for the entity for which to list the aliases.

", "ListGroupMembersRequest$GroupId": "

The identifier for the group to which the members (users or groups) are associated.

", "ListMailboxPermissionsRequest$EntityId": "

The identifier of the user, group, or resource for which to list mailbox permissions.

", "ListResourceDelegatesRequest$ResourceId": "

The identifier for the resource whose delegates are listed.

", "MailboxExportJob$EntityId": "

The identifier of the user or resource associated with the mailbox.

", + "MobileDeviceAccessOverride$UserId": "

The WorkMail user to which the access override applies.

", "Permission$GranteeId": "

The identifier of the user, group, or resource to which the permissions are granted.

", "PutMailboxPermissionsRequest$EntityId": "

The identifier of the user, group, or resource for which to update mailbox permissions.

", "PutMailboxPermissionsRequest$GranteeId": "

The identifier of the user, group, or resource to which to grant the permissions.

", diff --git a/models/apis/workmail/2017-10-01/paginators-1.json b/models/apis/workmail/2017-10-01/paginators-1.json index 18e104df78..c5d545748a 100644 --- a/models/apis/workmail/2017-10-01/paginators-1.json +++ b/models/apis/workmail/2017-10-01/paginators-1.json @@ -25,6 +25,11 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListMobileDeviceAccessOverrides": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListOrganizations": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/workspaces/2015-04-08/api-2.json b/models/apis/workspaces/2015-04-08/api-2.json index cf136bbaa0..c2ddbaf09c 100644 --- a/models/apis/workspaces/2015-04-08/api-2.json +++ b/models/apis/workspaces/2015-04-08/api-2.json @@ -127,6 +127,24 @@ {"shape":"ResourceLimitExceededException"} ] }, + "CreateUpdatedWorkspaceImage":{ + "name":"CreateUpdatedWorkspaceImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUpdatedWorkspaceImageRequest"}, + "output":{"shape":"CreateUpdatedWorkspaceImageResult"}, + "errors":[ + {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"InvalidResourceStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValuesException"} + ] + }, "CreateWorkspaceBundle":{ "name":"CreateWorkspaceBundle", "http":{ @@ -1087,6 +1105,26 @@ "members":{ } }, + "CreateUpdatedWorkspaceImageRequest":{ + "type":"structure", + "required":[ + "Name", + "Description", + "SourceImageId" + ], + "members":{ + "Name":{"shape":"WorkspaceImageName"}, + "Description":{"shape":"WorkspaceImageDescription"}, + "SourceImageId":{"shape":"WorkspaceImageId"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateUpdatedWorkspaceImageResult":{ + "type":"structure", + "members":{ + "ImageId":{"shape":"WorkspaceImageId"} + } + }, "CreateWorkspaceBundleRequest":{ "type":"structure", "required":[ @@ -2210,6 +2248,19 @@ "members":{ } }, + "UpdateDescription":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9_./() -]+$" + }, + "UpdateResult":{ + "type":"structure", + "members":{ + "UpdateAvailable":{"shape":"BooleanObject"}, + "Description":{"shape":"UpdateDescription"} + } + }, "UpdateRulesOfIpGroupRequest":{ "type":"structure", "required":[ @@ -2414,7 +2465,8 @@ "ErrorCode":{"shape":"WorkspaceImageErrorCode"}, "ErrorMessage":{"shape":"Description"}, "Created":{"shape":"Timestamp"}, - "OwnerAccountId":{"shape":"AwsAccount"} + "OwnerAccountId":{"shape":"AwsAccount"}, + "Updates":{"shape":"UpdateResult"} } }, "WorkspaceImageDescription":{ diff --git a/models/apis/workspaces/2015-04-08/docs-2.json b/models/apis/workspaces/2015-04-08/docs-2.json index 19547ffc89..086d793ce1 100644 --- a/models/apis/workspaces/2015-04-08/docs-2.json +++ b/models/apis/workspaces/2015-04-08/docs-2.json @@ -5,10 +5,11 @@ "AssociateConnectionAlias": "

Associates the specified connection alias with the specified directory to enable cross-Region redirection. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

Before performing this operation, call DescribeConnectionAliases to make sure that the current state of the connection alias is CREATED.

", "AssociateIpGroups": "

Associates the specified IP access control group with the specified directory.

", "AuthorizeIpRules": "

Adds one or more rules to the specified IP access control group.

This action gives users permission to access their WorkSpaces from the CIDR address ranges specified in the rules.

", - "CopyWorkspaceImage": "

Copies the specified image from the specified Region to the current Region. For more information about copying images, see Copy a Custom WorkSpaces Image.

In the China (Ningxia) Region, you can copy images only within the same Region.

In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, contact AWS Support.

Before copying a shared image, be sure to verify that it has been shared from the correct AWS account. To determine if an image has been shared and to see the AWS account ID that owns an image, use the DescribeWorkSpaceImages and DescribeWorkspaceImagePermissions API operations.

", + "CopyWorkspaceImage": "

Copies the specified image from the specified Region to the current Region. For more information about copying images, see Copy a Custom WorkSpaces Image.

In the China (Ningxia) Region, you can copy images only within the same Region.

In Amazon Web Services GovCloud (US), to copy images to and from other Regions, contact Amazon Web Services Support.

Before copying a shared image, be sure to verify that it has been shared from the correct Amazon Web Services account. To determine if an image has been shared and to see the ID of the Amazon Web Services account that owns an image, use the DescribeWorkSpaceImages and DescribeWorkspaceImagePermissions API operations.

", "CreateConnectionAlias": "

Creates the specified connection alias for use with cross-Region redirection. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", "CreateIpGroup": "

Creates an IP access control group.

An IP access control group provides you with the ability to control the IP addresses from which users are allowed to access their WorkSpaces. To specify the CIDR address ranges, add rules to your IP access control group and then associate the group with your directory. You can add rules when you create the group or at any time using AuthorizeIpRules.

There is a default IP access control group associated with your directory. If you don't associate an IP access control group with your directory, the default group is used. The default group includes a default rule that allows users to access their WorkSpaces from anywhere. You cannot modify the default IP access control group for your directory.

", "CreateTags": "

Creates the specified tags for the specified WorkSpaces resource.

", + "CreateUpdatedWorkspaceImage": "

Creates a new updated WorkSpace image based on the specified source image. The new updated WorkSpace image has the latest drivers and other updates required by the Amazon WorkSpaces components.

To determine which WorkSpace images need to be updated with the latest Amazon WorkSpaces requirements, use DescribeWorkspaceImages.

", "CreateWorkspaceBundle": "

Creates the specified WorkSpace bundle. For more information about creating WorkSpace bundles, see Create a Custom WorkSpaces Image and Bundle.

", "CreateWorkspaces": "

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

", "DeleteConnectionAlias": "

Deletes the specified connection alias. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

If you will no longer be using a fully qualified domain name (FQDN) as the registration code for your WorkSpaces users, you must take certain precautions to prevent potential security issues. For more information, see Security Considerations if You Stop Using Cross-Region Redirection.

To delete a connection alias that has been shared, the shared account must first disassociate the connection alias from any directories it has been associated with. Then you must unshare the connection alias from the account it has been shared with. You can delete a connection alias only after it is no longer shared with any accounts or associated with any directories.

", @@ -16,25 +17,25 @@ "DeleteTags": "

Deletes the specified tags from the specified WorkSpaces resource.

", "DeleteWorkspaceBundle": "

Deletes the specified WorkSpace bundle. For more information about deleting WorkSpace bundles, see Delete a Custom WorkSpaces Bundle or Image.

", "DeleteWorkspaceImage": "

Deletes the specified image from your account. To delete an image, you must first delete any bundles that are associated with the image and unshare the image if it is shared with other accounts.

", - "DeregisterWorkspaceDirectory": "

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.

Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the AWS Directory Services pricing terms.

To delete empty directories, see Delete the Directory for Your WorkSpaces. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again.

", + "DeregisterWorkspaceDirectory": "

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.

Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the Directory Service pricing terms.

To delete empty directories, see Delete the Directory for Your WorkSpaces. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again.

", "DescribeAccount": "

Retrieves a list that describes the configuration of Bring Your Own License (BYOL) for the specified account.

", "DescribeAccountModifications": "

Retrieves a list that describes modifications to the configuration of Bring Your Own License (BYOL) for the specified account.

", "DescribeClientProperties": "

Retrieves a list that describes one or more specified Amazon WorkSpaces clients.

", - "DescribeConnectionAliasPermissions": "

Describes the permissions that the owner of a connection alias has granted to another AWS account for the specified connection alias. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", + "DescribeConnectionAliasPermissions": "

Describes the permissions that the owner of a connection alias has granted to another Amazon Web Services account for the specified connection alias. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", "DescribeConnectionAliases": "

Retrieves a list that describes the connection aliases used for cross-Region redirection. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", "DescribeIpGroups": "

Describes one or more of your IP access control groups.

", "DescribeTags": "

Describes the specified tags for the specified WorkSpaces resource.

", "DescribeWorkspaceBundles": "

Retrieves a list that describes the available WorkSpace bundles.

You can filter the results using either bundle ID or owner, but not both.

", "DescribeWorkspaceDirectories": "

Describes the available directories that are registered with Amazon WorkSpaces.

", - "DescribeWorkspaceImagePermissions": "

Describes the permissions that the owner of an image has granted to other AWS accounts for an image.

", + "DescribeWorkspaceImagePermissions": "

Describes the permissions that the owner of an image has granted to other Amazon Web Services accounts for an image.

", "DescribeWorkspaceImages": "

Retrieves a list that describes one or more specified images, if the image identifiers are provided. Otherwise, all images in the account are described.

", "DescribeWorkspaceSnapshots": "

Describes the snapshots for the specified WorkSpace.

", "DescribeWorkspaces": "

Describes the specified WorkSpaces.

You can filter the results by using the bundle identifier, directory identifier, or owner, but you can specify only one filter at a time.

", "DescribeWorkspacesConnectionStatus": "

Describes the connection status of the specified WorkSpaces.

", - "DisassociateConnectionAlias": "

Disassociates a connection alias from a directory. Disassociating a connection alias disables cross-Region redirection between two directories in different AWS Regions. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

Before performing this operation, call DescribeConnectionAliases to make sure that the current state of the connection alias is CREATED.

", + "DisassociateConnectionAlias": "

Disassociates a connection alias from a directory. Disassociating a connection alias disables cross-Region redirection between two directories in different Regions. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

Before performing this operation, call DescribeConnectionAliases to make sure that the current state of the connection alias is CREATED.

", "DisassociateIpGroups": "

Disassociates the specified IP access control group from the specified directory.

", - "ImportWorkspaceImage": "

Imports the specified Windows 10 Bring Your Own License (BYOL) image into Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image that is in your AWS account, and you must own the image. For more information about creating BYOL images, see Bring Your Own Windows Desktop Licenses.

", - "ListAvailableManagementCidrRanges": "

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).

This operation can be run only by AWS accounts that are enabled for BYOL. If your account isn't enabled for BYOL, you'll receive an AccessDeniedException error.

The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

", + "ImportWorkspaceImage": "

Imports the specified Windows 10 Bring Your Own License (BYOL) image into Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image that is in your Amazon Web Services account, and you must own the image. For more information about creating BYOL images, see Bring Your Own Windows Desktop Licenses.

", + "ListAvailableManagementCidrRanges": "

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).

This operation can be run only by Amazon Web Services accounts that are enabled for BYOL. If your account isn't enabled for BYOL, you'll receive an AccessDeniedException error.

The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

", "MigrateWorkspace": "

Migrates a WorkSpace from one operating system or bundle type to another, while retaining the data on the user volume.

The migration process recreates the WorkSpace by using a new root volume from the target bundle image and the user volume from the last available snapshot of the original WorkSpace. During migration, the original D:\\Users\\%USERNAME% user profile folder is renamed to D:\\Users\\%USERNAME%MMddyyTHHmmss%.NotMigrated. A new D:\\Users\\%USERNAME%\\ folder is generated by the new OS. Certain files in the old user profile are moved to the new user profile.

For available migration scenarios, details about what happens during migration, and best practices, see Migrate a WorkSpace.

", "ModifyAccount": "

Modifies the configuration of Bring Your Own License (BYOL) for the specified account.

", "ModifyClientProperties": "

Modifies the properties of the specified Amazon WorkSpaces clients.

", @@ -50,11 +51,11 @@ "RevokeIpRules": "

Removes one or more rules from the specified IP access control group.

", "StartWorkspaces": "

Starts the specified WorkSpaces.

You cannot start a WorkSpace unless it has a running mode of AutoStop and a state of STOPPED.

", "StopWorkspaces": "

Stops the specified WorkSpaces.

You cannot stop a WorkSpace unless it has a running mode of AutoStop and a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.

", - "TerminateWorkspaces": "

Terminates the specified WorkSpaces.

Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is destroyed. If you need to archive any user data, contact AWS Support before terminating the WorkSpace.

You can terminate a WorkSpace that is in any state except SUSPENDED.

This operation is asynchronous and returns before the WorkSpaces have been completely terminated. After a WorkSpace is terminated, the TERMINATED state is returned only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has been successfully terminated.

Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the AWS Directory Services pricing terms.

To delete empty directories, see Delete the Directory for Your WorkSpaces. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again.

", + "TerminateWorkspaces": "

Terminates the specified WorkSpaces.

Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is destroyed. If you need to archive any user data, contact Amazon Web Services Support before terminating the WorkSpace.

You can terminate a WorkSpace that is in any state except SUSPENDED.

This operation is asynchronous and returns before the WorkSpaces have been completely terminated. After a WorkSpace is terminated, the TERMINATED state is returned only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has been successfully terminated.

Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the Directory Service pricing terms.

To delete empty directories, see Delete the Directory for Your WorkSpaces. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again.

", "UpdateConnectionAliasPermission": "

Shares or unshares a connection alias with one account by specifying whether that account has permission to associate the connection alias with a directory. If the association permission is granted, the connection alias is shared with that account. If the association permission is revoked, the connection alias is unshared with the account. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", "UpdateRulesOfIpGroup": "

Replaces the current rules of the specified IP access control group with the specified rules.

", "UpdateWorkspaceBundle": "

Updates a WorkSpace bundle with a new image. For more information about updating WorkSpace bundles, see Update a Custom WorkSpaces Bundle.

Existing WorkSpaces aren't automatically updated when you update the bundle that they're based on. To update existing WorkSpaces that are based on a bundle that you've updated, you must either rebuild the WorkSpaces or delete and recreate them.

", - "UpdateWorkspaceImagePermission": "

Shares or unshares an image with one account in the same AWS Region by specifying whether that account has permission to copy the image. If the copy image permission is granted, the image is shared with that account. If the copy image permission is revoked, the image is unshared with the account.

After an image has been shared, the recipient account can copy the image to other AWS Regions as needed.

In the China (Ningxia) Region, you can copy images only within the same Region.

In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, contact AWS Support.

For more information about sharing images, see Share or Unshare a Custom WorkSpaces Image.

" + "UpdateWorkspaceImagePermission": "

Shares or unshares an image with one account in the same Amazon Web Services Region by specifying whether that account has permission to copy the image. If the copy image permission is granted, the image is shared with that account. If the copy image permission is revoked, the image is unshared with the account.

After an image has been shared, the recipient account can copy the image to other Regions as needed.

In the China (Ningxia) Region, you can copy images only within the same Region.

In Amazon Web Services GovCloud (US), to copy images to and from other Regions, contact Amazon Web Services Support.

For more information about sharing images, see Share or Unshare a Custom WorkSpaces Image.

" }, "shapes": { "ARN": { @@ -71,11 +72,11 @@ "AccessPropertyValue": { "base": null, "refs": { - "WorkspaceAccessProperties$DeviceTypeWindows": "

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.

", - "WorkspaceAccessProperties$DeviceTypeOsx": "

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.

", + "WorkspaceAccessProperties$DeviceTypeWindows": "

Indicates whether users can use Windows clients to access their WorkSpaces.

", + "WorkspaceAccessProperties$DeviceTypeOsx": "

Indicates whether users can use macOS clients to access their WorkSpaces.

", "WorkspaceAccessProperties$DeviceTypeWeb": "

Indicates whether users can access their WorkSpaces through a web browser.

", "WorkspaceAccessProperties$DeviceTypeIos": "

Indicates whether users can use iOS devices to access their WorkSpaces.

", - "WorkspaceAccessProperties$DeviceTypeAndroid": "

Indicates whether users can use Android devices to access their WorkSpaces.

", + "WorkspaceAccessProperties$DeviceTypeAndroid": "

Indicates whether users can use Android and Android-compatible Chrome OS devices to access their WorkSpaces.

", "WorkspaceAccessProperties$DeviceTypeChromeOs": "

Indicates whether users can use Chromebooks to access their WorkSpaces.

", "WorkspaceAccessProperties$DeviceTypeZeroClient": "

Indicates whether users can use zero client devices to access their WorkSpaces.

", "WorkspaceAccessProperties$DeviceTypeLinux": "

Indicates whether users can use Linux clients to access their WorkSpaces.

" @@ -150,24 +151,25 @@ "AwsAccount": { "base": null, "refs": { - "ConnectionAlias$OwnerAccountId": "

The identifier of the AWS account that owns the connection alias.

", - "ConnectionAliasAssociation$AssociatedAccountId": "

The identifier of the AWS account that associated the connection alias with a directory.

", - "ConnectionAliasPermission$SharedAccountId": "

The identifier of the AWS account that the connection alias is shared with.

", - "ImagePermission$SharedAccountId": "

The identifier of the AWS account that an image has been shared with.

", - "UpdateWorkspaceImagePermissionRequest$SharedAccountId": "

The identifier of the AWS account to share or unshare the image with.

Before sharing the image, confirm that you are sharing to the correct AWS account ID.

", - "WorkspaceImage$OwnerAccountId": "

The identifier of the AWS account that owns the image.

" + "ConnectionAlias$OwnerAccountId": "

The identifier of the Amazon Web Services account that owns the connection alias.

", + "ConnectionAliasAssociation$AssociatedAccountId": "

The identifier of the Amazon Web Services account that associated the connection alias with a directory.

", + "ConnectionAliasPermission$SharedAccountId": "

The identifier of the Amazon Web Services account that the connection alias is shared with.

", + "ImagePermission$SharedAccountId": "

The identifier of the Amazon Web Services account that an image has been shared with.

", + "UpdateWorkspaceImagePermissionRequest$SharedAccountId": "

The identifier of the Amazon Web Services account to share or unshare the image with.

Before sharing the image, confirm that you are sharing to the correct Amazon Web Services account ID.

", + "WorkspaceImage$OwnerAccountId": "

The identifier of the Amazon Web Services account that owns the image.

" } }, "BooleanObject": { "base": null, "refs": { - "ConnectionAliasPermission$AllowAssociation": "

Indicates whether the specified AWS account is allowed to associate the connection alias with a directory.

", + "ConnectionAliasPermission$AllowAssociation": "

Indicates whether the specified Amazon Web Services account is allowed to associate the connection alias with a directory.

", "DefaultWorkspaceCreationProperties$EnableWorkDocs": "

Specifies whether the directory is enabled for Amazon WorkDocs.

", "DefaultWorkspaceCreationProperties$EnableInternetAccess": "

Specifies whether to automatically assign an Elastic public IP address to WorkSpaces in this directory by default. If enabled, the Elastic public IP address allows outbound internet access from your WorkSpaces when you’re using an internet gateway in the Amazon VPC in which your WorkSpaces are located. If you're using a Network Address Translation (NAT) gateway for outbound internet access from your VPC, or if your WorkSpaces are in public subnets and you manually assign them Elastic IP addresses, you should disable this setting. This setting applies to new WorkSpaces that you launch or to existing WorkSpaces that you rebuild. For more information, see Configure a VPC for Amazon WorkSpaces.

", "DefaultWorkspaceCreationProperties$UserEnabledAsLocalAdministrator": "

Specifies whether WorkSpace users are local administrators on their WorkSpaces.

", "DefaultWorkspaceCreationProperties$EnableMaintenanceMode": "

Specifies whether maintenance mode is enabled for WorkSpaces. For more information, see WorkSpace Maintenance.

", "RegisterWorkspaceDirectoryRequest$EnableWorkDocs": "

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.

", "RegisterWorkspaceDirectoryRequest$EnableSelfService": "

Indicates whether self-service capabilities are enabled or disabled.

", + "UpdateResult$UpdateAvailable": "

Indicates whether updated drivers or other components are available for the specified WorkSpace image.

", "UpdateWorkspaceImagePermissionRequest$AllowCopyImage": "

The permission to copy the image. This permission can be revoked only after an image has been shared.

", "Workspace$UserVolumeEncryptionEnabled": "

Indicates whether the data stored on the user volume is encrypted.

", "Workspace$RootVolumeEncryptionEnabled": "

Indicates whether the data stored on the root volume is encrypted.

", @@ -207,8 +209,8 @@ "BundleOwner": { "base": null, "refs": { - "DescribeWorkspaceBundlesRequest$Owner": "

The owner of the bundles. You cannot combine this parameter with any other filter.

To describe the bundles provided by AWS, specify AMAZON. To describe the bundles that belong to your account, don't specify a value.

", - "WorkspaceBundle$Owner": "

The owner of the bundle. This is the account identifier of the owner, or AMAZON if the bundle is provided by AWS.

" + "DescribeWorkspaceBundlesRequest$Owner": "

The owner of the bundles. You cannot combine this parameter with any other filter.

To describe the bundles provided by Amazon Web Services, specify AMAZON. To describe the bundles that belong to your account, don't specify a value.

", + "WorkspaceBundle$Owner": "

The owner of the bundle. This is the account identifier of the owner, or AMAZON if the bundle is provided by Amazon Web Services.

" } }, "ClientProperties": { @@ -298,7 +300,7 @@ "base": "

Describes the permissions for a connection alias. Connection aliases are used for cross-Region redirection. For more information, see Cross-Region Redirection for Amazon WorkSpaces.

", "refs": { "ConnectionAliasPermissions$member": null, - "UpdateConnectionAliasPermissionRequest$ConnectionAliasPermission": "

Indicates whether to share or unshare the connection alias with the specified AWS account.

" + "UpdateConnectionAliasPermissionRequest$ConnectionAliasPermission": "

Indicates whether to share or unshare the connection alias with the specified Amazon Web Services account.

" } }, "ConnectionAliasPermissions": { @@ -330,7 +332,7 @@ "base": null, "refs": { "ConnectionAlias$ConnectionString": "

The connection string specified for the connection alias. The connection string must be in the form of a fully qualified domain name (FQDN), such as www.example.com.

", - "CreateConnectionAliasRequest$ConnectionString": "

A connection string in the form of a fully qualified domain name (FQDN), such as www.example.com.

After you create a connection string, it is always associated to your AWS account. You cannot recreate the same connection string with a different account, even if you delete all instances of it from the original account. The connection string is globally reserved for your account.

" + "CreateConnectionAliasRequest$ConnectionString": "

A connection string in the form of a fully qualified domain name (FQDN), such as www.example.com.

After you create a connection string, it is always associated to your Amazon Web Services account. You cannot recreate the same connection string with a different account, even if you delete all instances of it from the original account. The connection string is globally reserved for your account.

" } }, "CopyWorkspaceImageRequest": { @@ -373,6 +375,16 @@ "refs": { } }, + "CreateUpdatedWorkspaceImageRequest": { + "base": null, + "refs": { + } + }, + "CreateUpdatedWorkspaceImageResult": { + "base": null, + "refs": { + } + }, "CreateWorkspaceBundleRequest": { "base": null, "refs": { @@ -663,9 +675,9 @@ "ModifyWorkspaceAccessPropertiesRequest$ResourceId": "

The identifier of the directory.

", "ModifyWorkspaceCreationPropertiesRequest$ResourceId": "

The identifier of the directory.

", "RegisterWorkspaceDirectoryRequest$DirectoryId": "

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.

", - "Workspace$DirectoryId": "

The identifier of the AWS Directory Service directory for the WorkSpace.

", + "Workspace$DirectoryId": "

The identifier of the Directory Service directory for the WorkSpace.

", "WorkspaceDirectory$DirectoryId": "

The directory identifier.

", - "WorkspaceRequest$DirectoryId": "

The identifier of the AWS Directory Service directory for the WorkSpace. You can use DescribeWorkspaceDirectories to list the available directories.

" + "WorkspaceRequest$DirectoryId": "

The identifier of the Directory Service directory for the WorkSpace. You can use DescribeWorkspaceDirectories to list the available directories.

" } }, "DirectoryIdList": { @@ -797,7 +809,7 @@ } }, "ImagePermission": { - "base": "

Describes the AWS accounts that have been granted permission to use a shared image. For more information about sharing images, see Share or Unshare a Custom WorkSpaces Image.

", + "base": "

Describes the Amazon Web Services accounts that have been granted permission to use a shared image. For more information about sharing images, see Share or Unshare a Custom WorkSpaces Image.

", "refs": { "ImagePermissions$member": null } @@ -805,7 +817,7 @@ "ImagePermissions": { "base": null, "refs": { - "DescribeWorkspaceImagePermissionsResult$ImagePermissions": "

The identifiers of the AWS accounts that the image has been shared with.

" + "DescribeWorkspaceImagePermissionsResult$ImagePermissions": "

The identifiers of the Amazon Web Services accounts that the image has been shared with.

" } }, "ImageType": { @@ -1386,6 +1398,7 @@ "CreateConnectionAliasRequest$Tags": "

The tags to associate with the connection alias.

", "CreateIpGroupRequest$Tags": "

The tags. Each WorkSpaces resource can have a maximum of 50 tags.

", "CreateTagsRequest$Tags": "

The tags. Each WorkSpaces resource can have a maximum of 50 tags.

", + "CreateUpdatedWorkspaceImageRequest$Tags": "

The tags that you want to add to the new updated WorkSpace image.

To add tags at the same time when you're creating the updated image, you must create an IAM policy that grants your IAM user permissions to use workspaces:CreateTags.

", "CreateWorkspaceBundleRequest$Tags": "

The tags associated with the bundle.

To add tags at the same time when you're creating the bundle, you must create an IAM policy that grants your IAM user permissions to use workspaces:CreateTags.

", "DescribeTagsResult$TagList": "

The tags.

", "ImportWorkspaceImageRequest$Tags": "

The tags. Each WorkSpaces resource can have a maximum of 50 tags.

", @@ -1408,7 +1421,7 @@ "Tenancy": { "base": null, "refs": { - "RegisterWorkspaceDirectoryRequest$Tenancy": "

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.

", + "RegisterWorkspaceDirectoryRequest$Tenancy": "

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 Amazon Web Services 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.

", "WorkspaceDirectory$Tenancy": "

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.

" } }, @@ -1443,7 +1456,7 @@ "WorkspaceBundle$CreationTime": "

The time when the bundle was created.

", "WorkspaceConnectionStatus$ConnectionStateCheckTimestamp": "

The timestamp of the connection status check.

", "WorkspaceConnectionStatus$LastKnownUserConnectionTimestamp": "

The timestamp of the last known user connection.

", - "WorkspaceImage$Created": "

The date when the image was created. If the image has been shared, the AWS account that the image has been shared with sees the original creation date of the image.

" + "WorkspaceImage$Created": "

The date when the image was created. If the image has been shared, the Amazon Web Services account that the image has been shared with sees the original creation date of the image.

" } }, "UnsupportedNetworkConfigurationException": { @@ -1466,6 +1479,18 @@ "refs": { } }, + "UpdateDescription": { + "base": null, + "refs": { + "UpdateResult$Description": "

A description of whether updates for the WorkSpace image are pending or available.

" + } + }, + "UpdateResult": { + "base": "

Describes whether a WorkSpace image needs to be updated with the latest drivers and other components required by Amazon WorkSpaces.

Only Windows 10 WorkSpace images can be programmatically updated at this time.

", + "refs": { + "WorkspaceImage$Updates": "

The updates (if any) that are available for the specified image.

" + } + }, "UpdateRulesOfIpGroupRequest": { "base": null, "refs": { @@ -1502,7 +1527,7 @@ "DescribeWorkspacesRequest$UserName": "

The name of the directory user. You must specify this parameter with DirectoryId.

", "Workspace$UserName": "

The user for the WorkSpace.

", "WorkspaceDirectory$CustomerUserName": "

The user name for the service account.

", - "WorkspaceRequest$UserName": "

The user name of the user for the WorkSpace. This user name must exist in the AWS Directory Service directory for the WorkSpace.

" + "WorkspaceRequest$UserName": "

The user name of the user for the WorkSpace. This user name must exist in the Directory Service directory for the WorkSpace.

" } }, "UserStorage": { @@ -1521,8 +1546,8 @@ "VolumeEncryptionKey": { "base": null, "refs": { - "Workspace$VolumeEncryptionKey": "

The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.

", - "WorkspaceRequest$VolumeEncryptionKey": "

The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.

" + "Workspace$VolumeEncryptionKey": "

The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

", + "WorkspaceRequest$VolumeEncryptionKey": "

The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

" } }, "Workspace": { @@ -1638,6 +1663,7 @@ "base": null, "refs": { "CopyWorkspaceImageRequest$Description": "

A description of the image.

", + "CreateUpdatedWorkspaceImageRequest$Description": "

A description of whether updates for the WorkSpace image are available.

", "ImportWorkspaceImageRequest$ImageDescription": "

The description of the WorkSpace image.

", "WorkspaceImage$Description": "

The description of the image.

" } @@ -1653,6 +1679,8 @@ "refs": { "CopyWorkspaceImageRequest$SourceImageId": "

The identifier of the source image.

", "CopyWorkspaceImageResult$ImageId": "

The identifier of the image.

", + "CreateUpdatedWorkspaceImageRequest$SourceImageId": "

The identifier of the source WorkSpace image.

", + "CreateUpdatedWorkspaceImageResult$ImageId": "

The identifier of the new updated WorkSpace image.

", "CreateWorkspaceBundleRequest$ImageId": "

The identifier of the image that is used to create the bundle.

", "DeleteWorkspaceImageRequest$ImageId": "

The identifier of the image.

", "DescribeWorkspaceImagePermissionsRequest$ImageId": "

The identifier of the image.

", @@ -1687,6 +1715,7 @@ "base": null, "refs": { "CopyWorkspaceImageRequest$Name": "

The name of the image.

", + "CreateUpdatedWorkspaceImageRequest$Name": "

The name of the new updated WorkSpace image.

", "ImportWorkspaceImageRequest$ImageName": "

The name of the WorkSpace image.

", "WorkspaceImage$Name": "

The name of the image.

" } diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 6e509a1f1c..4d53bdc37f 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -135,6 +135,18 @@ "us-west-2" : { } } }, + "account" : { + "endpoints" : { + "aws-global" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "account.us-east-1.amazonaws.com" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, "acm" : { "endpoints" : { "af-south-1" : { }, @@ -842,7 +854,11 @@ "protocols" : [ "https" ] }, "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, "eu-central-1" : { }, + "eu-north-1" : { }, "eu-west-1" : { }, "us-east-1" : { }, "us-east-2" : { }, @@ -1116,6 +1132,61 @@ "us-west-2" : { } } }, + "cloudcontrol" : { + "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-northeast-3" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "cloudcontrolapi-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "cloudcontrolapi-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "cloudcontrolapi-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "cloudcontrolapi-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "cloudcontrolapi-fips.us-west-2.amazonaws.com" + }, + "me-south-1" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "clouddirectory" : { "endpoints" : { "ap-southeast-1" : { }, @@ -7845,6 +7916,18 @@ "cn-northwest-1" : { } } }, + "account" : { + "endpoints" : { + "aws-cn-global" : { + "credentialScope" : { + "region" : "cn-northwest-1" + }, + "hostname" : "account.cn-northwest-1.amazonaws.com.cn" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-cn-global" + }, "acm" : { "endpoints" : { "cn-north-1" : { }, @@ -8955,6 +9038,24 @@ "us-gov-west-1" : { } } }, + "cloudcontrol" : { + "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "cloudcontrolapi-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "cloudcontrolapi-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "clouddirectory" : { "endpoints" : { "us-gov-west-1" : { } diff --git a/service/account/accountiface/interface.go b/service/account/accountiface/interface.go new file mode 100644 index 0000000000..18451df319 --- /dev/null +++ b/service/account/accountiface/interface.go @@ -0,0 +1,76 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package accountiface provides an interface to enable mocking the AWS Account service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package accountiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/account" +) + +// AccountAPI provides an interface to enable mocking the +// account.Account service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Account. +// func myFunc(svc accountiface.AccountAPI) bool { +// // Make svc.DeleteAlternateContact request +// } +// +// func main() { +// sess := session.New() +// svc := account.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockAccountClient struct { +// accountiface.AccountAPI +// } +// func (m *mockAccountClient) DeleteAlternateContact(input *account.DeleteAlternateContactInput) (*account.DeleteAlternateContactOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockAccountClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type AccountAPI interface { + DeleteAlternateContact(*account.DeleteAlternateContactInput) (*account.DeleteAlternateContactOutput, error) + DeleteAlternateContactWithContext(aws.Context, *account.DeleteAlternateContactInput, ...request.Option) (*account.DeleteAlternateContactOutput, error) + DeleteAlternateContactRequest(*account.DeleteAlternateContactInput) (*request.Request, *account.DeleteAlternateContactOutput) + + GetAlternateContact(*account.GetAlternateContactInput) (*account.GetAlternateContactOutput, error) + GetAlternateContactWithContext(aws.Context, *account.GetAlternateContactInput, ...request.Option) (*account.GetAlternateContactOutput, error) + GetAlternateContactRequest(*account.GetAlternateContactInput) (*request.Request, *account.GetAlternateContactOutput) + + PutAlternateContact(*account.PutAlternateContactInput) (*account.PutAlternateContactOutput, error) + PutAlternateContactWithContext(aws.Context, *account.PutAlternateContactInput, ...request.Option) (*account.PutAlternateContactOutput, error) + PutAlternateContactRequest(*account.PutAlternateContactInput) (*request.Request, *account.PutAlternateContactOutput) +} + +var _ AccountAPI = (*account.Account)(nil) diff --git a/service/account/api.go b/service/account/api.go new file mode 100644 index 0000000000..67cefd89fb --- /dev/null +++ b/service/account/api.go @@ -0,0 +1,1120 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package account + +import ( + "fmt" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opDeleteAlternateContact = "DeleteAlternateContact" + +// DeleteAlternateContactRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAlternateContact 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 DeleteAlternateContact for more information on using the DeleteAlternateContact +// 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 DeleteAlternateContactRequest method. +// req, resp := client.DeleteAlternateContactRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01/DeleteAlternateContact +func (c *Account) DeleteAlternateContactRequest(input *DeleteAlternateContactInput) (req *request.Request, output *DeleteAlternateContactOutput) { + op := &request.Operation{ + Name: opDeleteAlternateContact, + HTTPMethod: "POST", + HTTPPath: "/deleteAlternateContact", + } + + if input == nil { + input = &DeleteAlternateContactInput{} + } + + output = &DeleteAlternateContactOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAlternateContact API operation for AWS Account. +// +// Deletes the specified alternate contact from an Amazon Web Services account. +// +// For complete details about how to use the alternate contact operations, see +// Access or updating the alternate contacts (https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.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 AWS Account's +// API operation DeleteAlternateContact for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The operation failed because it specified a resource that can't be found. +// +// * ValidationException +// The operation failed because one of the input parameters was invalid. +// +// * AccessDeniedException +// The operation failed because the calling identity doesn't have the minimum +// required permissions. +// +// * TooManyRequestsException +// The operation failed because it was called too frequently and exceeded a +// throttle limit. +// +// * InternalServerException +// The operation failed because of an error internal to Amazon Web Services. +// Try your operation again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01/DeleteAlternateContact +func (c *Account) DeleteAlternateContact(input *DeleteAlternateContactInput) (*DeleteAlternateContactOutput, error) { + req, out := c.DeleteAlternateContactRequest(input) + return out, req.Send() +} + +// DeleteAlternateContactWithContext is the same as DeleteAlternateContact with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAlternateContact 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 *Account) DeleteAlternateContactWithContext(ctx aws.Context, input *DeleteAlternateContactInput, opts ...request.Option) (*DeleteAlternateContactOutput, error) { + req, out := c.DeleteAlternateContactRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAlternateContact = "GetAlternateContact" + +// GetAlternateContactRequest generates a "aws/request.Request" representing the +// client's request for the GetAlternateContact 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 GetAlternateContact for more information on using the GetAlternateContact +// 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 GetAlternateContactRequest method. +// req, resp := client.GetAlternateContactRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01/GetAlternateContact +func (c *Account) GetAlternateContactRequest(input *GetAlternateContactInput) (req *request.Request, output *GetAlternateContactOutput) { + op := &request.Operation{ + Name: opGetAlternateContact, + HTTPMethod: "POST", + HTTPPath: "/getAlternateContact", + } + + if input == nil { + input = &GetAlternateContactInput{} + } + + output = &GetAlternateContactOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAlternateContact API operation for AWS Account. +// +// Retrieves the specified alternate contact attached to an Amazon Web Services +// account. +// +// For complete details about how to use the alternate contact operations, see +// Access or updating the alternate contacts (https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.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 AWS Account's +// API operation GetAlternateContact for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The operation failed because it specified a resource that can't be found. +// +// * ValidationException +// The operation failed because one of the input parameters was invalid. +// +// * AccessDeniedException +// The operation failed because the calling identity doesn't have the minimum +// required permissions. +// +// * TooManyRequestsException +// The operation failed because it was called too frequently and exceeded a +// throttle limit. +// +// * InternalServerException +// The operation failed because of an error internal to Amazon Web Services. +// Try your operation again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01/GetAlternateContact +func (c *Account) GetAlternateContact(input *GetAlternateContactInput) (*GetAlternateContactOutput, error) { + req, out := c.GetAlternateContactRequest(input) + return out, req.Send() +} + +// GetAlternateContactWithContext is the same as GetAlternateContact with the addition of +// the ability to pass a context and additional request options. +// +// See GetAlternateContact 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 *Account) GetAlternateContactWithContext(ctx aws.Context, input *GetAlternateContactInput, opts ...request.Option) (*GetAlternateContactOutput, error) { + req, out := c.GetAlternateContactRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutAlternateContact = "PutAlternateContact" + +// PutAlternateContactRequest generates a "aws/request.Request" representing the +// client's request for the PutAlternateContact 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 PutAlternateContact for more information on using the PutAlternateContact +// 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 PutAlternateContactRequest method. +// req, resp := client.PutAlternateContactRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01/PutAlternateContact +func (c *Account) PutAlternateContactRequest(input *PutAlternateContactInput) (req *request.Request, output *PutAlternateContactOutput) { + op := &request.Operation{ + Name: opPutAlternateContact, + HTTPMethod: "POST", + HTTPPath: "/putAlternateContact", + } + + if input == nil { + input = &PutAlternateContactInput{} + } + + output = &PutAlternateContactOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutAlternateContact API operation for AWS Account. +// +// Modifies the specified alternate contact attached to an Amazon Web Services +// account. +// +// For complete details about how to use the alternate contact operations, see +// Access or updating the alternate contacts (https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.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 AWS Account's +// API operation PutAlternateContact for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The operation failed because one of the input parameters was invalid. +// +// * AccessDeniedException +// The operation failed because the calling identity doesn't have the minimum +// required permissions. +// +// * TooManyRequestsException +// The operation failed because it was called too frequently and exceeded a +// throttle limit. +// +// * InternalServerException +// The operation failed because of an error internal to Amazon Web Services. +// Try your operation again later. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01/PutAlternateContact +func (c *Account) PutAlternateContact(input *PutAlternateContactInput) (*PutAlternateContactOutput, error) { + req, out := c.PutAlternateContactRequest(input) + return out, req.Send() +} + +// PutAlternateContactWithContext is the same as PutAlternateContact with the addition of +// the ability to pass a context and additional request options. +// +// See PutAlternateContact 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 *Account) PutAlternateContactWithContext(ctx aws.Context, input *PutAlternateContactInput, opts ...request.Option) (*PutAlternateContactOutput, error) { + req, out := c.PutAlternateContactRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// The operation failed because the calling identity doesn't have the minimum +// required permissions. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// A structure that contains the details of an alternate contact associated +// with an Amazon Web Services account +type AlternateContact struct { + _ struct{} `type:"structure"` + + // The type of alternate contact. + AlternateContactType *string `type:"string" enum:"AlternateContactType"` + + // The email address associated with this alternate contact. + // + // EmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AlternateContact's + // String and GoString methods. + EmailAddress *string `min:"1" type:"string" sensitive:"true"` + + // The name associated with this alternate contact. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AlternateContact's + // String and GoString methods. + Name *string `min:"1" type:"string" sensitive:"true"` + + // The phone number associated with this alternate contact. + // + // PhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AlternateContact's + // String and GoString methods. + PhoneNumber *string `min:"1" type:"string" sensitive:"true"` + + // The title associated with this alternate contact. + // + // Title is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AlternateContact's + // String and GoString methods. + Title *string `min:"1" type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AlternateContact) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AlternateContact) GoString() string { + return s.String() +} + +// SetAlternateContactType sets the AlternateContactType field's value. +func (s *AlternateContact) SetAlternateContactType(v string) *AlternateContact { + s.AlternateContactType = &v + return s +} + +// SetEmailAddress sets the EmailAddress field's value. +func (s *AlternateContact) SetEmailAddress(v string) *AlternateContact { + s.EmailAddress = &v + return s +} + +// SetName sets the Name field's value. +func (s *AlternateContact) SetName(v string) *AlternateContact { + s.Name = &v + return s +} + +// SetPhoneNumber sets the PhoneNumber field's value. +func (s *AlternateContact) SetPhoneNumber(v string) *AlternateContact { + s.PhoneNumber = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *AlternateContact) SetTitle(v string) *AlternateContact { + s.Title = &v + return s +} + +type DeleteAlternateContactInput struct { + _ struct{} `type:"structure"` + + // Specifies the 12 digit account ID number of the Amazon Web Services account + // that you want to access or modify with this operation. + // + // If you do not specify this parameter, it defaults to the Amazon Web Services + // account of the identity used to call the operation. + // + // To use this parameter, the caller must be an identity in the organization's + // management account (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account) + // or a delegated administrator account, and the specified account ID must be + // a member account in the same organization. The organization must have all + // features enabled (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html), + // and the organization must have trusted access (https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html) + // enabled for the Account Management service, and optionally a delegated admin + // (https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html) + // account assigned. + // + // The management account can't specify its own AccountId; it must call the + // operation in standalone context by not including the AccountId parameter. + // + // To call this operation on an account that is not a member of an organization, + // then don't specify this parameter, and call the operation using an identity + // belonging to the account whose contacts you wish to retrieve or modify. + AccountId *string `type:"string"` + + // Specifies which of the alternate contacts to delete. + // + // AlternateContactType is a required field + AlternateContactType *string `type:"string" required:"true" enum:"AlternateContactType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAlternateContactInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAlternateContactInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAlternateContactInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAlternateContactInput"} + if s.AlternateContactType == nil { + invalidParams.Add(request.NewErrParamRequired("AlternateContactType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteAlternateContactInput) SetAccountId(v string) *DeleteAlternateContactInput { + s.AccountId = &v + return s +} + +// SetAlternateContactType sets the AlternateContactType field's value. +func (s *DeleteAlternateContactInput) SetAlternateContactType(v string) *DeleteAlternateContactInput { + s.AlternateContactType = &v + return s +} + +type DeleteAlternateContactOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAlternateContactOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAlternateContactOutput) GoString() string { + return s.String() +} + +type GetAlternateContactInput struct { + _ struct{} `type:"structure"` + + // Specifies the 12 digit account ID number of the Amazon Web Services account + // that you want to access or modify with this operation. + // + // If you do not specify this parameter, it defaults to the Amazon Web Services + // account of the identity used to call the operation. + // + // To use this parameter, the caller must be an identity in the organization's + // management account (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account) + // or a delegated administrator account, and the specified account ID must be + // a member account in the same organization. The organization must have all + // features enabled (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html), + // and the organization must have trusted access (https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html) + // enabled for the Account Management service, and optionally a delegated admin + // (https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html) + // account assigned. + // + // The management account can't specify its own AccountId; it must call the + // operation in standalone context by not including the AccountId parameter. + // + // To call this operation on an account that is not a member of an organization, + // then don't specify this parameter, and call the operation using an identity + // belonging to the account whose contacts you wish to retrieve or modify. + AccountId *string `type:"string"` + + // Specifies which alternate contact you want to retrieve. + // + // AlternateContactType is a required field + AlternateContactType *string `type:"string" required:"true" enum:"AlternateContactType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAlternateContactInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAlternateContactInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAlternateContactInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAlternateContactInput"} + if s.AlternateContactType == nil { + invalidParams.Add(request.NewErrParamRequired("AlternateContactType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *GetAlternateContactInput) SetAccountId(v string) *GetAlternateContactInput { + s.AccountId = &v + return s +} + +// SetAlternateContactType sets the AlternateContactType field's value. +func (s *GetAlternateContactInput) SetAlternateContactType(v string) *GetAlternateContactInput { + s.AlternateContactType = &v + return s +} + +type GetAlternateContactOutput struct { + _ struct{} `type:"structure"` + + // A structure that contains the details for the specified alternate contact. + AlternateContact *AlternateContact `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAlternateContactOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAlternateContactOutput) GoString() string { + return s.String() +} + +// SetAlternateContact sets the AlternateContact field's value. +func (s *GetAlternateContactOutput) SetAlternateContact(v *AlternateContact) *GetAlternateContactOutput { + s.AlternateContact = v + return s +} + +// The operation failed because of an error internal to Amazon Web Services. +// Try your operation again later. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type PutAlternateContactInput struct { + _ struct{} `type:"structure"` + + // Specifies the 12 digit account ID number of the Amazon Web Services account + // that you want to access or modify with this operation. + // + // If you do not specify this parameter, it defaults to the Amazon Web Services + // account of the identity used to call the operation. + // + // To use this parameter, the caller must be an identity in the organization's + // management account (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account) + // or a delegated administrator account, and the specified account ID must be + // a member account in the same organization. The organization must have all + // features enabled (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html), + // and the organization must have trusted access (https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html) + // enabled for the Account Management service, and optionally a delegated admin + // (https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html) + // account assigned. + // + // The management account can't specify its own AccountId; it must call the + // operation in standalone context by not including the AccountId parameter. + // + // To call this operation on an account that is not a member of an organization, + // then don't specify this parameter, and call the operation using an identity + // belonging to the account whose contacts you wish to retrieve or modify. + AccountId *string `type:"string"` + + // Specifies which alternate contact you want to create or update. + // + // AlternateContactType is a required field + AlternateContactType *string `type:"string" required:"true" enum:"AlternateContactType"` + + // Specifies an email address for the alternate contact. + // + // EmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutAlternateContactInput's + // String and GoString methods. + // + // EmailAddress is a required field + EmailAddress *string `min:"1" type:"string" required:"true" sensitive:"true"` + + // Specifies a name for the alternate contact. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutAlternateContactInput's + // String and GoString methods. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true" sensitive:"true"` + + // Specifies a phone number for the alternate contact. + // + // PhoneNumber is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutAlternateContactInput's + // String and GoString methods. + // + // PhoneNumber is a required field + PhoneNumber *string `min:"1" type:"string" required:"true" sensitive:"true"` + + // Specifies a title for the alternate contact. + // + // Title is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PutAlternateContactInput's + // String and GoString methods. + // + // Title is a required field + Title *string `min:"1" type:"string" required:"true" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAlternateContactInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAlternateContactInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutAlternateContactInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutAlternateContactInput"} + if s.AlternateContactType == nil { + invalidParams.Add(request.NewErrParamRequired("AlternateContactType")) + } + if s.EmailAddress == nil { + invalidParams.Add(request.NewErrParamRequired("EmailAddress")) + } + if s.EmailAddress != nil && len(*s.EmailAddress) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.PhoneNumber == nil { + invalidParams.Add(request.NewErrParamRequired("PhoneNumber")) + } + if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1)) + } + if s.Title == nil { + invalidParams.Add(request.NewErrParamRequired("Title")) + } + if s.Title != nil && len(*s.Title) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Title", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *PutAlternateContactInput) SetAccountId(v string) *PutAlternateContactInput { + s.AccountId = &v + return s +} + +// SetAlternateContactType sets the AlternateContactType field's value. +func (s *PutAlternateContactInput) SetAlternateContactType(v string) *PutAlternateContactInput { + s.AlternateContactType = &v + return s +} + +// SetEmailAddress sets the EmailAddress field's value. +func (s *PutAlternateContactInput) SetEmailAddress(v string) *PutAlternateContactInput { + s.EmailAddress = &v + return s +} + +// SetName sets the Name field's value. +func (s *PutAlternateContactInput) SetName(v string) *PutAlternateContactInput { + s.Name = &v + return s +} + +// SetPhoneNumber sets the PhoneNumber field's value. +func (s *PutAlternateContactInput) SetPhoneNumber(v string) *PutAlternateContactInput { + s.PhoneNumber = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *PutAlternateContactInput) SetTitle(v string) *PutAlternateContactInput { + s.Title = &v + return s +} + +type PutAlternateContactOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAlternateContactOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAlternateContactOutput) GoString() string { + return s.String() +} + +// The operation failed because it specified a resource that can't be found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The operation failed because it was called too frequently and exceeded a +// throttle limit. +type TooManyRequestsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TooManyRequestsException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TooManyRequestsException) GoString() string { + return s.String() +} + +func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error { + return &TooManyRequestsException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TooManyRequestsException) Code() string { + return "TooManyRequestsException" +} + +// Message returns the exception's message. +func (s *TooManyRequestsException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TooManyRequestsException) OrigErr() error { + return nil +} + +func (s *TooManyRequestsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TooManyRequestsException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TooManyRequestsException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The operation failed because one of the input parameters was invalid. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +const ( + // AlternateContactTypeBilling is a AlternateContactType enum value + AlternateContactTypeBilling = "BILLING" + + // AlternateContactTypeOperations is a AlternateContactType enum value + AlternateContactTypeOperations = "OPERATIONS" + + // AlternateContactTypeSecurity is a AlternateContactType enum value + AlternateContactTypeSecurity = "SECURITY" +) + +// AlternateContactType_Values returns all elements of the AlternateContactType enum +func AlternateContactType_Values() []string { + return []string{ + AlternateContactTypeBilling, + AlternateContactTypeOperations, + AlternateContactTypeSecurity, + } +} diff --git a/service/account/doc.go b/service/account/doc.go new file mode 100644 index 0000000000..dc16d5eb15 --- /dev/null +++ b/service/account/doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package account provides the client and types for making API +// requests to AWS Account. +// +// Operations for Amazon Web Services Account Management +// +// See https://docs.aws.amazon.com/goto/WebAPI/account-2021-02-01 for more information on this service. +// +// See account package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/account/ +// +// Using the Client +// +// To contact AWS Account with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Account client Account for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/account/#New +package account diff --git a/service/account/errors.go b/service/account/errors.go new file mode 100644 index 0000000000..f5d6dd8712 --- /dev/null +++ b/service/account/errors.go @@ -0,0 +1,51 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package account + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // The operation failed because the calling identity doesn't have the minimum + // required permissions. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // The operation failed because of an error internal to Amazon Web Services. + // Try your operation again later. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The operation failed because it specified a resource that can't be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeTooManyRequestsException for service response error code + // "TooManyRequestsException". + // + // The operation failed because it was called too frequently and exceeded a + // throttle limit. + ErrCodeTooManyRequestsException = "TooManyRequestsException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The operation failed because one of the input parameters was invalid. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "TooManyRequestsException": newErrorTooManyRequestsException, + "ValidationException": newErrorValidationException, +} diff --git a/service/account/service.go b/service/account/service.go new file mode 100644 index 0000000000..0326a5529b --- /dev/null +++ b/service/account/service.go @@ -0,0 +1,104 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package account + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// Account provides the API operation methods for making requests to +// AWS Account. See this package's package overview docs +// for details on the service. +// +// Account methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Account struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "Account" // Name of service. + EndpointsID = "account" // ID to lookup a service endpoint with. + ServiceID = "Account" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the Account client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// mySession := session.Must(session.NewSession()) +// +// // Create a Account client from just a session. +// svc := account.New(mySession) +// +// // Create a Account client with additional configuration +// svc := account.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *Account { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "account" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *Account { + svc := &Account{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2021-02-01", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a Account operation and runs any +// custom request initialization. +func (c *Account) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/cloudcontrolapi/api.go b/service/cloudcontrolapi/api.go new file mode 100644 index 0000000000..3061c9a34b --- /dev/null +++ b/service/cloudcontrolapi/api.go @@ -0,0 +1,4069 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudcontrolapi + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" +) + +const opCancelResourceRequest = "CancelResourceRequest" + +// CancelResourceRequestRequest generates a "aws/request.Request" representing the +// client's request for the CancelResourceRequest 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 CancelResourceRequest for more information on using the CancelResourceRequest +// 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 CancelResourceRequestRequest method. +// req, resp := client.CancelResourceRequestRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/CancelResourceRequest +func (c *CloudControlApi) CancelResourceRequestRequest(input *CancelResourceRequestInput) (req *request.Request, output *CancelResourceRequestOutput) { + op := &request.Operation{ + Name: opCancelResourceRequest, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CancelResourceRequestInput{} + } + + output = &CancelResourceRequestOutput{} + req = c.newRequest(op, input, output) + return +} + +// CancelResourceRequest API operation for AWS Cloud Control API. +// +// Cancels the specified resource operation request. For more information, see +// Canceling resource operation requests (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html#resource-operations-manage-requests-cancel) +// in the Amazon Web Services Cloud Control API User Guide. +// +// Only resource operations requests with a status of PENDING or IN_PROGRESS +// can be cancelled. +// +// 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 AWS Cloud Control API's +// API operation CancelResourceRequest for usage and error information. +// +// Returned Error Types: +// * RequestTokenNotFoundException +// A resource operation with the specified request token cannot be found. +// +// * ConcurrentModificationException +// The resource is currently being modified by another operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/CancelResourceRequest +func (c *CloudControlApi) CancelResourceRequest(input *CancelResourceRequestInput) (*CancelResourceRequestOutput, error) { + req, out := c.CancelResourceRequestRequest(input) + return out, req.Send() +} + +// CancelResourceRequestWithContext is the same as CancelResourceRequest with the addition of +// the ability to pass a context and additional request options. +// +// See CancelResourceRequest 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 *CloudControlApi) CancelResourceRequestWithContext(ctx aws.Context, input *CancelResourceRequestInput, opts ...request.Option) (*CancelResourceRequestOutput, error) { + req, out := c.CancelResourceRequestRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateResource = "CreateResource" + +// CreateResourceRequest generates a "aws/request.Request" representing the +// client's request for the CreateResource 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 CreateResource for more information on using the CreateResource +// 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 CreateResourceRequest method. +// req, resp := client.CreateResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/CreateResource +func (c *CloudControlApi) CreateResourceRequest(input *CreateResourceInput) (req *request.Request, output *CreateResourceOutput) { + op := &request.Operation{ + Name: opCreateResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateResourceInput{} + } + + output = &CreateResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateResource API operation for AWS Cloud Control API. +// +// Creates the specified resource. For more information, see Creating a resource +// (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-create.html) +// in the Amazon Web Services Cloud Control API User Guide. +// +// After you have initiated a resource creation request, you can monitor the +// progress of your request by calling GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) +// using the RequestToken of the ProgressEvent type returned by CreateResource. +// +// 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 AWS Cloud Control API's +// API operation CreateResource for usage and error information. +// +// Returned Error Types: +// * ConcurrentOperationException +// Another resource operation is currently being performed on this resource. +// +// * ClientTokenConflictException +// The specified client token has already been used in another resource request. +// +// It is best practice for client tokens to be unique for each resource operation +// request. However, client token expire after 36 hours. +// +// * UnsupportedActionException +// The specified resource does not support this resource operation. +// +// * TypeNotFoundException +// The specified extension does not exist in the CloudFormation registry. +// +// * AlreadyExistsException +// The resource with the name requested already exists. +// +// * GeneralServiceException +// The resource handler has returned that the downstream service generated an +// error that does not map to any other handler error code. +// +// * HandlerInternalFailureException +// The resource handler has returned that an unexpected error occurred within +// the resource handler. +// +// * InvalidCredentialsException +// The resource handler has returned that the credentials provided by the user +// are invalid. +// +// * InvalidRequestException +// The resource handler has returned that invalid input from the user has generated +// a generic exception. +// +// * NetworkFailureException +// The resource handler has returned that the request could not be completed +// due to networking issues, such as a failure to receive a response from the +// server. +// +// * ResourceNotFoundException +// A resource with the specified identifier cannot be found. +// +// * NotStabilizedException +// The resource handler has returned that the downstream resource failed to +// complete all of its ready-state checks. +// +// * NotUpdatableException +// One or more properties included in this resource operation are defined as +// create-only, and therefore cannot be updated. +// +// * ResourceConflictException +// The resource is temporarily unavailable to be acted upon. For example, if +// the resource is currently undergoing an operation and cannot be acted upon +// until that operation is finished. +// +// * ServiceInternalErrorException +// The resource handler has returned that the downstream service returned an +// internal error, typically with a 5XX HTTP status code. +// +// * ServiceLimitExceededException +// The resource handler has returned that a non-transient resource limit was +// reached on the service side. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * PrivateTypeException +// Cloud Control API has not received a valid response from the resource handler, +// due to a configuration error. This includes issues such as the resource handler +// returning an invalid response, or timing out. +// +// * HandlerFailureException +// The resource handler has failed without a returning a more specific error +// code. This can include timeouts. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/CreateResource +func (c *CloudControlApi) CreateResource(input *CreateResourceInput) (*CreateResourceOutput, error) { + req, out := c.CreateResourceRequest(input) + return out, req.Send() +} + +// CreateResourceWithContext is the same as CreateResource with the addition of +// the ability to pass a context and additional request options. +// +// See CreateResource 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 *CloudControlApi) CreateResourceWithContext(ctx aws.Context, input *CreateResourceInput, opts ...request.Option) (*CreateResourceOutput, error) { + req, out := c.CreateResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteResource = "DeleteResource" + +// DeleteResourceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteResource 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 DeleteResource for more information on using the DeleteResource +// 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 DeleteResourceRequest method. +// req, resp := client.DeleteResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/DeleteResource +func (c *CloudControlApi) DeleteResourceRequest(input *DeleteResourceInput) (req *request.Request, output *DeleteResourceOutput) { + op := &request.Operation{ + Name: opDeleteResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteResourceInput{} + } + + output = &DeleteResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteResource API operation for AWS Cloud Control API. +// +// Deletes the specified resource. For details, see Deleting a resource (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-delete.html) +// in the Amazon Web Services Cloud Control API User Guide. +// +// After you have initiated a resource deletion request, you can monitor the +// progress of your request by calling GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) +// using the RequestToken of the ProgressEvent returned by DeleteResource. +// +// 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 AWS Cloud Control API's +// API operation DeleteResource for usage and error information. +// +// Returned Error Types: +// * ConcurrentOperationException +// Another resource operation is currently being performed on this resource. +// +// * ClientTokenConflictException +// The specified client token has already been used in another resource request. +// +// It is best practice for client tokens to be unique for each resource operation +// request. However, client token expire after 36 hours. +// +// * UnsupportedActionException +// The specified resource does not support this resource operation. +// +// * TypeNotFoundException +// The specified extension does not exist in the CloudFormation registry. +// +// * AlreadyExistsException +// The resource with the name requested already exists. +// +// * GeneralServiceException +// The resource handler has returned that the downstream service generated an +// error that does not map to any other handler error code. +// +// * HandlerInternalFailureException +// The resource handler has returned that an unexpected error occurred within +// the resource handler. +// +// * InvalidCredentialsException +// The resource handler has returned that the credentials provided by the user +// are invalid. +// +// * InvalidRequestException +// The resource handler has returned that invalid input from the user has generated +// a generic exception. +// +// * NetworkFailureException +// The resource handler has returned that the request could not be completed +// due to networking issues, such as a failure to receive a response from the +// server. +// +// * ResourceNotFoundException +// A resource with the specified identifier cannot be found. +// +// * NotStabilizedException +// The resource handler has returned that the downstream resource failed to +// complete all of its ready-state checks. +// +// * NotUpdatableException +// One or more properties included in this resource operation are defined as +// create-only, and therefore cannot be updated. +// +// * ResourceConflictException +// The resource is temporarily unavailable to be acted upon. For example, if +// the resource is currently undergoing an operation and cannot be acted upon +// until that operation is finished. +// +// * ServiceInternalErrorException +// The resource handler has returned that the downstream service returned an +// internal error, typically with a 5XX HTTP status code. +// +// * ServiceLimitExceededException +// The resource handler has returned that a non-transient resource limit was +// reached on the service side. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * PrivateTypeException +// Cloud Control API has not received a valid response from the resource handler, +// due to a configuration error. This includes issues such as the resource handler +// returning an invalid response, or timing out. +// +// * HandlerFailureException +// The resource handler has failed without a returning a more specific error +// code. This can include timeouts. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/DeleteResource +func (c *CloudControlApi) DeleteResource(input *DeleteResourceInput) (*DeleteResourceOutput, error) { + req, out := c.DeleteResourceRequest(input) + return out, req.Send() +} + +// DeleteResourceWithContext is the same as DeleteResource with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteResource 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 *CloudControlApi) DeleteResourceWithContext(ctx aws.Context, input *DeleteResourceInput, opts ...request.Option) (*DeleteResourceOutput, error) { + req, out := c.DeleteResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetResource = "GetResource" + +// GetResourceRequest generates a "aws/request.Request" representing the +// client's request for the GetResource 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 GetResource for more information on using the GetResource +// 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 GetResourceRequest method. +// req, resp := client.GetResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/GetResource +func (c *CloudControlApi) GetResourceRequest(input *GetResourceInput) (req *request.Request, output *GetResourceOutput) { + op := &request.Operation{ + Name: opGetResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetResourceInput{} + } + + output = &GetResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetResource API operation for AWS Cloud Control API. +// +// Returns information about the current state of the specified resource. For +// details, see Reading a resource's current state (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-read.html). +// +// You can use this action to return information about an existing resource +// in your account and Amazon Web Services Region, whether or not those resources +// were provisioned using Cloud Control API. +// +// 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 AWS Cloud Control API's +// API operation GetResource for usage and error information. +// +// Returned Error Types: +// * UnsupportedActionException +// The specified resource does not support this resource operation. +// +// * TypeNotFoundException +// The specified extension does not exist in the CloudFormation registry. +// +// * AlreadyExistsException +// The resource with the name requested already exists. +// +// * GeneralServiceException +// The resource handler has returned that the downstream service generated an +// error that does not map to any other handler error code. +// +// * HandlerInternalFailureException +// The resource handler has returned that an unexpected error occurred within +// the resource handler. +// +// * InvalidCredentialsException +// The resource handler has returned that the credentials provided by the user +// are invalid. +// +// * InvalidRequestException +// The resource handler has returned that invalid input from the user has generated +// a generic exception. +// +// * NetworkFailureException +// The resource handler has returned that the request could not be completed +// due to networking issues, such as a failure to receive a response from the +// server. +// +// * ResourceNotFoundException +// A resource with the specified identifier cannot be found. +// +// * NotStabilizedException +// The resource handler has returned that the downstream resource failed to +// complete all of its ready-state checks. +// +// * NotUpdatableException +// One or more properties included in this resource operation are defined as +// create-only, and therefore cannot be updated. +// +// * ResourceConflictException +// The resource is temporarily unavailable to be acted upon. For example, if +// the resource is currently undergoing an operation and cannot be acted upon +// until that operation is finished. +// +// * ServiceInternalErrorException +// The resource handler has returned that the downstream service returned an +// internal error, typically with a 5XX HTTP status code. +// +// * ServiceLimitExceededException +// The resource handler has returned that a non-transient resource limit was +// reached on the service side. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * PrivateTypeException +// Cloud Control API has not received a valid response from the resource handler, +// due to a configuration error. This includes issues such as the resource handler +// returning an invalid response, or timing out. +// +// * HandlerFailureException +// The resource handler has failed without a returning a more specific error +// code. This can include timeouts. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/GetResource +func (c *CloudControlApi) GetResource(input *GetResourceInput) (*GetResourceOutput, error) { + req, out := c.GetResourceRequest(input) + return out, req.Send() +} + +// GetResourceWithContext is the same as GetResource with the addition of +// the ability to pass a context and additional request options. +// +// See GetResource 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 *CloudControlApi) GetResourceWithContext(ctx aws.Context, input *GetResourceInput, opts ...request.Option) (*GetResourceOutput, error) { + req, out := c.GetResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetResourceRequestStatus = "GetResourceRequestStatus" + +// GetResourceRequestStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetResourceRequestStatus 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 GetResourceRequestStatus for more information on using the GetResourceRequestStatus +// 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 GetResourceRequestStatusRequest method. +// req, resp := client.GetResourceRequestStatusRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/GetResourceRequestStatus +func (c *CloudControlApi) GetResourceRequestStatusRequest(input *GetResourceRequestStatusInput) (req *request.Request, output *GetResourceRequestStatusOutput) { + op := &request.Operation{ + Name: opGetResourceRequestStatus, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetResourceRequestStatusInput{} + } + + output = &GetResourceRequestStatusOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetResourceRequestStatus API operation for AWS Cloud Control API. +// +// Returns the current status of a resource operation request. For more information, +// see Tracking the progress of resource operation requests (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html#resource-operations-manage-requests-track) +// in the Amazon Web Services Cloud Control API 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 AWS Cloud Control API's +// API operation GetResourceRequestStatus for usage and error information. +// +// Returned Error Types: +// * RequestTokenNotFoundException +// A resource operation with the specified request token cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/GetResourceRequestStatus +func (c *CloudControlApi) GetResourceRequestStatus(input *GetResourceRequestStatusInput) (*GetResourceRequestStatusOutput, error) { + req, out := c.GetResourceRequestStatusRequest(input) + return out, req.Send() +} + +// GetResourceRequestStatusWithContext is the same as GetResourceRequestStatus with the addition of +// the ability to pass a context and additional request options. +// +// See GetResourceRequestStatus 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 *CloudControlApi) GetResourceRequestStatusWithContext(ctx aws.Context, input *GetResourceRequestStatusInput, opts ...request.Option) (*GetResourceRequestStatusOutput, error) { + req, out := c.GetResourceRequestStatusRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListResourceRequests = "ListResourceRequests" + +// ListResourceRequestsRequest generates a "aws/request.Request" representing the +// client's request for the ListResourceRequests 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 ListResourceRequests for more information on using the ListResourceRequests +// 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 ListResourceRequestsRequest method. +// req, resp := client.ListResourceRequestsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/ListResourceRequests +func (c *CloudControlApi) ListResourceRequestsRequest(input *ListResourceRequestsInput) (req *request.Request, output *ListResourceRequestsOutput) { + op := &request.Operation{ + Name: opListResourceRequests, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListResourceRequestsInput{} + } + + output = &ListResourceRequestsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListResourceRequests API operation for AWS Cloud Control API. +// +// Returns existing resource operation requests. This includes requests of all +// status types. For more information, see Listing active resource operation +// requests (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html#resource-operations-manage-requests-list) +// in the Amazon Web Services Cloud Control API User Guide. +// +// Resource operation requests expire after seven days. +// +// 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 AWS Cloud Control API's +// API operation ListResourceRequests for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/ListResourceRequests +func (c *CloudControlApi) ListResourceRequests(input *ListResourceRequestsInput) (*ListResourceRequestsOutput, error) { + req, out := c.ListResourceRequestsRequest(input) + return out, req.Send() +} + +// ListResourceRequestsWithContext is the same as ListResourceRequests with the addition of +// the ability to pass a context and additional request options. +// +// See ListResourceRequests 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 *CloudControlApi) ListResourceRequestsWithContext(ctx aws.Context, input *ListResourceRequestsInput, opts ...request.Option) (*ListResourceRequestsOutput, error) { + req, out := c.ListResourceRequestsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListResourceRequestsPages iterates over the pages of a ListResourceRequests operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListResourceRequests 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 ListResourceRequests operation. +// pageNum := 0 +// err := client.ListResourceRequestsPages(params, +// func(page *cloudcontrolapi.ListResourceRequestsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CloudControlApi) ListResourceRequestsPages(input *ListResourceRequestsInput, fn func(*ListResourceRequestsOutput, bool) bool) error { + return c.ListResourceRequestsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListResourceRequestsPagesWithContext same as ListResourceRequestsPages 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 *CloudControlApi) ListResourceRequestsPagesWithContext(ctx aws.Context, input *ListResourceRequestsInput, fn func(*ListResourceRequestsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListResourceRequestsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListResourceRequestsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListResourceRequestsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListResources = "ListResources" + +// ListResourcesRequest generates a "aws/request.Request" representing the +// client's request for the ListResources 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 ListResources for more information on using the ListResources +// 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 ListResourcesRequest method. +// req, resp := client.ListResourcesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/ListResources +func (c *CloudControlApi) ListResourcesRequest(input *ListResourcesInput) (req *request.Request, output *ListResourcesOutput) { + op := &request.Operation{ + Name: opListResources, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListResourcesInput{} + } + + output = &ListResourcesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListResources API operation for AWS Cloud Control API. +// +// Returns information about the specified resources. For more information, +// see Discovering resources (cloudcontrolapi/latest/userguide/resource-operations-list.html) +// in the Amazon Web Services Cloud Control API User Guide. +// +// You can use this action to return information about existing resources in +// your account and Amazon Web Services Region, whether or not those resources +// were provisioned using Cloud Control API. +// +// 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 AWS Cloud Control API's +// API operation ListResources for usage and error information. +// +// Returned Error Types: +// * UnsupportedActionException +// The specified resource does not support this resource operation. +// +// * TypeNotFoundException +// The specified extension does not exist in the CloudFormation registry. +// +// * AlreadyExistsException +// The resource with the name requested already exists. +// +// * GeneralServiceException +// The resource handler has returned that the downstream service generated an +// error that does not map to any other handler error code. +// +// * HandlerInternalFailureException +// The resource handler has returned that an unexpected error occurred within +// the resource handler. +// +// * InvalidCredentialsException +// The resource handler has returned that the credentials provided by the user +// are invalid. +// +// * InvalidRequestException +// The resource handler has returned that invalid input from the user has generated +// a generic exception. +// +// * NetworkFailureException +// The resource handler has returned that the request could not be completed +// due to networking issues, such as a failure to receive a response from the +// server. +// +// * ResourceNotFoundException +// A resource with the specified identifier cannot be found. +// +// * NotStabilizedException +// The resource handler has returned that the downstream resource failed to +// complete all of its ready-state checks. +// +// * NotUpdatableException +// One or more properties included in this resource operation are defined as +// create-only, and therefore cannot be updated. +// +// * ResourceConflictException +// The resource is temporarily unavailable to be acted upon. For example, if +// the resource is currently undergoing an operation and cannot be acted upon +// until that operation is finished. +// +// * ServiceInternalErrorException +// The resource handler has returned that the downstream service returned an +// internal error, typically with a 5XX HTTP status code. +// +// * ServiceLimitExceededException +// The resource handler has returned that a non-transient resource limit was +// reached on the service side. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * PrivateTypeException +// Cloud Control API has not received a valid response from the resource handler, +// due to a configuration error. This includes issues such as the resource handler +// returning an invalid response, or timing out. +// +// * HandlerFailureException +// The resource handler has failed without a returning a more specific error +// code. This can include timeouts. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/ListResources +func (c *CloudControlApi) ListResources(input *ListResourcesInput) (*ListResourcesOutput, error) { + req, out := c.ListResourcesRequest(input) + return out, req.Send() +} + +// ListResourcesWithContext is the same as ListResources with the addition of +// the ability to pass a context and additional request options. +// +// See ListResources 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 *CloudControlApi) ListResourcesWithContext(ctx aws.Context, input *ListResourcesInput, opts ...request.Option) (*ListResourcesOutput, error) { + req, out := c.ListResourcesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListResourcesPages iterates over the pages of a ListResources operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListResources 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 ListResources operation. +// pageNum := 0 +// err := client.ListResourcesPages(params, +// func(page *cloudcontrolapi.ListResourcesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *CloudControlApi) ListResourcesPages(input *ListResourcesInput, fn func(*ListResourcesOutput, bool) bool) error { + return c.ListResourcesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListResourcesPagesWithContext same as ListResourcesPages 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 *CloudControlApi) ListResourcesPagesWithContext(ctx aws.Context, input *ListResourcesInput, fn func(*ListResourcesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListResourcesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListResourcesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListResourcesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opUpdateResource = "UpdateResource" + +// UpdateResourceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateResource 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 UpdateResource for more information on using the UpdateResource +// 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 UpdateResourceRequest method. +// req, resp := client.UpdateResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/UpdateResource +func (c *CloudControlApi) UpdateResourceRequest(input *UpdateResourceInput) (req *request.Request, output *UpdateResourceOutput) { + op := &request.Operation{ + Name: opUpdateResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateResourceInput{} + } + + output = &UpdateResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateResource API operation for AWS Cloud Control API. +// +// Updates the specified property values in the resource. +// +// You specify your resource property updates as a list of patch operations +// contained in a JSON patch document that adheres to the RFC 6902 - JavaScript +// Object Notation (JSON) Patch (https://datatracker.ietf.org/doc/html/rfc6902) +// standard. +// +// For details on how Cloud Control API performs resource update operations, +// see Updating a resource (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-update.html) +// in the Amazon Web Services Cloud Control API User Guide. +// +// After you have initiated a resource update request, you can monitor the progress +// of your request by calling GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) +// using the RequestToken of the ProgressEvent returned by UpdateResource. +// +// For more information about the properties of a specific resource, refer to +// the related topic for the resource in the Resource and property types reference +// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) +// in the Amazon Web Services CloudFormation Users 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 AWS Cloud Control API's +// API operation UpdateResource for usage and error information. +// +// Returned Error Types: +// * ConcurrentOperationException +// Another resource operation is currently being performed on this resource. +// +// * ClientTokenConflictException +// The specified client token has already been used in another resource request. +// +// It is best practice for client tokens to be unique for each resource operation +// request. However, client token expire after 36 hours. +// +// * UnsupportedActionException +// The specified resource does not support this resource operation. +// +// * TypeNotFoundException +// The specified extension does not exist in the CloudFormation registry. +// +// * AlreadyExistsException +// The resource with the name requested already exists. +// +// * GeneralServiceException +// The resource handler has returned that the downstream service generated an +// error that does not map to any other handler error code. +// +// * HandlerInternalFailureException +// The resource handler has returned that an unexpected error occurred within +// the resource handler. +// +// * InvalidCredentialsException +// The resource handler has returned that the credentials provided by the user +// are invalid. +// +// * InvalidRequestException +// The resource handler has returned that invalid input from the user has generated +// a generic exception. +// +// * NetworkFailureException +// The resource handler has returned that the request could not be completed +// due to networking issues, such as a failure to receive a response from the +// server. +// +// * ResourceNotFoundException +// A resource with the specified identifier cannot be found. +// +// * NotStabilizedException +// The resource handler has returned that the downstream resource failed to +// complete all of its ready-state checks. +// +// * NotUpdatableException +// One or more properties included in this resource operation are defined as +// create-only, and therefore cannot be updated. +// +// * ResourceConflictException +// The resource is temporarily unavailable to be acted upon. For example, if +// the resource is currently undergoing an operation and cannot be acted upon +// until that operation is finished. +// +// * ServiceInternalErrorException +// The resource handler has returned that the downstream service returned an +// internal error, typically with a 5XX HTTP status code. +// +// * ServiceLimitExceededException +// The resource handler has returned that a non-transient resource limit was +// reached on the service side. +// +// * ThrottlingException +// The request was denied due to request throttling. +// +// * PrivateTypeException +// Cloud Control API has not received a valid response from the resource handler, +// due to a configuration error. This includes issues such as the resource handler +// returning an invalid response, or timing out. +// +// * HandlerFailureException +// The resource handler has failed without a returning a more specific error +// code. This can include timeouts. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30/UpdateResource +func (c *CloudControlApi) UpdateResource(input *UpdateResourceInput) (*UpdateResourceOutput, error) { + req, out := c.UpdateResourceRequest(input) + return out, req.Send() +} + +// UpdateResourceWithContext is the same as UpdateResource with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateResource 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 *CloudControlApi) UpdateResourceWithContext(ctx aws.Context, input *UpdateResourceInput, opts ...request.Option) (*UpdateResourceOutput, error) { + req, out := c.UpdateResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// The resource with the name requested already exists. +type AlreadyExistsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AlreadyExistsException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AlreadyExistsException) GoString() string { + return s.String() +} + +func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error { + return &AlreadyExistsException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AlreadyExistsException) Code() string { + return "AlreadyExistsException" +} + +// Message returns the exception's message. +func (s *AlreadyExistsException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AlreadyExistsException) OrigErr() error { + return nil +} + +func (s *AlreadyExistsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AlreadyExistsException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AlreadyExistsException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CancelResourceRequestInput struct { + _ struct{} `type:"structure"` + + // The RequestToken of the ProgressEvent object returned by the resource operation + // request. + // + // RequestToken is a required field + RequestToken *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CancelResourceRequestInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CancelResourceRequestInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CancelResourceRequestInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CancelResourceRequestInput"} + if s.RequestToken == nil { + invalidParams.Add(request.NewErrParamRequired("RequestToken")) + } + if s.RequestToken != nil && len(*s.RequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RequestToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRequestToken sets the RequestToken field's value. +func (s *CancelResourceRequestInput) SetRequestToken(v string) *CancelResourceRequestInput { + s.RequestToken = &v + return s +} + +type CancelResourceRequestOutput struct { + _ struct{} `type:"structure"` + + // Represents the current status of a resource operation request. For more information, + // see Managing resource operation requests (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html) + // in the Amazon Web Services Cloud Control API User Guide. + ProgressEvent *ProgressEvent `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CancelResourceRequestOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CancelResourceRequestOutput) GoString() string { + return s.String() +} + +// SetProgressEvent sets the ProgressEvent field's value. +func (s *CancelResourceRequestOutput) SetProgressEvent(v *ProgressEvent) *CancelResourceRequestOutput { + s.ProgressEvent = v + return s +} + +// The specified client token has already been used in another resource request. +// +// It is best practice for client tokens to be unique for each resource operation +// request. However, client token expire after 36 hours. +type ClientTokenConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ClientTokenConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ClientTokenConflictException) GoString() string { + return s.String() +} + +func newErrorClientTokenConflictException(v protocol.ResponseMetadata) error { + return &ClientTokenConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ClientTokenConflictException) Code() string { + return "ClientTokenConflictException" +} + +// Message returns the exception's message. +func (s *ClientTokenConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ClientTokenConflictException) OrigErr() error { + return nil +} + +func (s *ClientTokenConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ClientTokenConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ClientTokenConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource is currently being modified by another operation. +type ConcurrentModificationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentModificationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentModificationException) GoString() string { + return s.String() +} + +func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error { + return &ConcurrentModificationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConcurrentModificationException) Code() string { + return "ConcurrentModificationException" +} + +// Message returns the exception's message. +func (s *ConcurrentModificationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConcurrentModificationException) OrigErr() error { + return nil +} + +func (s *ConcurrentModificationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConcurrentModificationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConcurrentModificationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Another resource operation is currently being performed on this resource. +type ConcurrentOperationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentOperationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentOperationException) GoString() string { + return s.String() +} + +func newErrorConcurrentOperationException(v protocol.ResponseMetadata) error { + return &ConcurrentOperationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConcurrentOperationException) Code() string { + return "ConcurrentOperationException" +} + +// Message returns the exception's message. +func (s *ConcurrentOperationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConcurrentOperationException) OrigErr() error { + return nil +} + +func (s *ConcurrentOperationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConcurrentOperationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConcurrentOperationException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateResourceInput struct { + _ struct{} `type:"structure"` + + // A unique identifier to ensure the idempotency of the resource request. As + // a best practice, specify this token to ensure idempotency, so that Amazon + // Web Services Cloud Control API can accurately distinguish between request + // retries and new resource requests. You might retry a resource request to + // ensure that it was successfully received. + // + // A client token is valid for 36 hours once used. After that, a resource request + // with the same client token is treated as a new request. + // + // If you do not specify a client token, one is generated for inclusion in the + // request. + // + // For more information, see Ensuring resource operation requests are unique + // (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-idempotency) + // in the Amazon Web Services Cloud Control API User Guide. + ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // Structured data format representing the desired state of the resource, consisting + // of that resource's properties and their desired values. + // + // Cloud Control API currently supports JSON as a structured data format. + // + // Specify the desired state as one of the following: + // + // * A JSON blob + // + // * A local path containing the desired state in JSON data format + // + // For more information, see Composing the desired state of the resource (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-create.html#resource-operations-create-desiredstate) + // in the Amazon Web Services Cloud Control API User Guide. + // + // For more information about the properties of a specific resource, refer to + // the related topic for the resource in the Resource and property types reference + // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) + // in the Amazon Web Services CloudFormation Users Guide. + // + // DesiredState is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateResourceInput's + // String and GoString methods. + // + // DesiredState is a required field + DesiredState *string `min:"1" type:"string" required:"true" sensitive:"true"` + + // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) + // for Cloud Control API to use when performing this resource operation. The + // role specified must have the permissions required for this operation. The + // necessary permissions for each event handler are defined in the handlers + // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers) + // section of the resource type definition schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html). + // + // If you do not specify a role, Cloud Control API uses a temporary session + // created using your Amazon Web Services user credentials. + // + // For more information, see Specifying credentials (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-permissions) + // in the Amazon Web Services Cloud Control API User Guide. + RoleArn *string `min:"20" type:"string"` + + // The name of the resource type. + // + // TypeName is a required field + TypeName *string `min:"10" type:"string" required:"true"` + + // For private resource types, the type version to use in this resource operation. + // If you do not specify a resource version, CloudFormation uses the default + // version. + TypeVersionId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateResourceInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.DesiredState == nil { + invalidParams.Add(request.NewErrParamRequired("DesiredState")) + } + if s.DesiredState != nil && len(*s.DesiredState) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DesiredState", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + if s.TypeName != nil && len(*s.TypeName) < 10 { + invalidParams.Add(request.NewErrParamMinLen("TypeName", 10)) + } + if s.TypeVersionId != nil && len(*s.TypeVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TypeVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateResourceInput) SetClientToken(v string) *CreateResourceInput { + s.ClientToken = &v + return s +} + +// SetDesiredState sets the DesiredState field's value. +func (s *CreateResourceInput) SetDesiredState(v string) *CreateResourceInput { + s.DesiredState = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateResourceInput) SetRoleArn(v string) *CreateResourceInput { + s.RoleArn = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *CreateResourceInput) SetTypeName(v string) *CreateResourceInput { + s.TypeName = &v + return s +} + +// SetTypeVersionId sets the TypeVersionId field's value. +func (s *CreateResourceInput) SetTypeVersionId(v string) *CreateResourceInput { + s.TypeVersionId = &v + return s +} + +type CreateResourceOutput struct { + _ struct{} `type:"structure"` + + // Represents the current status of the resource creation request. + // + // After you have initiated a resource creation request, you can monitor the + // progress of your request by calling GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) + // using the RequestToken of the ProgressEvent returned by CreateResource. + ProgressEvent *ProgressEvent `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateResourceOutput) GoString() string { + return s.String() +} + +// SetProgressEvent sets the ProgressEvent field's value. +func (s *CreateResourceOutput) SetProgressEvent(v *ProgressEvent) *CreateResourceOutput { + s.ProgressEvent = v + return s +} + +type DeleteResourceInput struct { + _ struct{} `type:"structure"` + + // A unique identifier to ensure the idempotency of the resource request. As + // a best practice, specify this token to ensure idempotency, so that Amazon + // Web Services Cloud Control API can accurately distinguish between request + // retries and new resource requests. You might retry a resource request to + // ensure that it was successfully received. + // + // A client token is valid for 36 hours once used. After that, a resource request + // with the same client token is treated as a new request. + // + // If you do not specify a client token, one is generated for inclusion in the + // request. + // + // For more information, see Ensuring resource operation requests are unique + // (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-idempotency) + // in the Amazon Web Services Cloud Control API User Guide. + ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // The identifier for the resource. + // + // You can specify the primary identifier, or any secondary identifier defined + // for the resource type in its resource schema. You can only specify one identifier. + // Primary identifiers can be specified as a string or JSON; secondary identifiers + // must be specified as JSON. + // + // For compound primary identifiers (that is, one that consists of multiple + // resource properties strung together), to specify the primary identifier as + // a string, list the property values in the order they are specified in the + // primary identifier definition, separated by |. + // + // For more information, see Identifying resources (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-identifier.html) + // in the Amazon Web Services Cloud Control API User Guide. + // + // Identifier is a required field + Identifier *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) + // for Cloud Control API to use when performing this resource operation. The + // role specified must have the permissions required for this operation. The + // necessary permissions for each event handler are defined in the handlers + // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers) + // section of the resource type definition schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html). + // + // If you do not specify a role, Cloud Control API uses a temporary session + // created using your Amazon Web Services user credentials. + // + // For more information, see Specifying credentials (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-permissions) + // in the Amazon Web Services Cloud Control API User Guide. + RoleArn *string `min:"20" type:"string"` + + // The name of the resource type. + // + // TypeName is a required field + TypeName *string `min:"10" type:"string" required:"true"` + + // For private resource types, the type version to use in this resource operation. + // If you do not specify a resource version, CloudFormation uses the default + // version. + TypeVersionId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteResourceInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Identifier == nil { + invalidParams.Add(request.NewErrParamRequired("Identifier")) + } + if s.Identifier != nil && len(*s.Identifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Identifier", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + if s.TypeName != nil && len(*s.TypeName) < 10 { + invalidParams.Add(request.NewErrParamMinLen("TypeName", 10)) + } + if s.TypeVersionId != nil && len(*s.TypeVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TypeVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *DeleteResourceInput) SetClientToken(v string) *DeleteResourceInput { + s.ClientToken = &v + return s +} + +// SetIdentifier sets the Identifier field's value. +func (s *DeleteResourceInput) SetIdentifier(v string) *DeleteResourceInput { + s.Identifier = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *DeleteResourceInput) SetRoleArn(v string) *DeleteResourceInput { + s.RoleArn = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *DeleteResourceInput) SetTypeName(v string) *DeleteResourceInput { + s.TypeName = &v + return s +} + +// SetTypeVersionId sets the TypeVersionId field's value. +func (s *DeleteResourceInput) SetTypeVersionId(v string) *DeleteResourceInput { + s.TypeVersionId = &v + return s +} + +type DeleteResourceOutput struct { + _ struct{} `type:"structure"` + + // Represents the current status of the resource deletion request. + // + // After you have initiated a resource deletion request, you can monitor the + // progress of your request by calling GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) + // using the RequestToken of the ProgressEvent returned by DeleteResource. + ProgressEvent *ProgressEvent `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteResourceOutput) GoString() string { + return s.String() +} + +// SetProgressEvent sets the ProgressEvent field's value. +func (s *DeleteResourceOutput) SetProgressEvent(v *ProgressEvent) *DeleteResourceOutput { + s.ProgressEvent = v + return s +} + +// The resource handler has returned that the downstream service generated an +// error that does not map to any other handler error code. +type GeneralServiceException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GeneralServiceException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GeneralServiceException) GoString() string { + return s.String() +} + +func newErrorGeneralServiceException(v protocol.ResponseMetadata) error { + return &GeneralServiceException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *GeneralServiceException) Code() string { + return "GeneralServiceException" +} + +// Message returns the exception's message. +func (s *GeneralServiceException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *GeneralServiceException) OrigErr() error { + return nil +} + +func (s *GeneralServiceException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *GeneralServiceException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *GeneralServiceException) RequestID() string { + return s.RespMetadata.RequestID +} + +type GetResourceInput struct { + _ struct{} `type:"structure"` + + // The identifier for the resource. + // + // You can specify the primary identifier, or any secondary identifier defined + // for the resource type in its resource schema. You can only specify one identifier. + // Primary identifiers can be specified as a string or JSON; secondary identifiers + // must be specified as JSON. + // + // For compound primary identifiers (that is, one that consists of multiple + // resource properties strung together), to specify the primary identifier as + // a string, list the property values in the order they are specified in the + // primary identifier definition, separated by |. + // + // For more information, see Identifying resources (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-identifier.html) + // in the Amazon Web Services Cloud Control API User Guide. + // + // Identifier is a required field + Identifier *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) + // for Cloud Control API to use when performing this resource operation. The + // role specified must have the permissions required for this operation. The + // necessary permissions for each event handler are defined in the handlers + // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers) + // section of the resource type definition schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html). + // + // If you do not specify a role, Cloud Control API uses a temporary session + // created using your Amazon Web Services user credentials. + // + // For more information, see Specifying credentials (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-permissions) + // in the Amazon Web Services Cloud Control API User Guide. + RoleArn *string `min:"20" type:"string"` + + // The name of the resource type. + // + // TypeName is a required field + TypeName *string `min:"10" type:"string" required:"true"` + + // For private resource types, the type version to use in this resource operation. + // If you do not specify a resource version, CloudFormation uses the default + // version. + TypeVersionId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetResourceInput"} + if s.Identifier == nil { + invalidParams.Add(request.NewErrParamRequired("Identifier")) + } + if s.Identifier != nil && len(*s.Identifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Identifier", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + if s.TypeName != nil && len(*s.TypeName) < 10 { + invalidParams.Add(request.NewErrParamMinLen("TypeName", 10)) + } + if s.TypeVersionId != nil && len(*s.TypeVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TypeVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIdentifier sets the Identifier field's value. +func (s *GetResourceInput) SetIdentifier(v string) *GetResourceInput { + s.Identifier = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *GetResourceInput) SetRoleArn(v string) *GetResourceInput { + s.RoleArn = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *GetResourceInput) SetTypeName(v string) *GetResourceInput { + s.TypeName = &v + return s +} + +// SetTypeVersionId sets the TypeVersionId field's value. +func (s *GetResourceInput) SetTypeVersionId(v string) *GetResourceInput { + s.TypeVersionId = &v + return s +} + +type GetResourceOutput struct { + _ struct{} `type:"structure"` + + // Represents information about a provisioned resource. + ResourceDescription *ResourceDescription `type:"structure"` + + // The name of the resource type. + TypeName *string `min:"10" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceOutput) GoString() string { + return s.String() +} + +// SetResourceDescription sets the ResourceDescription field's value. +func (s *GetResourceOutput) SetResourceDescription(v *ResourceDescription) *GetResourceOutput { + s.ResourceDescription = v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *GetResourceOutput) SetTypeName(v string) *GetResourceOutput { + s.TypeName = &v + return s +} + +type GetResourceRequestStatusInput struct { + _ struct{} `type:"structure"` + + // A unique token used to track the progress of the resource operation request. + // + // Request tokens are included in the ProgressEvent type returned by a resource + // operation request. + // + // RequestToken is a required field + RequestToken *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceRequestStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceRequestStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetResourceRequestStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetResourceRequestStatusInput"} + if s.RequestToken == nil { + invalidParams.Add(request.NewErrParamRequired("RequestToken")) + } + if s.RequestToken != nil && len(*s.RequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RequestToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRequestToken sets the RequestToken field's value. +func (s *GetResourceRequestStatusInput) SetRequestToken(v string) *GetResourceRequestStatusInput { + s.RequestToken = &v + return s +} + +type GetResourceRequestStatusOutput struct { + _ struct{} `type:"structure"` + + // Represents the current status of the resource operation request. + ProgressEvent *ProgressEvent `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceRequestStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceRequestStatusOutput) GoString() string { + return s.String() +} + +// SetProgressEvent sets the ProgressEvent field's value. +func (s *GetResourceRequestStatusOutput) SetProgressEvent(v *ProgressEvent) *GetResourceRequestStatusOutput { + s.ProgressEvent = v + return s +} + +// The resource handler has failed without a returning a more specific error +// code. This can include timeouts. +type HandlerFailureException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s HandlerFailureException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s HandlerFailureException) GoString() string { + return s.String() +} + +func newErrorHandlerFailureException(v protocol.ResponseMetadata) error { + return &HandlerFailureException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *HandlerFailureException) Code() string { + return "HandlerFailureException" +} + +// Message returns the exception's message. +func (s *HandlerFailureException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *HandlerFailureException) OrigErr() error { + return nil +} + +func (s *HandlerFailureException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *HandlerFailureException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *HandlerFailureException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource handler has returned that an unexpected error occurred within +// the resource handler. +type HandlerInternalFailureException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s HandlerInternalFailureException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s HandlerInternalFailureException) GoString() string { + return s.String() +} + +func newErrorHandlerInternalFailureException(v protocol.ResponseMetadata) error { + return &HandlerInternalFailureException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *HandlerInternalFailureException) Code() string { + return "HandlerInternalFailureException" +} + +// Message returns the exception's message. +func (s *HandlerInternalFailureException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *HandlerInternalFailureException) OrigErr() error { + return nil +} + +func (s *HandlerInternalFailureException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *HandlerInternalFailureException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *HandlerInternalFailureException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource handler has returned that the credentials provided by the user +// are invalid. +type InvalidCredentialsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidCredentialsException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidCredentialsException) GoString() string { + return s.String() +} + +func newErrorInvalidCredentialsException(v protocol.ResponseMetadata) error { + return &InvalidCredentialsException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidCredentialsException) Code() string { + return "InvalidCredentialsException" +} + +// Message returns the exception's message. +func (s *InvalidCredentialsException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidCredentialsException) OrigErr() error { + return nil +} + +func (s *InvalidCredentialsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidCredentialsException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidCredentialsException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource handler has returned that invalid input from the user has generated +// a generic exception. +type InvalidRequestException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidRequestException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidRequestException) GoString() string { + return s.String() +} + +func newErrorInvalidRequestException(v protocol.ResponseMetadata) error { + return &InvalidRequestException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidRequestException) Code() string { + return "InvalidRequestException" +} + +// Message returns the exception's message. +func (s *InvalidRequestException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidRequestException) OrigErr() error { + return nil +} + +func (s *InvalidRequestException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidRequestException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidRequestException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListResourceRequestsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to be returned with a single call. If the number + // of available results exceeds this maximum, the response includes a NextToken + // value that you can assign to the NextToken request parameter to get the next + // set of results. + // + // The default is 20. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous paginated request didn't return all of the remaining results, + // the response object's NextToken parameter value is set to a token. To retrieve + // the next set of results, call this action again and assign that token to + // the request object's NextToken parameter. If there are no remaining results, + // the previous response object's NextToken parameter is set to null. + NextToken *string `min:"1" type:"string"` + + // The filter criteria to apply to the requests returned. + ResourceRequestStatusFilter *ResourceRequestStatusFilter `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourceRequestsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourceRequestsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListResourceRequestsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListResourceRequestsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListResourceRequestsInput) SetMaxResults(v int64) *ListResourceRequestsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListResourceRequestsInput) SetNextToken(v string) *ListResourceRequestsInput { + s.NextToken = &v + return s +} + +// SetResourceRequestStatusFilter sets the ResourceRequestStatusFilter field's value. +func (s *ListResourceRequestsInput) SetResourceRequestStatusFilter(v *ResourceRequestStatusFilter) *ListResourceRequestsInput { + s.ResourceRequestStatusFilter = v + return s +} + +type ListResourceRequestsOutput struct { + _ struct{} `type:"structure"` + + // If the request doesn't return all of the remaining results, NextToken is + // set to a token. To retrieve the next set of results, call ListResources again + // and assign that token to the request object's NextToken parameter. If the + // request returns all results, NextToken is set to null. + NextToken *string `min:"1" type:"string"` + + // The requests that match the specified filter criteria. + ResourceRequestStatusSummaries []*ProgressEvent `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourceRequestsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourceRequestsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListResourceRequestsOutput) SetNextToken(v string) *ListResourceRequestsOutput { + s.NextToken = &v + return s +} + +// SetResourceRequestStatusSummaries sets the ResourceRequestStatusSummaries field's value. +func (s *ListResourceRequestsOutput) SetResourceRequestStatusSummaries(v []*ProgressEvent) *ListResourceRequestsOutput { + s.ResourceRequestStatusSummaries = v + return s +} + +type ListResourcesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to be returned with a single call. If the number + // of available results exceeds this maximum, the response includes a NextToken + // value that you can assign to the NextToken request parameter to get the next + // set of results. + // + // The default is 20. + MaxResults *int64 `min:"1" type:"integer"` + + // If the previous paginated request didn't return all of the remaining results, + // the response object's NextToken parameter value is set to a token. To retrieve + // the next set of results, call this action again and assign that token to + // the request object's NextToken parameter. If there are no remaining results, + // the previous response object's NextToken parameter is set to null. + NextToken *string `min:"1" type:"string"` + + // The resource model to use to select the resources to return. + // + // ResourceModel is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ListResourcesInput's + // String and GoString methods. + ResourceModel *string `min:"1" type:"string" sensitive:"true"` + + // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) + // for Cloud Control API to use when performing this resource operation. The + // role specified must have the permissions required for this operation. The + // necessary permissions for each event handler are defined in the handlers + // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers) + // section of the resource type definition schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html). + // + // If you do not specify a role, Cloud Control API uses a temporary session + // created using your Amazon Web Services user credentials. + // + // For more information, see Specifying credentials (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-permissions) + // in the Amazon Web Services Cloud Control API User Guide. + RoleArn *string `min:"20" type:"string"` + + // The name of the resource type. + // + // TypeName is a required field + TypeName *string `min:"10" type:"string" required:"true"` + + // For private resource types, the type version to use in this resource operation. + // If you do not specify a resource version, CloudFormation uses the default + // version. + TypeVersionId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourcesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourcesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListResourcesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListResourcesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.ResourceModel != nil && len(*s.ResourceModel) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + if s.TypeName != nil && len(*s.TypeName) < 10 { + invalidParams.Add(request.NewErrParamMinLen("TypeName", 10)) + } + if s.TypeVersionId != nil && len(*s.TypeVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TypeVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListResourcesInput) SetMaxResults(v int64) *ListResourcesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListResourcesInput) SetNextToken(v string) *ListResourcesInput { + s.NextToken = &v + return s +} + +// SetResourceModel sets the ResourceModel field's value. +func (s *ListResourcesInput) SetResourceModel(v string) *ListResourcesInput { + s.ResourceModel = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *ListResourcesInput) SetRoleArn(v string) *ListResourcesInput { + s.RoleArn = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *ListResourcesInput) SetTypeName(v string) *ListResourcesInput { + s.TypeName = &v + return s +} + +// SetTypeVersionId sets the TypeVersionId field's value. +func (s *ListResourcesInput) SetTypeVersionId(v string) *ListResourcesInput { + s.TypeVersionId = &v + return s +} + +type ListResourcesOutput struct { + _ struct{} `type:"structure"` + + // If the request doesn't return all of the remaining results, NextToken is + // set to a token. To retrieve the next set of results, call ListResources again + // and assign that token to the request object's NextToken parameter. If the + // request returns all results, NextToken is set to null. + NextToken *string `min:"1" type:"string"` + + // Information about the specified resources, including primary identifier and + // resource model. + ResourceDescriptions []*ResourceDescription `type:"list"` + + // The name of the resource type. + TypeName *string `min:"10" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourcesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourcesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListResourcesOutput) SetNextToken(v string) *ListResourcesOutput { + s.NextToken = &v + return s +} + +// SetResourceDescriptions sets the ResourceDescriptions field's value. +func (s *ListResourcesOutput) SetResourceDescriptions(v []*ResourceDescription) *ListResourcesOutput { + s.ResourceDescriptions = v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *ListResourcesOutput) SetTypeName(v string) *ListResourcesOutput { + s.TypeName = &v + return s +} + +// The resource handler has returned that the request could not be completed +// due to networking issues, such as a failure to receive a response from the +// server. +type NetworkFailureException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NetworkFailureException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NetworkFailureException) GoString() string { + return s.String() +} + +func newErrorNetworkFailureException(v protocol.ResponseMetadata) error { + return &NetworkFailureException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *NetworkFailureException) Code() string { + return "NetworkFailureException" +} + +// Message returns the exception's message. +func (s *NetworkFailureException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *NetworkFailureException) OrigErr() error { + return nil +} + +func (s *NetworkFailureException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *NetworkFailureException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *NetworkFailureException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource handler has returned that the downstream resource failed to +// complete all of its ready-state checks. +type NotStabilizedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NotStabilizedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NotStabilizedException) GoString() string { + return s.String() +} + +func newErrorNotStabilizedException(v protocol.ResponseMetadata) error { + return &NotStabilizedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *NotStabilizedException) Code() string { + return "NotStabilizedException" +} + +// Message returns the exception's message. +func (s *NotStabilizedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *NotStabilizedException) OrigErr() error { + return nil +} + +func (s *NotStabilizedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *NotStabilizedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *NotStabilizedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// One or more properties included in this resource operation are defined as +// create-only, and therefore cannot be updated. +type NotUpdatableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NotUpdatableException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NotUpdatableException) GoString() string { + return s.String() +} + +func newErrorNotUpdatableException(v protocol.ResponseMetadata) error { + return &NotUpdatableException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *NotUpdatableException) Code() string { + return "NotUpdatableException" +} + +// Message returns the exception's message. +func (s *NotUpdatableException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *NotUpdatableException) OrigErr() error { + return nil +} + +func (s *NotUpdatableException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *NotUpdatableException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *NotUpdatableException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Cloud Control API has not received a valid response from the resource handler, +// due to a configuration error. This includes issues such as the resource handler +// returning an invalid response, or timing out. +type PrivateTypeException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PrivateTypeException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PrivateTypeException) GoString() string { + return s.String() +} + +func newErrorPrivateTypeException(v protocol.ResponseMetadata) error { + return &PrivateTypeException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *PrivateTypeException) Code() string { + return "PrivateTypeException" +} + +// Message returns the exception's message. +func (s *PrivateTypeException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *PrivateTypeException) OrigErr() error { + return nil +} + +func (s *PrivateTypeException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *PrivateTypeException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *PrivateTypeException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Represents the current status of a resource operation request. For more information, +// see Managing resource operation requests (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html) +// in the Amazon Web Services Cloud Control API User Guide. +type ProgressEvent struct { + _ struct{} `type:"structure"` + + // For requests with a status of FAILED, the associated error code. + // + // For error code definitions, see Handler error codes (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-test-contract-errors.html) + // in the CloudFormation Command Line Interface User Guide for Extension Development. + ErrorCode *string `type:"string" enum:"HandlerErrorCode"` + + // When the resource operation request was initiated. + EventTime *time.Time `type:"timestamp"` + + // The primary identifier for the resource. + // + // In some cases, the resource identifier may be available before the resource + // operation has reached a status of SUCCESS. + Identifier *string `min:"1" type:"string"` + + // The resource operation type. + Operation *string `type:"string" enum:"Operation"` + + // The current status of the resource operation request. + // + // * PENDING: The resource operation has not yet started. + // + // * IN_PROGRESS: The resource operation is currently in progress. + // + // * SUCCESS: The resource operation has successfully completed. + // + // * FAILED: The resource operation has failed. Refer to the error code and + // status message for more information. + // + // * CANCEL_IN_PROGRESS: The resource operation is in the process of being + // canceled. + // + // * CANCEL_COMPLETE: The resource operation has been canceled. + OperationStatus *string `type:"string" enum:"OperationStatus"` + + // The unique token representing this resource operation request. + // + // Use the RequestToken with GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) + // to return the current status of a resource operation request. + RequestToken *string `min:"1" type:"string"` + + // A JSON string containing the resource model, consisting of each resource + // property and its current value. + // + // ResourceModel is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ProgressEvent's + // String and GoString methods. + ResourceModel *string `min:"1" type:"string" sensitive:"true"` + + // When to next request the status of this resource operation request. + RetryAfter *time.Time `type:"timestamp"` + + // Any message explaining the current status. + StatusMessage *string `type:"string"` + + // The name of the resource type used in the operation. + TypeName *string `min:"10" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ProgressEvent) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ProgressEvent) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *ProgressEvent) SetErrorCode(v string) *ProgressEvent { + s.ErrorCode = &v + return s +} + +// SetEventTime sets the EventTime field's value. +func (s *ProgressEvent) SetEventTime(v time.Time) *ProgressEvent { + s.EventTime = &v + return s +} + +// SetIdentifier sets the Identifier field's value. +func (s *ProgressEvent) SetIdentifier(v string) *ProgressEvent { + s.Identifier = &v + return s +} + +// SetOperation sets the Operation field's value. +func (s *ProgressEvent) SetOperation(v string) *ProgressEvent { + s.Operation = &v + return s +} + +// SetOperationStatus sets the OperationStatus field's value. +func (s *ProgressEvent) SetOperationStatus(v string) *ProgressEvent { + s.OperationStatus = &v + return s +} + +// SetRequestToken sets the RequestToken field's value. +func (s *ProgressEvent) SetRequestToken(v string) *ProgressEvent { + s.RequestToken = &v + return s +} + +// SetResourceModel sets the ResourceModel field's value. +func (s *ProgressEvent) SetResourceModel(v string) *ProgressEvent { + s.ResourceModel = &v + return s +} + +// SetRetryAfter sets the RetryAfter field's value. +func (s *ProgressEvent) SetRetryAfter(v time.Time) *ProgressEvent { + s.RetryAfter = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *ProgressEvent) SetStatusMessage(v string) *ProgressEvent { + s.StatusMessage = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *ProgressEvent) SetTypeName(v string) *ProgressEvent { + s.TypeName = &v + return s +} + +// A resource operation with the specified request token cannot be found. +type RequestTokenNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RequestTokenNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RequestTokenNotFoundException) GoString() string { + return s.String() +} + +func newErrorRequestTokenNotFoundException(v protocol.ResponseMetadata) error { + return &RequestTokenNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *RequestTokenNotFoundException) Code() string { + return "RequestTokenNotFoundException" +} + +// Message returns the exception's message. +func (s *RequestTokenNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *RequestTokenNotFoundException) OrigErr() error { + return nil +} + +func (s *RequestTokenNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *RequestTokenNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *RequestTokenNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource is temporarily unavailable to be acted upon. For example, if +// the resource is currently undergoing an operation and cannot be acted upon +// until that operation is finished. +type ResourceConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceConflictException) GoString() string { + return s.String() +} + +func newErrorResourceConflictException(v protocol.ResponseMetadata) error { + return &ResourceConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceConflictException) Code() string { + return "ResourceConflictException" +} + +// Message returns the exception's message. +func (s *ResourceConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceConflictException) OrigErr() error { + return nil +} + +func (s *ResourceConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Represents information about a provisioned resource. +type ResourceDescription struct { + _ struct{} `type:"structure"` + + // The primary identifier for the resource. + // + // For more information, see Identifying resources (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-identifier.html) + // in the Amazon Web Services Cloud Control API User Guide. + Identifier *string `min:"1" type:"string"` + + // A list of the resource properties and their current values. + // + // Properties is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ResourceDescription's + // String and GoString methods. + Properties *string `min:"1" type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceDescription) GoString() string { + return s.String() +} + +// SetIdentifier sets the Identifier field's value. +func (s *ResourceDescription) SetIdentifier(v string) *ResourceDescription { + s.Identifier = &v + return s +} + +// SetProperties sets the Properties field's value. +func (s *ResourceDescription) SetProperties(v string) *ResourceDescription { + s.Properties = &v + return s +} + +// A resource with the specified identifier cannot be found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The filter criteria to use in determining the requests returned. +type ResourceRequestStatusFilter struct { + _ struct{} `type:"structure"` + + // The operation statuses to include in the filter. + // + // * PENDING: The operation has been requested, but not yet initiated. + // + // * IN_PROGRESS: The operation is currently in progress. + // + // * SUCCESS: The operation has successfully completed. + // + // * FAILED: The operation has failed. + // + // * CANCEL_IN_PROGRESS: The operation is currently in the process of being + // canceled. + // + // * CANCEL_COMPLETE: The operation has been canceled. + OperationStatuses []*string `type:"list"` + + // The operation types to include in the filter. + Operations []*string `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceRequestStatusFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceRequestStatusFilter) GoString() string { + return s.String() +} + +// SetOperationStatuses sets the OperationStatuses field's value. +func (s *ResourceRequestStatusFilter) SetOperationStatuses(v []*string) *ResourceRequestStatusFilter { + s.OperationStatuses = v + return s +} + +// SetOperations sets the Operations field's value. +func (s *ResourceRequestStatusFilter) SetOperations(v []*string) *ResourceRequestStatusFilter { + s.Operations = v + return s +} + +// The resource handler has returned that the downstream service returned an +// internal error, typically with a 5XX HTTP status code. +type ServiceInternalErrorException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceInternalErrorException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceInternalErrorException) GoString() string { + return s.String() +} + +func newErrorServiceInternalErrorException(v protocol.ResponseMetadata) error { + return &ServiceInternalErrorException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceInternalErrorException) Code() string { + return "ServiceInternalErrorException" +} + +// Message returns the exception's message. +func (s *ServiceInternalErrorException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceInternalErrorException) OrigErr() error { + return nil +} + +func (s *ServiceInternalErrorException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceInternalErrorException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceInternalErrorException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The resource handler has returned that a non-transient resource limit was +// reached on the service side. +type ServiceLimitExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLimitExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceLimitExceededException) GoString() string { + return s.String() +} + +func newErrorServiceLimitExceededException(v protocol.ResponseMetadata) error { + return &ServiceLimitExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceLimitExceededException) Code() string { + return "ServiceLimitExceededException" +} + +// Message returns the exception's message. +func (s *ServiceLimitExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceLimitExceededException) OrigErr() error { + return nil +} + +func (s *ServiceLimitExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceLimitExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceLimitExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The specified extension does not exist in the CloudFormation registry. +type TypeNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TypeNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TypeNotFoundException) GoString() string { + return s.String() +} + +func newErrorTypeNotFoundException(v protocol.ResponseMetadata) error { + return &TypeNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TypeNotFoundException) Code() string { + return "TypeNotFoundException" +} + +// Message returns the exception's message. +func (s *TypeNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TypeNotFoundException) OrigErr() error { + return nil +} + +func (s *TypeNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TypeNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TypeNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The specified resource does not support this resource operation. +type UnsupportedActionException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnsupportedActionException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnsupportedActionException) GoString() string { + return s.String() +} + +func newErrorUnsupportedActionException(v protocol.ResponseMetadata) error { + return &UnsupportedActionException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *UnsupportedActionException) Code() string { + return "UnsupportedActionException" +} + +// Message returns the exception's message. +func (s *UnsupportedActionException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *UnsupportedActionException) OrigErr() error { + return nil +} + +func (s *UnsupportedActionException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *UnsupportedActionException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *UnsupportedActionException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UpdateResourceInput struct { + _ struct{} `type:"structure"` + + // A unique identifier to ensure the idempotency of the resource request. As + // a best practice, specify this token to ensure idempotency, so that Amazon + // Web Services Cloud Control API can accurately distinguish between request + // retries and new resource requests. You might retry a resource request to + // ensure that it was successfully received. + // + // A client token is valid for 36 hours once used. After that, a resource request + // with the same client token is treated as a new request. + // + // If you do not specify a client token, one is generated for inclusion in the + // request. + // + // For more information, see Ensuring resource operation requests are unique + // (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-idempotency) + // in the Amazon Web Services Cloud Control API User Guide. + ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // The identifier for the resource. + // + // You can specify the primary identifier, or any secondary identifier defined + // for the resource type in its resource schema. You can only specify one identifier. + // Primary identifiers can be specified as a string or JSON; secondary identifiers + // must be specified as JSON. + // + // For compound primary identifiers (that is, one that consists of multiple + // resource properties strung together), to specify the primary identifier as + // a string, list the property values in the order they are specified in the + // primary identifier definition, separated by |. + // + // For more information, see Identifying resources (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-identifier.html) + // in the Amazon Web Services Cloud Control API User Guide. + // + // Identifier is a required field + Identifier *string `min:"1" type:"string" required:"true"` + + // A JavaScript Object Notation (JSON) document listing the patch operations + // that represent the updates to apply to the current resource properties. For + // details, see Composing the patch document (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-update.html#resource-operations-update-patch) + // in the Amazon Web Services Cloud Control API User Guide. + // + // PatchDocument is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateResourceInput's + // String and GoString methods. + // + // PatchDocument is a required field + PatchDocument *string `min:"1" type:"string" required:"true" sensitive:"true"` + + // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) + // for Cloud Control API to use when performing this resource operation. The + // role specified must have the permissions required for this operation. The + // necessary permissions for each event handler are defined in the handlers + // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-handlers) + // section of the resource type definition schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html). + // + // If you do not specify a role, Cloud Control API uses a temporary session + // created using your Amazon Web Services user credentials. + // + // For more information, see Specifying credentials (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html#resource-operations-permissions) + // in the Amazon Web Services Cloud Control API User Guide. + RoleArn *string `min:"20" type:"string"` + + // The name of the resource type. + // + // TypeName is a required field + TypeName *string `min:"10" type:"string" required:"true"` + + // For private resource types, the type version to use in this resource operation. + // If you do not specify a resource version, CloudFormation uses the default + // version. + TypeVersionId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateResourceInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Identifier == nil { + invalidParams.Add(request.NewErrParamRequired("Identifier")) + } + if s.Identifier != nil && len(*s.Identifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Identifier", 1)) + } + if s.PatchDocument == nil { + invalidParams.Add(request.NewErrParamRequired("PatchDocument")) + } + if s.PatchDocument != nil && len(*s.PatchDocument) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PatchDocument", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + if s.TypeName != nil && len(*s.TypeName) < 10 { + invalidParams.Add(request.NewErrParamMinLen("TypeName", 10)) + } + if s.TypeVersionId != nil && len(*s.TypeVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TypeVersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *UpdateResourceInput) SetClientToken(v string) *UpdateResourceInput { + s.ClientToken = &v + return s +} + +// SetIdentifier sets the Identifier field's value. +func (s *UpdateResourceInput) SetIdentifier(v string) *UpdateResourceInput { + s.Identifier = &v + return s +} + +// SetPatchDocument sets the PatchDocument field's value. +func (s *UpdateResourceInput) SetPatchDocument(v string) *UpdateResourceInput { + s.PatchDocument = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateResourceInput) SetRoleArn(v string) *UpdateResourceInput { + s.RoleArn = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *UpdateResourceInput) SetTypeName(v string) *UpdateResourceInput { + s.TypeName = &v + return s +} + +// SetTypeVersionId sets the TypeVersionId field's value. +func (s *UpdateResourceInput) SetTypeVersionId(v string) *UpdateResourceInput { + s.TypeVersionId = &v + return s +} + +type UpdateResourceOutput struct { + _ struct{} `type:"structure"` + + // Represents the current status of the resource update request. + // + // Use the RequestToken of the ProgressEvent with GetResourceRequestStatus (https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html) + // to return the current status of a resource operation request. + ProgressEvent *ProgressEvent `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateResourceOutput) GoString() string { + return s.String() +} + +// SetProgressEvent sets the ProgressEvent field's value. +func (s *UpdateResourceOutput) SetProgressEvent(v *ProgressEvent) *UpdateResourceOutput { + s.ProgressEvent = v + return s +} + +const ( + // HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value + HandlerErrorCodeNotUpdatable = "NotUpdatable" + + // HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value + HandlerErrorCodeInvalidRequest = "InvalidRequest" + + // HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value + HandlerErrorCodeAccessDenied = "AccessDenied" + + // HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value + HandlerErrorCodeInvalidCredentials = "InvalidCredentials" + + // HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value + HandlerErrorCodeAlreadyExists = "AlreadyExists" + + // HandlerErrorCodeNotFound is a HandlerErrorCode enum value + HandlerErrorCodeNotFound = "NotFound" + + // HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value + HandlerErrorCodeResourceConflict = "ResourceConflict" + + // HandlerErrorCodeThrottling is a HandlerErrorCode enum value + HandlerErrorCodeThrottling = "Throttling" + + // HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value + HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded" + + // HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value + HandlerErrorCodeNotStabilized = "NotStabilized" + + // HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value + HandlerErrorCodeGeneralServiceException = "GeneralServiceException" + + // HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value + HandlerErrorCodeServiceInternalError = "ServiceInternalError" + + // HandlerErrorCodeServiceTimeout is a HandlerErrorCode enum value + HandlerErrorCodeServiceTimeout = "ServiceTimeout" + + // HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value + HandlerErrorCodeNetworkFailure = "NetworkFailure" + + // HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value + HandlerErrorCodeInternalFailure = "InternalFailure" +) + +// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum +func HandlerErrorCode_Values() []string { + return []string{ + HandlerErrorCodeNotUpdatable, + HandlerErrorCodeInvalidRequest, + HandlerErrorCodeAccessDenied, + HandlerErrorCodeInvalidCredentials, + HandlerErrorCodeAlreadyExists, + HandlerErrorCodeNotFound, + HandlerErrorCodeResourceConflict, + HandlerErrorCodeThrottling, + HandlerErrorCodeServiceLimitExceeded, + HandlerErrorCodeNotStabilized, + HandlerErrorCodeGeneralServiceException, + HandlerErrorCodeServiceInternalError, + HandlerErrorCodeServiceTimeout, + HandlerErrorCodeNetworkFailure, + HandlerErrorCodeInternalFailure, + } +} + +const ( + // OperationCreate is a Operation enum value + OperationCreate = "CREATE" + + // OperationDelete is a Operation enum value + OperationDelete = "DELETE" + + // OperationUpdate is a Operation enum value + OperationUpdate = "UPDATE" +) + +// Operation_Values returns all elements of the Operation enum +func Operation_Values() []string { + return []string{ + OperationCreate, + OperationDelete, + OperationUpdate, + } +} + +const ( + // OperationStatusPending is a OperationStatus enum value + OperationStatusPending = "PENDING" + + // OperationStatusInProgress is a OperationStatus enum value + OperationStatusInProgress = "IN_PROGRESS" + + // OperationStatusSuccess is a OperationStatus enum value + OperationStatusSuccess = "SUCCESS" + + // OperationStatusFailed is a OperationStatus enum value + OperationStatusFailed = "FAILED" + + // OperationStatusCancelInProgress is a OperationStatus enum value + OperationStatusCancelInProgress = "CANCEL_IN_PROGRESS" + + // OperationStatusCancelComplete is a OperationStatus enum value + OperationStatusCancelComplete = "CANCEL_COMPLETE" +) + +// OperationStatus_Values returns all elements of the OperationStatus enum +func OperationStatus_Values() []string { + return []string{ + OperationStatusPending, + OperationStatusInProgress, + OperationStatusSuccess, + OperationStatusFailed, + OperationStatusCancelInProgress, + OperationStatusCancelComplete, + } +} diff --git a/service/cloudcontrolapi/cloudcontrolapiiface/interface.go b/service/cloudcontrolapi/cloudcontrolapiiface/interface.go new file mode 100644 index 0000000000..d70b87f765 --- /dev/null +++ b/service/cloudcontrolapi/cloudcontrolapiiface/interface.go @@ -0,0 +1,105 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package cloudcontrolapiiface provides an interface to enable mocking the AWS Cloud Control API service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package cloudcontrolapiiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/cloudcontrolapi" +) + +// CloudControlApiAPI provides an interface to enable mocking the +// cloudcontrolapi.CloudControlApi service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Cloud Control API. +// func myFunc(svc cloudcontrolapiiface.CloudControlApiAPI) bool { +// // Make svc.CancelResourceRequest request +// } +// +// func main() { +// sess := session.New() +// svc := cloudcontrolapi.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockCloudControlApiClient struct { +// cloudcontrolapiiface.CloudControlApiAPI +// } +// func (m *mockCloudControlApiClient) CancelResourceRequest(input *cloudcontrolapi.CancelResourceRequestInput) (*cloudcontrolapi.CancelResourceRequestOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockCloudControlApiClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type CloudControlApiAPI interface { + CancelResourceRequest(*cloudcontrolapi.CancelResourceRequestInput) (*cloudcontrolapi.CancelResourceRequestOutput, error) + CancelResourceRequestWithContext(aws.Context, *cloudcontrolapi.CancelResourceRequestInput, ...request.Option) (*cloudcontrolapi.CancelResourceRequestOutput, error) + CancelResourceRequestRequest(*cloudcontrolapi.CancelResourceRequestInput) (*request.Request, *cloudcontrolapi.CancelResourceRequestOutput) + + CreateResource(*cloudcontrolapi.CreateResourceInput) (*cloudcontrolapi.CreateResourceOutput, error) + CreateResourceWithContext(aws.Context, *cloudcontrolapi.CreateResourceInput, ...request.Option) (*cloudcontrolapi.CreateResourceOutput, error) + CreateResourceRequest(*cloudcontrolapi.CreateResourceInput) (*request.Request, *cloudcontrolapi.CreateResourceOutput) + + DeleteResource(*cloudcontrolapi.DeleteResourceInput) (*cloudcontrolapi.DeleteResourceOutput, error) + DeleteResourceWithContext(aws.Context, *cloudcontrolapi.DeleteResourceInput, ...request.Option) (*cloudcontrolapi.DeleteResourceOutput, error) + DeleteResourceRequest(*cloudcontrolapi.DeleteResourceInput) (*request.Request, *cloudcontrolapi.DeleteResourceOutput) + + GetResource(*cloudcontrolapi.GetResourceInput) (*cloudcontrolapi.GetResourceOutput, error) + GetResourceWithContext(aws.Context, *cloudcontrolapi.GetResourceInput, ...request.Option) (*cloudcontrolapi.GetResourceOutput, error) + GetResourceRequest(*cloudcontrolapi.GetResourceInput) (*request.Request, *cloudcontrolapi.GetResourceOutput) + + GetResourceRequestStatus(*cloudcontrolapi.GetResourceRequestStatusInput) (*cloudcontrolapi.GetResourceRequestStatusOutput, error) + GetResourceRequestStatusWithContext(aws.Context, *cloudcontrolapi.GetResourceRequestStatusInput, ...request.Option) (*cloudcontrolapi.GetResourceRequestStatusOutput, error) + GetResourceRequestStatusRequest(*cloudcontrolapi.GetResourceRequestStatusInput) (*request.Request, *cloudcontrolapi.GetResourceRequestStatusOutput) + + ListResourceRequests(*cloudcontrolapi.ListResourceRequestsInput) (*cloudcontrolapi.ListResourceRequestsOutput, error) + ListResourceRequestsWithContext(aws.Context, *cloudcontrolapi.ListResourceRequestsInput, ...request.Option) (*cloudcontrolapi.ListResourceRequestsOutput, error) + ListResourceRequestsRequest(*cloudcontrolapi.ListResourceRequestsInput) (*request.Request, *cloudcontrolapi.ListResourceRequestsOutput) + + ListResourceRequestsPages(*cloudcontrolapi.ListResourceRequestsInput, func(*cloudcontrolapi.ListResourceRequestsOutput, bool) bool) error + ListResourceRequestsPagesWithContext(aws.Context, *cloudcontrolapi.ListResourceRequestsInput, func(*cloudcontrolapi.ListResourceRequestsOutput, bool) bool, ...request.Option) error + + ListResources(*cloudcontrolapi.ListResourcesInput) (*cloudcontrolapi.ListResourcesOutput, error) + ListResourcesWithContext(aws.Context, *cloudcontrolapi.ListResourcesInput, ...request.Option) (*cloudcontrolapi.ListResourcesOutput, error) + ListResourcesRequest(*cloudcontrolapi.ListResourcesInput) (*request.Request, *cloudcontrolapi.ListResourcesOutput) + + ListResourcesPages(*cloudcontrolapi.ListResourcesInput, func(*cloudcontrolapi.ListResourcesOutput, bool) bool) error + ListResourcesPagesWithContext(aws.Context, *cloudcontrolapi.ListResourcesInput, func(*cloudcontrolapi.ListResourcesOutput, bool) bool, ...request.Option) error + + UpdateResource(*cloudcontrolapi.UpdateResourceInput) (*cloudcontrolapi.UpdateResourceOutput, error) + UpdateResourceWithContext(aws.Context, *cloudcontrolapi.UpdateResourceInput, ...request.Option) (*cloudcontrolapi.UpdateResourceOutput, error) + UpdateResourceRequest(*cloudcontrolapi.UpdateResourceInput) (*request.Request, *cloudcontrolapi.UpdateResourceOutput) + + WaitUntilResourceRequestSuccess(*cloudcontrolapi.GetResourceRequestStatusInput) error + WaitUntilResourceRequestSuccessWithContext(aws.Context, *cloudcontrolapi.GetResourceRequestStatusInput, ...request.WaiterOption) error +} + +var _ CloudControlApiAPI = (*cloudcontrolapi.CloudControlApi)(nil) diff --git a/service/cloudcontrolapi/doc.go b/service/cloudcontrolapi/doc.go new file mode 100644 index 0000000000..cafc4d6506 --- /dev/null +++ b/service/cloudcontrolapi/doc.go @@ -0,0 +1,37 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package cloudcontrolapi provides the client and types for making API +// requests to AWS Cloud Control API. +// +// Use Amazon Web Services Cloud Control API to create, read, update, delete, +// and list (CRUD-L) your cloud resources that belong to a wide range of services--both +// Amazon Web Services and third-party. With the Cloud Control API standardized +// set of application programming interfaces (APIs), you can perform CRUD-L +// operations on any supported resources in your Amazon Web Services account. +// Using Cloud Control API, you won't have to generate code or scripts specific +// to each individual service responsible for those resources. +// +// For more information about Amazon Web Services Cloud Control API, see the +// Amazon Web Services Cloud Control API User Guide (https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html). +// +// See https://docs.aws.amazon.com/goto/WebAPI/cloudcontrol-2021-09-30 for more information on this service. +// +// See cloudcontrolapi package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/cloudcontrolapi/ +// +// Using the Client +// +// To contact AWS Cloud Control API with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Cloud Control API client CloudControlApi for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/cloudcontrolapi/#New +package cloudcontrolapi diff --git a/service/cloudcontrolapi/errors.go b/service/cloudcontrolapi/errors.go new file mode 100644 index 0000000000..1991518f61 --- /dev/null +++ b/service/cloudcontrolapi/errors.go @@ -0,0 +1,178 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudcontrolapi + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAlreadyExistsException for service response error code + // "AlreadyExistsException". + // + // The resource with the name requested already exists. + ErrCodeAlreadyExistsException = "AlreadyExistsException" + + // ErrCodeClientTokenConflictException for service response error code + // "ClientTokenConflictException". + // + // The specified client token has already been used in another resource request. + // + // It is best practice for client tokens to be unique for each resource operation + // request. However, client token expire after 36 hours. + ErrCodeClientTokenConflictException = "ClientTokenConflictException" + + // ErrCodeConcurrentModificationException for service response error code + // "ConcurrentModificationException". + // + // The resource is currently being modified by another operation. + ErrCodeConcurrentModificationException = "ConcurrentModificationException" + + // ErrCodeConcurrentOperationException for service response error code + // "ConcurrentOperationException". + // + // Another resource operation is currently being performed on this resource. + ErrCodeConcurrentOperationException = "ConcurrentOperationException" + + // ErrCodeGeneralServiceException for service response error code + // "GeneralServiceException". + // + // The resource handler has returned that the downstream service generated an + // error that does not map to any other handler error code. + ErrCodeGeneralServiceException = "GeneralServiceException" + + // ErrCodeHandlerFailureException for service response error code + // "HandlerFailureException". + // + // The resource handler has failed without a returning a more specific error + // code. This can include timeouts. + ErrCodeHandlerFailureException = "HandlerFailureException" + + // ErrCodeHandlerInternalFailureException for service response error code + // "HandlerInternalFailureException". + // + // The resource handler has returned that an unexpected error occurred within + // the resource handler. + ErrCodeHandlerInternalFailureException = "HandlerInternalFailureException" + + // ErrCodeInvalidCredentialsException for service response error code + // "InvalidCredentialsException". + // + // The resource handler has returned that the credentials provided by the user + // are invalid. + ErrCodeInvalidCredentialsException = "InvalidCredentialsException" + + // ErrCodeInvalidRequestException for service response error code + // "InvalidRequestException". + // + // The resource handler has returned that invalid input from the user has generated + // a generic exception. + ErrCodeInvalidRequestException = "InvalidRequestException" + + // ErrCodeNetworkFailureException for service response error code + // "NetworkFailureException". + // + // The resource handler has returned that the request could not be completed + // due to networking issues, such as a failure to receive a response from the + // server. + ErrCodeNetworkFailureException = "NetworkFailureException" + + // ErrCodeNotStabilizedException for service response error code + // "NotStabilizedException". + // + // The resource handler has returned that the downstream resource failed to + // complete all of its ready-state checks. + ErrCodeNotStabilizedException = "NotStabilizedException" + + // ErrCodeNotUpdatableException for service response error code + // "NotUpdatableException". + // + // One or more properties included in this resource operation are defined as + // create-only, and therefore cannot be updated. + ErrCodeNotUpdatableException = "NotUpdatableException" + + // ErrCodePrivateTypeException for service response error code + // "PrivateTypeException". + // + // Cloud Control API has not received a valid response from the resource handler, + // due to a configuration error. This includes issues such as the resource handler + // returning an invalid response, or timing out. + ErrCodePrivateTypeException = "PrivateTypeException" + + // ErrCodeRequestTokenNotFoundException for service response error code + // "RequestTokenNotFoundException". + // + // A resource operation with the specified request token cannot be found. + ErrCodeRequestTokenNotFoundException = "RequestTokenNotFoundException" + + // ErrCodeResourceConflictException for service response error code + // "ResourceConflictException". + // + // The resource is temporarily unavailable to be acted upon. For example, if + // the resource is currently undergoing an operation and cannot be acted upon + // until that operation is finished. + ErrCodeResourceConflictException = "ResourceConflictException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // A resource with the specified identifier cannot be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceInternalErrorException for service response error code + // "ServiceInternalErrorException". + // + // The resource handler has returned that the downstream service returned an + // internal error, typically with a 5XX HTTP status code. + ErrCodeServiceInternalErrorException = "ServiceInternalErrorException" + + // ErrCodeServiceLimitExceededException for service response error code + // "ServiceLimitExceededException". + // + // The resource handler has returned that a non-transient resource limit was + // reached on the service side. + ErrCodeServiceLimitExceededException = "ServiceLimitExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeTypeNotFoundException for service response error code + // "TypeNotFoundException". + // + // The specified extension does not exist in the CloudFormation registry. + ErrCodeTypeNotFoundException = "TypeNotFoundException" + + // ErrCodeUnsupportedActionException for service response error code + // "UnsupportedActionException". + // + // The specified resource does not support this resource operation. + ErrCodeUnsupportedActionException = "UnsupportedActionException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AlreadyExistsException": newErrorAlreadyExistsException, + "ClientTokenConflictException": newErrorClientTokenConflictException, + "ConcurrentModificationException": newErrorConcurrentModificationException, + "ConcurrentOperationException": newErrorConcurrentOperationException, + "GeneralServiceException": newErrorGeneralServiceException, + "HandlerFailureException": newErrorHandlerFailureException, + "HandlerInternalFailureException": newErrorHandlerInternalFailureException, + "InvalidCredentialsException": newErrorInvalidCredentialsException, + "InvalidRequestException": newErrorInvalidRequestException, + "NetworkFailureException": newErrorNetworkFailureException, + "NotStabilizedException": newErrorNotStabilizedException, + "NotUpdatableException": newErrorNotUpdatableException, + "PrivateTypeException": newErrorPrivateTypeException, + "RequestTokenNotFoundException": newErrorRequestTokenNotFoundException, + "ResourceConflictException": newErrorResourceConflictException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceInternalErrorException": newErrorServiceInternalErrorException, + "ServiceLimitExceededException": newErrorServiceLimitExceededException, + "ThrottlingException": newErrorThrottlingException, + "TypeNotFoundException": newErrorTypeNotFoundException, + "UnsupportedActionException": newErrorUnsupportedActionException, +} diff --git a/service/cloudcontrolapi/service.go b/service/cloudcontrolapi/service.go new file mode 100644 index 0000000000..8c1edbb243 --- /dev/null +++ b/service/cloudcontrolapi/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudcontrolapi + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// CloudControlApi provides the API operation methods for making requests to +// AWS Cloud Control API. See this package's package overview docs +// for details on the service. +// +// CloudControlApi methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type CloudControlApi struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "CloudControl" // Name of service. + EndpointsID = "cloudcontrolapi" // ID to lookup a service endpoint with. + ServiceID = "CloudControl" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the CloudControlApi client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// mySession := session.Must(session.NewSession()) +// +// // Create a CloudControlApi client from just a session. +// svc := cloudcontrolapi.New(mySession) +// +// // Create a CloudControlApi client with additional configuration +// svc := cloudcontrolapi.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *CloudControlApi { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "cloudcontrolapi" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *CloudControlApi { + svc := &CloudControlApi{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2021-09-30", + JSONVersion: "1.0", + TargetPrefix: "CloudApiService", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(jsonrpc.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a CloudControlApi operation and runs any +// custom request initialization. +func (c *CloudControlApi) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/cloudcontrolapi/waiters.go b/service/cloudcontrolapi/waiters.go new file mode 100644 index 0000000000..0bd45aae89 --- /dev/null +++ b/service/cloudcontrolapi/waiters.go @@ -0,0 +1,66 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloudcontrolapi + +import ( + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" +) + +// WaitUntilResourceRequestSuccess uses the CloudControlApi API operation +// GetResourceRequestStatus 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 *CloudControlApi) WaitUntilResourceRequestSuccess(input *GetResourceRequestStatusInput) error { + return c.WaitUntilResourceRequestSuccessWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilResourceRequestSuccessWithContext is an extended version of WaitUntilResourceRequestSuccess. +// 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 *CloudControlApi) WaitUntilResourceRequestSuccessWithContext(ctx aws.Context, input *GetResourceRequestStatusInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilResourceRequestSuccess", + MaxAttempts: 720, + Delay: request.ConstantWaiterDelay(5 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.SuccessWaiterState, + Matcher: request.PathWaiterMatch, Argument: "ProgressEvent.OperationStatus", + Expected: "SUCCESS", + }, + { + State: request.FailureWaiterState, + Matcher: request.PathWaiterMatch, Argument: "ProgressEvent.OperationStatus", + Expected: "FAILED", + }, + { + State: request.FailureWaiterState, + Matcher: request.PathWaiterMatch, Argument: "ProgressEvent.OperationStatus", + Expected: "CANCEL_COMPLETE", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *GetResourceRequestStatusInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetResourceRequestStatusRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} diff --git a/service/dataexchange/api.go b/service/dataexchange/api.go index a1209a1b4f..7414ba0c9c 100644 --- a/service/dataexchange/api.go +++ b/service/dataexchange/api.go @@ -198,6 +198,97 @@ func (c *DataExchange) CreateDataSetWithContext(ctx aws.Context, input *CreateDa return out, req.Send() } +const opCreateEventAction = "CreateEventAction" + +// CreateEventActionRequest generates a "aws/request.Request" representing the +// client's request for the CreateEventAction 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 CreateEventAction for more information on using the CreateEventAction +// 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 CreateEventActionRequest method. +// req, resp := client.CreateEventActionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateEventAction +func (c *DataExchange) CreateEventActionRequest(input *CreateEventActionInput) (req *request.Request, output *CreateEventActionOutput) { + op := &request.Operation{ + Name: opCreateEventAction, + HTTPMethod: "POST", + HTTPPath: "/v1/event-actions", + } + + if input == nil { + input = &CreateEventActionInput{} + } + + output = &CreateEventActionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateEventAction API operation for AWS Data Exchange. +// +// This operation creates an event action. +// +// 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 AWS Data Exchange's +// API operation CreateEventAction for usage and error information. +// +// Returned Error Types: +// * ThrottlingException +// The limit on the number of requests per second was exceeded. +// +// * ValidationException +// The request was invalid. +// +// * InternalServerException +// An exception occurred with the service. +// +// * ServiceLimitExceededException +// The request has exceeded the quotas imposed by the service. +// +// * AccessDeniedException +// Access to the resource is denied. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateEventAction +func (c *DataExchange) CreateEventAction(input *CreateEventActionInput) (*CreateEventActionOutput, error) { + req, out := c.CreateEventActionRequest(input) + return out, req.Send() +} + +// CreateEventActionWithContext is the same as CreateEventAction with the addition of +// the ability to pass a context and additional request options. +// +// See CreateEventAction 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 *DataExchange) CreateEventActionWithContext(ctx aws.Context, input *CreateEventActionInput, opts ...request.Option) (*CreateEventActionOutput, error) { + req, out := c.CreateEventActionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateJob = "CreateJob" // CreateJobRequest generates a "aws/request.Request" representing the @@ -252,12 +343,6 @@ func (c *DataExchange) CreateJobRequest(input *CreateJobInput) (req *request.Req // API operation CreateJob for usage and error information. // // Returned Error Types: -// * ResourceNotFoundException -// The resource couldn't be found. -// -// * ThrottlingException -// The limit on the number of requests per second was exceeded. -// // * ValidationException // The request was invalid. // @@ -267,6 +352,12 @@ func (c *DataExchange) CreateJobRequest(input *CreateJobInput) (req *request.Req // * AccessDeniedException // Access to the resource is denied. // +// * ResourceNotFoundException +// The resource couldn't be found. +// +// * ThrottlingException +// The limit on the number of requests per second was exceeded. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateJob func (c *DataExchange) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) { req, out := c.CreateJobRequest(input) @@ -572,6 +663,95 @@ func (c *DataExchange) DeleteDataSetWithContext(ctx aws.Context, input *DeleteDa return out, req.Send() } +const opDeleteEventAction = "DeleteEventAction" + +// DeleteEventActionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteEventAction 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 DeleteEventAction for more information on using the DeleteEventAction +// 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 DeleteEventActionRequest method. +// req, resp := client.DeleteEventActionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteEventAction +func (c *DataExchange) DeleteEventActionRequest(input *DeleteEventActionInput) (req *request.Request, output *DeleteEventActionOutput) { + op := &request.Operation{ + Name: opDeleteEventAction, + HTTPMethod: "DELETE", + HTTPPath: "/v1/event-actions/{EventActionId}", + } + + if input == nil { + input = &DeleteEventActionInput{} + } + + output = &DeleteEventActionOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteEventAction API operation for AWS Data Exchange. +// +// This operation deletes the event action. +// +// 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 AWS Data Exchange's +// API operation DeleteEventAction for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The resource couldn't be found. +// +// * ThrottlingException +// The limit on the number of requests per second was exceeded. +// +// * ValidationException +// The request was invalid. +// +// * InternalServerException +// An exception occurred with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteEventAction +func (c *DataExchange) DeleteEventAction(input *DeleteEventActionInput) (*DeleteEventActionOutput, error) { + req, out := c.DeleteEventActionRequest(input) + return out, req.Send() +} + +// DeleteEventActionWithContext is the same as DeleteEventAction with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteEventAction 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 *DataExchange) DeleteEventActionWithContext(ctx aws.Context, input *DeleteEventActionInput, opts ...request.Option) (*DeleteEventActionOutput, error) { + req, out := c.DeleteEventActionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteRevision = "DeleteRevision" // DeleteRevisionRequest generates a "aws/request.Request" representing the @@ -844,6 +1024,94 @@ func (c *DataExchange) GetDataSetWithContext(ctx aws.Context, input *GetDataSetI return out, req.Send() } +const opGetEventAction = "GetEventAction" + +// GetEventActionRequest generates a "aws/request.Request" representing the +// client's request for the GetEventAction 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 GetEventAction for more information on using the GetEventAction +// 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 GetEventActionRequest method. +// req, resp := client.GetEventActionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetEventAction +func (c *DataExchange) GetEventActionRequest(input *GetEventActionInput) (req *request.Request, output *GetEventActionOutput) { + op := &request.Operation{ + Name: opGetEventAction, + HTTPMethod: "GET", + HTTPPath: "/v1/event-actions/{EventActionId}", + } + + if input == nil { + input = &GetEventActionInput{} + } + + output = &GetEventActionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetEventAction API operation for AWS Data Exchange. +// +// This operation retrieves information about an event action. +// +// 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 AWS Data Exchange's +// API operation GetEventAction for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The resource couldn't be found. +// +// * ThrottlingException +// The limit on the number of requests per second was exceeded. +// +// * ValidationException +// The request was invalid. +// +// * InternalServerException +// An exception occurred with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetEventAction +func (c *DataExchange) GetEventAction(input *GetEventActionInput) (*GetEventActionOutput, error) { + req, out := c.GetEventActionRequest(input) + return out, req.Send() +} + +// GetEventActionWithContext is the same as GetEventAction with the addition of +// the ability to pass a context and additional request options. +// +// See GetEventAction 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 *DataExchange) GetEventActionWithContext(ctx aws.Context, input *GetEventActionInput, opts ...request.Option) (*GetEventActionOutput, error) { + req, out := c.GetEventActionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetJob = "GetJob" // GetJobRequest generates a "aws/request.Request" representing the @@ -1315,37 +1583,37 @@ func (c *DataExchange) ListDataSetsPagesWithContext(ctx aws.Context, input *List return p.Err() } -const opListJobs = "ListJobs" +const opListEventActions = "ListEventActions" -// ListJobsRequest generates a "aws/request.Request" representing the -// client's request for the ListJobs operation. The "output" return +// ListEventActionsRequest generates a "aws/request.Request" representing the +// client's request for the ListEventActions 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 ListJobs for more information on using the ListJobs +// See ListEventActions for more information on using the ListEventActions // 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 ListJobsRequest method. -// req, resp := client.ListJobsRequest(params) +// // Example sending a request using the ListEventActionsRequest method. +// req, resp := client.ListEventActionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs -func (c *DataExchange) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListEventActions +func (c *DataExchange) ListEventActionsRequest(input *ListEventActionsInput) (req *request.Request, output *ListEventActionsOutput) { op := &request.Operation{ - Name: opListJobs, + Name: opListEventActions, HTTPMethod: "GET", - HTTPPath: "/v1/jobs", + HTTPPath: "/v1/event-actions", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, @@ -1355,24 +1623,24 @@ func (c *DataExchange) ListJobsRequest(input *ListJobsInput) (req *request.Reque } if input == nil { - input = &ListJobsInput{} + input = &ListEventActionsInput{} } - output = &ListJobsOutput{} + output = &ListEventActionsOutput{} req = c.newRequest(op, input, output) return } -// ListJobs API operation for AWS Data Exchange. +// ListEventActions API operation for AWS Data Exchange. // -// This operation lists your jobs sorted by CreatedAt in descending order. +// This operation lists your event actions. // // 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 AWS Data Exchange's -// API operation ListJobs for usage and error information. +// API operation ListEventActions for usage and error information. // // Returned Error Types: // * ResourceNotFoundException @@ -1387,65 +1655,65 @@ func (c *DataExchange) ListJobsRequest(input *ListJobsInput) (req *request.Reque // * InternalServerException // An exception occurred with the service. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs -func (c *DataExchange) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) { - req, out := c.ListJobsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListEventActions +func (c *DataExchange) ListEventActions(input *ListEventActionsInput) (*ListEventActionsOutput, error) { + req, out := c.ListEventActionsRequest(input) return out, req.Send() } -// ListJobsWithContext is the same as ListJobs with the addition of +// ListEventActionsWithContext is the same as ListEventActions with the addition of // the ability to pass a context and additional request options. // -// See ListJobs for details on how to use this API operation. +// See ListEventActions 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 *DataExchange) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) { - req, out := c.ListJobsRequest(input) +func (c *DataExchange) ListEventActionsWithContext(ctx aws.Context, input *ListEventActionsInput, opts ...request.Option) (*ListEventActionsOutput, error) { + req, out := c.ListEventActionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListJobsPages iterates over the pages of a ListJobs operation, +// ListEventActionsPages iterates over the pages of a ListEventActions operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListJobs method for more information on how to use this operation. +// See ListEventActions 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 ListJobs operation. +// // Example iterating over at most 3 pages of a ListEventActions operation. // pageNum := 0 -// err := client.ListJobsPages(params, -// func(page *dataexchange.ListJobsOutput, lastPage bool) bool { +// err := client.ListEventActionsPages(params, +// func(page *dataexchange.ListEventActionsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) // -func (c *DataExchange) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error { - return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *DataExchange) ListEventActionsPages(input *ListEventActionsInput, fn func(*ListEventActionsOutput, bool) bool) error { + return c.ListEventActionsPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListJobsPagesWithContext same as ListJobsPages except +// ListEventActionsPagesWithContext same as ListEventActionsPages 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 *DataExchange) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error { +func (c *DataExchange) ListEventActionsPagesWithContext(ctx aws.Context, input *ListEventActionsInput, fn func(*ListEventActionsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListJobsInput + var inCpy *ListEventActionsInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListJobsRequest(inCpy) + req, _ := c.ListEventActionsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -1453,7 +1721,7 @@ func (c *DataExchange) ListJobsPagesWithContext(ctx aws.Context, input *ListJobs } for p.Next() { - if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListEventActionsOutput), !p.HasNextPage()) { break } } @@ -1461,17 +1729,163 @@ func (c *DataExchange) ListJobsPagesWithContext(ctx aws.Context, input *ListJobs return p.Err() } -const opListRevisionAssets = "ListRevisionAssets" +const opListJobs = "ListJobs" -// ListRevisionAssetsRequest generates a "aws/request.Request" representing the -// client's request for the ListRevisionAssets operation. The "output" return +// ListJobsRequest generates a "aws/request.Request" representing the +// client's request for the ListJobs 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 ListRevisionAssets for more information on using the ListRevisionAssets +// See ListJobs for more information on using the ListJobs +// 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 ListJobsRequest method. +// req, resp := client.ListJobsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs +func (c *DataExchange) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) { + op := &request.Operation{ + Name: opListJobs, + HTTPMethod: "GET", + HTTPPath: "/v1/jobs", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListJobsInput{} + } + + output = &ListJobsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListJobs API operation for AWS Data Exchange. +// +// This operation lists your jobs sorted by CreatedAt in descending order. +// +// 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 AWS Data Exchange's +// API operation ListJobs for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The resource couldn't be found. +// +// * ThrottlingException +// The limit on the number of requests per second was exceeded. +// +// * ValidationException +// The request was invalid. +// +// * InternalServerException +// An exception occurred with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs +func (c *DataExchange) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) { + req, out := c.ListJobsRequest(input) + return out, req.Send() +} + +// ListJobsWithContext is the same as ListJobs with the addition of +// the ability to pass a context and additional request options. +// +// See ListJobs 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 *DataExchange) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) { + req, out := c.ListJobsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListJobsPages iterates over the pages of a ListJobs operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListJobs 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 ListJobs operation. +// pageNum := 0 +// err := client.ListJobsPages(params, +// func(page *dataexchange.ListJobsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *DataExchange) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error { + return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListJobsPagesWithContext same as ListJobsPages 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 *DataExchange) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListJobsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListJobsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRevisionAssets = "ListRevisionAssets" + +// ListRevisionAssetsRequest generates a "aws/request.Request" representing the +// client's request for the ListRevisionAssets 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 ListRevisionAssets for more information on using the ListRevisionAssets // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration @@ -2114,6 +2528,97 @@ func (c *DataExchange) UpdateDataSetWithContext(ctx aws.Context, input *UpdateDa return out, req.Send() } +const opUpdateEventAction = "UpdateEventAction" + +// UpdateEventActionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateEventAction 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 UpdateEventAction for more information on using the UpdateEventAction +// 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 UpdateEventActionRequest method. +// req, resp := client.UpdateEventActionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateEventAction +func (c *DataExchange) UpdateEventActionRequest(input *UpdateEventActionInput) (req *request.Request, output *UpdateEventActionOutput) { + op := &request.Operation{ + Name: opUpdateEventAction, + HTTPMethod: "PATCH", + HTTPPath: "/v1/event-actions/{EventActionId}", + } + + if input == nil { + input = &UpdateEventActionInput{} + } + + output = &UpdateEventActionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateEventAction API operation for AWS Data Exchange. +// +// This operation updates the event action. +// +// 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 AWS Data Exchange's +// API operation UpdateEventAction for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The resource couldn't be found. +// +// * ThrottlingException +// The limit on the number of requests per second was exceeded. +// +// * ValidationException +// The request was invalid. +// +// * InternalServerException +// An exception occurred with the service. +// +// * AccessDeniedException +// Access to the resource is denied. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateEventAction +func (c *DataExchange) UpdateEventAction(input *UpdateEventActionInput) (*UpdateEventActionOutput, error) { + req, out := c.UpdateEventActionRequest(input) + return out, req.Send() +} + +// UpdateEventActionWithContext is the same as UpdateEventAction with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateEventAction 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 *DataExchange) UpdateEventActionWithContext(ctx aws.Context, input *UpdateEventActionInput, opts ...request.Option) (*UpdateEventActionOutput, error) { + req, out := c.UpdateEventActionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateRevision = "UpdateRevision" // UpdateRevisionRequest generates a "aws/request.Request" representing the @@ -2274,6 +2779,52 @@ func (s *AccessDeniedException) RequestID() string { return s.RespMetadata.RequestID } +type Action struct { + _ struct{} `type:"structure"` + + // Details of the operation to be performed by the job. + ExportRevisionToS3 *AutoExportRevisionToS3RequestDetails `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Action) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Action) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Action) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Action"} + if s.ExportRevisionToS3 != nil { + if err := s.ExportRevisionToS3.Validate(); err != nil { + invalidParams.AddNested("ExportRevisionToS3", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExportRevisionToS3 sets the ExportRevisionToS3 field's value. +func (s *Action) SetExportRevisionToS3(v *AutoExportRevisionToS3RequestDetails) *Action { + s.ExportRevisionToS3 = v + return s +} + // The destination for the asset. type AssetDestinationEntry struct { _ struct{} `type:"structure"` @@ -2575,6 +3126,134 @@ func (s *AssetSourceEntry) SetKey(v string) *AssetSourceEntry { return s } +// A revision destination is the Amazon S3 bucket folder destination to where +// the export will be sent. +type AutoExportRevisionDestinationEntry struct { + _ struct{} `type:"structure"` + + // The S3 bucket that is the destination for the event action. + // + // Bucket is a required field + Bucket *string `type:"string" required:"true"` + + // A string representing the pattern for generated names of the individual assets + // in the revision. For more information about key patterns, see Key patterns + // when exporting revisions (https://docs.aws.amazon.com/data-exchange/latest/userguide/jobs.html#revision-export-keypatterns). + KeyPattern *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoExportRevisionDestinationEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoExportRevisionDestinationEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoExportRevisionDestinationEntry) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AutoExportRevisionDestinationEntry"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *AutoExportRevisionDestinationEntry) SetBucket(v string) *AutoExportRevisionDestinationEntry { + s.Bucket = &v + return s +} + +// SetKeyPattern sets the KeyPattern field's value. +func (s *AutoExportRevisionDestinationEntry) SetKeyPattern(v string) *AutoExportRevisionDestinationEntry { + s.KeyPattern = &v + return s +} + +// Details of the operation to be performed by the job. +type AutoExportRevisionToS3RequestDetails struct { + _ struct{} `type:"structure"` + + // Encryption configuration of the export job. Includes the encryption type + // in addition to the AWS KMS key. The KMS key is only necessary if you chose + // the KMS encryption. type. + Encryption *ExportServerSideEncryption `type:"structure"` + + // A revision destination is the Amazon S3 bucket folder destination to where + // the export will be sent. + // + // RevisionDestination is a required field + RevisionDestination *AutoExportRevisionDestinationEntry `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoExportRevisionToS3RequestDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoExportRevisionToS3RequestDetails) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AutoExportRevisionToS3RequestDetails) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AutoExportRevisionToS3RequestDetails"} + if s.RevisionDestination == nil { + invalidParams.Add(request.NewErrParamRequired("RevisionDestination")) + } + if s.Encryption != nil { + if err := s.Encryption.Validate(); err != nil { + invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams)) + } + } + if s.RevisionDestination != nil { + if err := s.RevisionDestination.Validate(); err != nil { + invalidParams.AddNested("RevisionDestination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEncryption sets the Encryption field's value. +func (s *AutoExportRevisionToS3RequestDetails) SetEncryption(v *ExportServerSideEncryption) *AutoExportRevisionToS3RequestDetails { + s.Encryption = v + return s +} + +// SetRevisionDestination sets the RevisionDestination field's value. +func (s *AutoExportRevisionToS3RequestDetails) SetRevisionDestination(v *AutoExportRevisionDestinationEntry) *AutoExportRevisionToS3RequestDetails { + s.RevisionDestination = v + return s +} + type CancelJobInput struct { _ struct{} `type:"structure"` @@ -2929,6 +3608,151 @@ func (s *CreateDataSetOutput) SetUpdatedAt(v time.Time) *CreateDataSetOutput { return s } +// A request to create an event action. +type CreateEventActionInput struct { + _ struct{} `type:"structure"` + + // What occurs after a certain event. + // + // Action is a required field + Action *Action `type:"structure" required:"true"` + + // What occurs to start an action. + // + // Event is a required field + Event *Event `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEventActionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEventActionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEventActionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateEventActionInput"} + if s.Action == nil { + invalidParams.Add(request.NewErrParamRequired("Action")) + } + if s.Event == nil { + invalidParams.Add(request.NewErrParamRequired("Event")) + } + if s.Action != nil { + if err := s.Action.Validate(); err != nil { + invalidParams.AddNested("Action", err.(request.ErrInvalidParams)) + } + } + if s.Event != nil { + if err := s.Event.Validate(); err != nil { + invalidParams.AddNested("Event", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAction sets the Action field's value. +func (s *CreateEventActionInput) SetAction(v *Action) *CreateEventActionInput { + s.Action = v + return s +} + +// SetEvent sets the Event field's value. +func (s *CreateEventActionInput) SetEvent(v *Event) *CreateEventActionInput { + s.Event = v + return s +} + +type CreateEventActionOutput struct { + _ struct{} `type:"structure"` + + Action *Action `type:"structure"` + + // An Amazon Resource Name (ARN) that uniquely identifies an AWS resource. + Arn *string `type:"string"` + + // Dates and times in AWS Data Exchange are recorded in ISO 8601 format. + CreatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + Event *Event `type:"structure"` + + // A unique identifier. + Id *string `type:"string"` + + // Dates and times in AWS Data Exchange are recorded in ISO 8601 format. + UpdatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEventActionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEventActionOutput) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *CreateEventActionOutput) SetAction(v *Action) *CreateEventActionOutput { + s.Action = v + return s +} + +// SetArn sets the Arn field's value. +func (s *CreateEventActionOutput) SetArn(v string) *CreateEventActionOutput { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateEventActionOutput) SetCreatedAt(v time.Time) *CreateEventActionOutput { + s.CreatedAt = &v + return s +} + +// SetEvent sets the Event field's value. +func (s *CreateEventActionOutput) SetEvent(v *Event) *CreateEventActionOutput { + s.Event = v + return s +} + +// SetId sets the Id field's value. +func (s *CreateEventActionOutput) SetId(v string) *CreateEventActionOutput { + s.Id = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *CreateEventActionOutput) SetUpdatedAt(v time.Time) *CreateEventActionOutput { + s.UpdatedAt = &v + return s +} + // The CreateJob request. AWS Data Exchange Jobs are asynchronous import or // export operations used to create or copy assets. A data set owner can both // import and export assets. A subscriber with an entitlement to a data set @@ -3564,6 +4388,75 @@ func (s DeleteDataSetOutput) GoString() string { return s.String() } +type DeleteEventActionInput struct { + _ struct{} `type:"structure"` + + // EventActionId is a required field + EventActionId *string `location:"uri" locationName:"EventActionId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEventActionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEventActionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEventActionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteEventActionInput"} + if s.EventActionId == nil { + invalidParams.Add(request.NewErrParamRequired("EventActionId")) + } + if s.EventActionId != nil && len(*s.EventActionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventActionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventActionId sets the EventActionId field's value. +func (s *DeleteEventActionInput) SetEventActionId(v string) *DeleteEventActionInput { + s.EventActionId = &v + return s +} + +type DeleteEventActionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEventActionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEventActionOutput) GoString() string { + return s.String() +} + type DeleteRevisionInput struct { _ struct{} `type:"structure"` @@ -3687,6 +4580,141 @@ func (s *Details) SetImportAssetsFromS3JobErrorDetails(v []*AssetSourceEntry) *D return s } +type Event struct { + _ struct{} `type:"structure"` + + RevisionPublished *RevisionPublished `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Event) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Event) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Event) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Event"} + if s.RevisionPublished != nil { + if err := s.RevisionPublished.Validate(); err != nil { + invalidParams.AddNested("RevisionPublished", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRevisionPublished sets the RevisionPublished field's value. +func (s *Event) SetRevisionPublished(v *RevisionPublished) *Event { + s.RevisionPublished = v + return s +} + +// An event action is an object that defines the relationship between a specific +// event and an automated action that will be taken on behalf of the customer. +type EventActionEntry struct { + _ struct{} `type:"structure"` + + // What occurs after a certain event. + // + // Action is a required field + Action *Action `type:"structure" required:"true"` + + // The ARN for the event action. + // + // Arn is a required field + Arn *string `type:"string" required:"true"` + + // The date and time that the event action was created, in ISO 8601 format. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // What occurs to start an action. + // + // Event is a required field + Event *Event `type:"structure" required:"true"` + + // The unique identifier for the event action. + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // The date and time that the event action was last updated, in ISO 8601 format. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EventActionEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EventActionEntry) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *EventActionEntry) SetAction(v *Action) *EventActionEntry { + s.Action = v + return s +} + +// SetArn sets the Arn field's value. +func (s *EventActionEntry) SetArn(v string) *EventActionEntry { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *EventActionEntry) SetCreatedAt(v time.Time) *EventActionEntry { + s.CreatedAt = &v + return s +} + +// SetEvent sets the Event field's value. +func (s *EventActionEntry) SetEvent(v *Event) *EventActionEntry { + s.Event = v + return s +} + +// SetId sets the Id field's value. +func (s *EventActionEntry) SetId(v string) *EventActionEntry { + s.Id = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *EventActionEntry) SetUpdatedAt(v time.Time) *EventActionEntry { + s.UpdatedAt = &v + return s +} + // Details of the operation to be performed by the job. type ExportAssetToSignedUrlRequestDetails struct { _ struct{} `type:"structure"` @@ -4097,6 +5125,9 @@ type ExportRevisionsToS3ResponseDetails struct { // Encryption configuration of the export job. Encryption *ExportServerSideEncryption `type:"structure"` + // The ARN for the event action. + EventActionArn *string `type:"string"` + // The destination in Amazon S3 where the revision is exported. // // RevisionDestinations is a required field @@ -4133,6 +5164,12 @@ func (s *ExportRevisionsToS3ResponseDetails) SetEncryption(v *ExportServerSideEn return s } +// SetEventActionArn sets the EventActionArn field's value. +func (s *ExportRevisionsToS3ResponseDetails) SetEventActionArn(v string) *ExportRevisionsToS3ResponseDetails { + s.EventActionArn = &v + return s +} + // SetRevisionDestinations sets the RevisionDestinations field's value. func (s *ExportRevisionsToS3ResponseDetails) SetRevisionDestinations(v []*RevisionDestinationEntry) *ExportRevisionsToS3ResponseDetails { s.RevisionDestinations = v @@ -4140,14 +5177,14 @@ func (s *ExportRevisionsToS3ResponseDetails) SetRevisionDestinations(v []*Revisi } // Encryption configuration of the export job. Includes the encryption type -// as well as the AWS KMS key. The KMS key is only necessary if you chose the -// KMS encryption type. +// in addition to the AWS KMS key. The KMS key is only necessary if you chose +// the KMS encryption. type. type ExportServerSideEncryption struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the the AWS KMS key you want to use to - // encrypt the Amazon S3 objects. This parameter is required if you choose aws:kms - // as an encryption type. + // The Amazon Resource Name (ARN) of the AWS KMS key you want to use to encrypt + // the Amazon S3 objects. This parameter is required if you choose aws:kms as + // an encryption type. KmsKeyArn *string `type:"string"` // The type of server side encryption used for encrypting the objects in Amazon @@ -4525,38 +5562,159 @@ func (s *GetDataSetOutput) SetId(v string) *GetDataSetOutput { return s } -// SetName sets the Name field's value. -func (s *GetDataSetOutput) SetName(v string) *GetDataSetOutput { - s.Name = &v +// SetName sets the Name field's value. +func (s *GetDataSetOutput) SetName(v string) *GetDataSetOutput { + s.Name = &v + return s +} + +// SetOrigin sets the Origin field's value. +func (s *GetDataSetOutput) SetOrigin(v string) *GetDataSetOutput { + s.Origin = &v + return s +} + +// SetOriginDetails sets the OriginDetails field's value. +func (s *GetDataSetOutput) SetOriginDetails(v *OriginDetails) *GetDataSetOutput { + s.OriginDetails = v + return s +} + +// SetSourceId sets the SourceId field's value. +func (s *GetDataSetOutput) SetSourceId(v string) *GetDataSetOutput { + s.SourceId = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetDataSetOutput) SetTags(v map[string]*string) *GetDataSetOutput { + s.Tags = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetDataSetOutput) SetUpdatedAt(v time.Time) *GetDataSetOutput { + s.UpdatedAt = &v + return s +} + +type GetEventActionInput struct { + _ struct{} `type:"structure"` + + // EventActionId is a required field + EventActionId *string `location:"uri" locationName:"EventActionId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEventActionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEventActionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetEventActionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetEventActionInput"} + if s.EventActionId == nil { + invalidParams.Add(request.NewErrParamRequired("EventActionId")) + } + if s.EventActionId != nil && len(*s.EventActionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventActionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventActionId sets the EventActionId field's value. +func (s *GetEventActionInput) SetEventActionId(v string) *GetEventActionInput { + s.EventActionId = &v + return s +} + +type GetEventActionOutput struct { + _ struct{} `type:"structure"` + + Action *Action `type:"structure"` + + // An Amazon Resource Name (ARN) that uniquely identifies an AWS resource. + Arn *string `type:"string"` + + // Dates and times in AWS Data Exchange are recorded in ISO 8601 format. + CreatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + Event *Event `type:"structure"` + + // A unique identifier. + Id *string `type:"string"` + + // Dates and times in AWS Data Exchange are recorded in ISO 8601 format. + UpdatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEventActionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEventActionOutput) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *GetEventActionOutput) SetAction(v *Action) *GetEventActionOutput { + s.Action = v return s } -// SetOrigin sets the Origin field's value. -func (s *GetDataSetOutput) SetOrigin(v string) *GetDataSetOutput { - s.Origin = &v +// SetArn sets the Arn field's value. +func (s *GetEventActionOutput) SetArn(v string) *GetEventActionOutput { + s.Arn = &v return s } -// SetOriginDetails sets the OriginDetails field's value. -func (s *GetDataSetOutput) SetOriginDetails(v *OriginDetails) *GetDataSetOutput { - s.OriginDetails = v +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetEventActionOutput) SetCreatedAt(v time.Time) *GetEventActionOutput { + s.CreatedAt = &v return s } -// SetSourceId sets the SourceId field's value. -func (s *GetDataSetOutput) SetSourceId(v string) *GetDataSetOutput { - s.SourceId = &v +// SetEvent sets the Event field's value. +func (s *GetEventActionOutput) SetEvent(v *Event) *GetEventActionOutput { + s.Event = v return s } -// SetTags sets the Tags field's value. -func (s *GetDataSetOutput) SetTags(v map[string]*string) *GetDataSetOutput { - s.Tags = v +// SetId sets the Id field's value. +func (s *GetEventActionOutput) SetId(v string) *GetEventActionOutput { + s.Id = &v return s } // SetUpdatedAt sets the UpdatedAt field's value. -func (s *GetDataSetOutput) SetUpdatedAt(v time.Time) *GetDataSetOutput { +func (s *GetEventActionOutput) SetUpdatedAt(v time.Time) *GetEventActionOutput { s.UpdatedAt = &v return s } @@ -5688,6 +6846,105 @@ func (s *ListDataSetsOutput) SetNextToken(v string) *ListDataSetsOutput { return s } +type ListEventActionsInput struct { + _ struct{} `type:"structure"` + + EventSourceId *string `location:"querystring" locationName:"eventSourceId" type:"string"` + + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEventActionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEventActionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListEventActionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListEventActionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventSourceId sets the EventSourceId field's value. +func (s *ListEventActionsInput) SetEventSourceId(v string) *ListEventActionsInput { + s.EventSourceId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListEventActionsInput) SetMaxResults(v int64) *ListEventActionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEventActionsInput) SetNextToken(v string) *ListEventActionsInput { + s.NextToken = &v + return s +} + +type ListEventActionsOutput struct { + _ struct{} `type:"structure"` + + EventActions []*EventActionEntry `type:"list"` + + // The token value retrieved from a previous call to access the next page of + // results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEventActionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEventActionsOutput) GoString() string { + return s.String() +} + +// SetEventActions sets the EventActions field's value. +func (s *ListEventActionsOutput) SetEventActions(v []*EventActionEntry) *ListEventActionsOutput { + s.EventActions = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEventActionsOutput) SetNextToken(v string) *ListEventActionsOutput { + s.NextToken = &v + return s +} + type ListJobsInput struct { _ struct{} `type:"structure"` @@ -6453,6 +7710,52 @@ func (s *RevisionEntry) SetUpdatedAt(v time.Time) *RevisionEntry { return s } +type RevisionPublished struct { + _ struct{} `type:"structure"` + + // A unique identifier. + // + // DataSetId is a required field + DataSetId *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RevisionPublished) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RevisionPublished) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RevisionPublished) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RevisionPublished"} + if s.DataSetId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSetId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSetId sets the DataSetId field's value. +func (s *RevisionPublished) SetDataSetId(v string) *RevisionPublished { + s.DataSetId = &v + return s +} + // The S3 object that is the asset. type S3SnapshotAsset struct { _ struct{} `type:"structure"` @@ -7240,6 +8543,142 @@ func (s *UpdateDataSetOutput) SetUpdatedAt(v time.Time) *UpdateDataSetOutput { return s } +// The request to update an event action. +type UpdateEventActionInput struct { + _ struct{} `type:"structure"` + + // What occurs after a certain event. + Action *Action `type:"structure"` + + // EventActionId is a required field + EventActionId *string `location:"uri" locationName:"EventActionId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEventActionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEventActionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEventActionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateEventActionInput"} + if s.EventActionId == nil { + invalidParams.Add(request.NewErrParamRequired("EventActionId")) + } + if s.EventActionId != nil && len(*s.EventActionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventActionId", 1)) + } + if s.Action != nil { + if err := s.Action.Validate(); err != nil { + invalidParams.AddNested("Action", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAction sets the Action field's value. +func (s *UpdateEventActionInput) SetAction(v *Action) *UpdateEventActionInput { + s.Action = v + return s +} + +// SetEventActionId sets the EventActionId field's value. +func (s *UpdateEventActionInput) SetEventActionId(v string) *UpdateEventActionInput { + s.EventActionId = &v + return s +} + +type UpdateEventActionOutput struct { + _ struct{} `type:"structure"` + + Action *Action `type:"structure"` + + // An Amazon Resource Name (ARN) that uniquely identifies an AWS resource. + Arn *string `type:"string"` + + // Dates and times in AWS Data Exchange are recorded in ISO 8601 format. + CreatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + Event *Event `type:"structure"` + + // A unique identifier. + Id *string `type:"string"` + + // Dates and times in AWS Data Exchange are recorded in ISO 8601 format. + UpdatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEventActionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEventActionOutput) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *UpdateEventActionOutput) SetAction(v *Action) *UpdateEventActionOutput { + s.Action = v + return s +} + +// SetArn sets the Arn field's value. +func (s *UpdateEventActionOutput) SetArn(v string) *UpdateEventActionOutput { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *UpdateEventActionOutput) SetCreatedAt(v time.Time) *UpdateEventActionOutput { + s.CreatedAt = &v + return s +} + +// SetEvent sets the Event field's value. +func (s *UpdateEventActionOutput) SetEvent(v *Event) *UpdateEventActionOutput { + s.Event = v + return s +} + +// SetId sets the Id field's value. +func (s *UpdateEventActionOutput) SetId(v string) *UpdateEventActionOutput { + s.Id = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *UpdateEventActionOutput) SetUpdatedAt(v time.Time) *UpdateEventActionOutput { + s.UpdatedAt = &v + return s +} + // The request to update a revision. type UpdateRevisionInput struct { _ struct{} `type:"structure"` @@ -7420,6 +8859,9 @@ type ValidationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The message that informs you about what the exception was. + ExceptionCause *string `type:"string" enum:"ExceptionCause"` + // The message that informs you about what was invalid about the request. Message_ *string `locationName:"Message" type:"string"` } @@ -7467,7 +8909,7 @@ func (s *ValidationException) OrigErr() error { } func (s *ValidationException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) } // Status code returns the HTTP status code for the request's response error. @@ -7530,6 +8972,22 @@ func Code_Values() []string { } } +const ( + // ExceptionCauseInsufficientS3bucketPolicy is a ExceptionCause enum value + ExceptionCauseInsufficientS3bucketPolicy = "InsufficientS3BucketPolicy" + + // ExceptionCauseS3accessDenied is a ExceptionCause enum value + ExceptionCauseS3accessDenied = "S3AccessDenied" +) + +// ExceptionCause_Values returns all elements of the ExceptionCause enum +func ExceptionCause_Values() []string { + return []string{ + ExceptionCauseInsufficientS3bucketPolicy, + ExceptionCauseS3accessDenied, + } +} + // The name of the limit that was reached. const ( // JobErrorLimitNameAssetsperrevision is a JobErrorLimitName enum value @@ -7554,6 +9012,9 @@ const ( // JobErrorResourceTypesAsset is a JobErrorResourceTypes enum value JobErrorResourceTypesAsset = "ASSET" + + // JobErrorResourceTypesDataSet is a JobErrorResourceTypes enum value + JobErrorResourceTypesDataSet = "DATA_SET" ) // JobErrorResourceTypes_Values returns all elements of the JobErrorResourceTypes enum @@ -7561,6 +9022,7 @@ func JobErrorResourceTypes_Values() []string { return []string{ JobErrorResourceTypesRevision, JobErrorResourceTypesAsset, + JobErrorResourceTypesDataSet, } } @@ -7600,6 +9062,15 @@ const ( // LimitNameConcurrentinprogressjobstoexportassetstoasignedUrl is a LimitName enum value LimitNameConcurrentinprogressjobstoexportassetstoasignedUrl = "Concurrent in progress jobs to export assets to a signed URL" + + // LimitNameConcurrentinprogressjobstoexportrevisionstoAmazonS3 is a LimitName enum value + LimitNameConcurrentinprogressjobstoexportrevisionstoAmazonS3 = "Concurrent in progress jobs to export revisions to Amazon S3" + + // LimitNameEventactionsperaccount is a LimitName enum value + LimitNameEventactionsperaccount = "Event actions per account" + + // LimitNameAutoexporteventactionsperdataset is a LimitName enum value + LimitNameAutoexporteventactionsperdataset = "Auto export event actions per data set" ) // LimitName_Values returns all elements of the LimitName enum @@ -7617,6 +9088,9 @@ func LimitName_Values() []string { LimitNameConcurrentinprogressjobstoimportassetsfromasignedUrl, LimitNameConcurrentinprogressjobstoexportassetstoAmazonS3, LimitNameConcurrentinprogressjobstoexportassetstoasignedUrl, + LimitNameConcurrentinprogressjobstoexportrevisionstoAmazonS3, + LimitNameEventactionsperaccount, + LimitNameAutoexporteventactionsperdataset, } } @@ -7652,6 +9126,9 @@ const ( // ResourceTypeJob is a ResourceType enum value ResourceTypeJob = "JOB" + + // ResourceTypeEventAction is a ResourceType enum value + ResourceTypeEventAction = "EVENT_ACTION" ) // ResourceType_Values returns all elements of the ResourceType enum @@ -7661,6 +9138,7 @@ func ResourceType_Values() []string { ResourceTypeRevision, ResourceTypeAsset, ResourceTypeJob, + ResourceTypeEventAction, } } diff --git a/service/dataexchange/dataexchangeiface/interface.go b/service/dataexchange/dataexchangeiface/interface.go index 248bb3591f..13bfd6d562 100644 --- a/service/dataexchange/dataexchangeiface/interface.go +++ b/service/dataexchange/dataexchangeiface/interface.go @@ -68,6 +68,10 @@ type DataExchangeAPI interface { CreateDataSetWithContext(aws.Context, *dataexchange.CreateDataSetInput, ...request.Option) (*dataexchange.CreateDataSetOutput, error) CreateDataSetRequest(*dataexchange.CreateDataSetInput) (*request.Request, *dataexchange.CreateDataSetOutput) + CreateEventAction(*dataexchange.CreateEventActionInput) (*dataexchange.CreateEventActionOutput, error) + CreateEventActionWithContext(aws.Context, *dataexchange.CreateEventActionInput, ...request.Option) (*dataexchange.CreateEventActionOutput, error) + CreateEventActionRequest(*dataexchange.CreateEventActionInput) (*request.Request, *dataexchange.CreateEventActionOutput) + CreateJob(*dataexchange.CreateJobInput) (*dataexchange.CreateJobOutput, error) CreateJobWithContext(aws.Context, *dataexchange.CreateJobInput, ...request.Option) (*dataexchange.CreateJobOutput, error) CreateJobRequest(*dataexchange.CreateJobInput) (*request.Request, *dataexchange.CreateJobOutput) @@ -84,6 +88,10 @@ type DataExchangeAPI interface { DeleteDataSetWithContext(aws.Context, *dataexchange.DeleteDataSetInput, ...request.Option) (*dataexchange.DeleteDataSetOutput, error) DeleteDataSetRequest(*dataexchange.DeleteDataSetInput) (*request.Request, *dataexchange.DeleteDataSetOutput) + DeleteEventAction(*dataexchange.DeleteEventActionInput) (*dataexchange.DeleteEventActionOutput, error) + DeleteEventActionWithContext(aws.Context, *dataexchange.DeleteEventActionInput, ...request.Option) (*dataexchange.DeleteEventActionOutput, error) + DeleteEventActionRequest(*dataexchange.DeleteEventActionInput) (*request.Request, *dataexchange.DeleteEventActionOutput) + DeleteRevision(*dataexchange.DeleteRevisionInput) (*dataexchange.DeleteRevisionOutput, error) DeleteRevisionWithContext(aws.Context, *dataexchange.DeleteRevisionInput, ...request.Option) (*dataexchange.DeleteRevisionOutput, error) DeleteRevisionRequest(*dataexchange.DeleteRevisionInput) (*request.Request, *dataexchange.DeleteRevisionOutput) @@ -96,6 +104,10 @@ type DataExchangeAPI interface { GetDataSetWithContext(aws.Context, *dataexchange.GetDataSetInput, ...request.Option) (*dataexchange.GetDataSetOutput, error) GetDataSetRequest(*dataexchange.GetDataSetInput) (*request.Request, *dataexchange.GetDataSetOutput) + GetEventAction(*dataexchange.GetEventActionInput) (*dataexchange.GetEventActionOutput, error) + GetEventActionWithContext(aws.Context, *dataexchange.GetEventActionInput, ...request.Option) (*dataexchange.GetEventActionOutput, error) + GetEventActionRequest(*dataexchange.GetEventActionInput) (*request.Request, *dataexchange.GetEventActionOutput) + GetJob(*dataexchange.GetJobInput) (*dataexchange.GetJobOutput, error) GetJobWithContext(aws.Context, *dataexchange.GetJobInput, ...request.Option) (*dataexchange.GetJobOutput, error) GetJobRequest(*dataexchange.GetJobInput) (*request.Request, *dataexchange.GetJobOutput) @@ -118,6 +130,13 @@ type DataExchangeAPI interface { ListDataSetsPages(*dataexchange.ListDataSetsInput, func(*dataexchange.ListDataSetsOutput, bool) bool) error ListDataSetsPagesWithContext(aws.Context, *dataexchange.ListDataSetsInput, func(*dataexchange.ListDataSetsOutput, bool) bool, ...request.Option) error + ListEventActions(*dataexchange.ListEventActionsInput) (*dataexchange.ListEventActionsOutput, error) + ListEventActionsWithContext(aws.Context, *dataexchange.ListEventActionsInput, ...request.Option) (*dataexchange.ListEventActionsOutput, error) + ListEventActionsRequest(*dataexchange.ListEventActionsInput) (*request.Request, *dataexchange.ListEventActionsOutput) + + ListEventActionsPages(*dataexchange.ListEventActionsInput, func(*dataexchange.ListEventActionsOutput, bool) bool) error + ListEventActionsPagesWithContext(aws.Context, *dataexchange.ListEventActionsInput, func(*dataexchange.ListEventActionsOutput, bool) bool, ...request.Option) error + ListJobs(*dataexchange.ListJobsInput) (*dataexchange.ListJobsOutput, error) ListJobsWithContext(aws.Context, *dataexchange.ListJobsInput, ...request.Option) (*dataexchange.ListJobsOutput, error) ListJobsRequest(*dataexchange.ListJobsInput) (*request.Request, *dataexchange.ListJobsOutput) @@ -156,6 +175,10 @@ type DataExchangeAPI interface { UpdateDataSetWithContext(aws.Context, *dataexchange.UpdateDataSetInput, ...request.Option) (*dataexchange.UpdateDataSetOutput, error) UpdateDataSetRequest(*dataexchange.UpdateDataSetInput) (*request.Request, *dataexchange.UpdateDataSetOutput) + UpdateEventAction(*dataexchange.UpdateEventActionInput) (*dataexchange.UpdateEventActionOutput, error) + UpdateEventActionWithContext(aws.Context, *dataexchange.UpdateEventActionInput, ...request.Option) (*dataexchange.UpdateEventActionOutput, error) + UpdateEventActionRequest(*dataexchange.UpdateEventActionInput) (*request.Request, *dataexchange.UpdateEventActionOutput) + UpdateRevision(*dataexchange.UpdateRevisionInput) (*dataexchange.UpdateRevisionOutput, error) UpdateRevisionWithContext(aws.Context, *dataexchange.UpdateRevisionInput, ...request.Option) (*dataexchange.UpdateRevisionOutput, error) UpdateRevisionRequest(*dataexchange.UpdateRevisionInput) (*request.Request, *dataexchange.UpdateRevisionOutput) diff --git a/service/macie2/api.go b/service/macie2/api.go index ef9ef2a029..f42a1f9575 100644 --- a/service/macie2/api.go +++ b/service/macie2/api.go @@ -7535,7 +7535,12 @@ func (s *BucketLevelPermissions) SetBucketPolicy(v *BucketPolicy) *BucketLevelPe return s } -// Provides information about an S3 bucket that Amazon Macie monitors and analyzes. +// Provides statistical data and other information about an S3 bucket that Amazon +// Macie monitors and analyzes for your account. If an error occurs when Macie +// attempts to retrieve and process information about the bucket or the bucket's +// objects, the value for most of these properties is null. Exceptions are accountId, +// bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify +// the cause of the error, refer to the errorCode and errorMessage values. type BucketMetadata struct { _ struct{} `type:"structure"` @@ -7553,6 +7558,12 @@ type BucketMetadata struct { ClassifiableSizeInBytes *int64 `locationName:"classifiableSizeInBytes" type:"long"` + // The error code for an error that prevented Amazon Macie from retrieving and + // processing information about an S3 bucket and the bucket's objects. + ErrorCode *string `locationName:"errorCode" type:"string" enum:"BucketMetadataErrorCode"` + + ErrorMessage *string `locationName:"errorMessage" type:"string"` + // Specifies whether any one-time or recurring classification jobs are configured // to analyze data in an S3 bucket, and, if so, the details of the job that // ran most recently. @@ -7595,17 +7606,17 @@ type BucketMetadata struct { // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse - // object, this data is aggregated for all the buckets in the query results. - // If versioning is enabled for a bucket, total storage size values are based - // on the size of the latest version of each applicable object in the bucket. + // object, this data is aggregated for the buckets in the query results. If + // versioning is enabled for a bucket, total storage size values are based on + // the size of the latest version of each applicable object in the bucket. UnclassifiableObjectCount *ObjectLevelStatistics `locationName:"unclassifiableObjectCount" type:"structure"` // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse - // object, this data is aggregated for all the buckets in the query results. - // If versioning is enabled for a bucket, total storage size values are based - // on the size of the latest version of each applicable object in the bucket. + // object, this data is aggregated for the buckets in the query results. If + // versioning is enabled for a bucket, total storage size values are based on + // the size of the latest version of each applicable object in the bucket. UnclassifiableObjectSizeInBytes *ObjectLevelStatistics `locationName:"unclassifiableObjectSizeInBytes" type:"structure"` Versioning *bool `locationName:"versioning" type:"boolean"` @@ -7671,6 +7682,18 @@ func (s *BucketMetadata) SetClassifiableSizeInBytes(v int64) *BucketMetadata { return s } +// SetErrorCode sets the ErrorCode field's value. +func (s *BucketMetadata) SetErrorCode(v string) *BucketMetadata { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *BucketMetadata) SetErrorMessage(v string) *BucketMetadata { + s.ErrorMessage = &v + return s +} + // SetJobDetails sets the JobDetails field's value. func (s *BucketMetadata) SetJobDetails(v *JobDetails) *BucketMetadata { s.JobDetails = v @@ -9862,7 +9885,8 @@ func (s *DescribeBucketsInput) SetSortCriteria(v *BucketSortCriteria) *DescribeB } // Provides the results of a query that retrieved statistical data and other -// information about one or more S3 buckets that Amazon Macie monitors and analyzes. +// information about one or more S3 buckets that Amazon Macie monitors and analyzes +// for your account. type DescribeBucketsOutput struct { _ struct{} `type:"structure"` @@ -11253,7 +11277,7 @@ func (s *GetBucketStatisticsInput) SetAccountId(v string) *GetBucketStatisticsIn } // Provides the results of a query that retrieved aggregated statistical data -// for all the S3 buckets that Amazon Macie monitors and analyzes for an account. +// for all the S3 buckets that Amazon Macie monitors and analyzes for your account. type GetBucketStatisticsOutput struct { _ struct{} `type:"structure"` @@ -11294,17 +11318,17 @@ type GetBucketStatisticsOutput struct { // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse - // object, this data is aggregated for all the buckets in the query results. - // If versioning is enabled for a bucket, total storage size values are based - // on the size of the latest version of each applicable object in the bucket. + // object, this data is aggregated for the buckets in the query results. If + // versioning is enabled for a bucket, total storage size values are based on + // the size of the latest version of each applicable object in the bucket. UnclassifiableObjectCount *ObjectLevelStatistics `locationName:"unclassifiableObjectCount" type:"structure"` // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse - // object, this data is aggregated for all the buckets in the query results. - // If versioning is enabled for a bucket, total storage size values are based - // on the size of the latest version of each applicable object in the bucket. + // object, this data is aggregated for the buckets in the query results. If + // versioning is enabled for a bucket, total storage size values are based on + // the size of the latest version of each applicable object in the bucket. UnclassifiableObjectSizeInBytes *ObjectLevelStatistics `locationName:"unclassifiableObjectSizeInBytes" type:"structure"` } @@ -14366,7 +14390,11 @@ func (s *ManagedDataIdentifierSummary) SetId(v string) *ManagedDataIdentifierSum } // Provides statistical data and other information about an S3 bucket that Amazon -// Macie monitors and analyzes. +// Macie monitors and analyzes for your account. If an error occurs when Macie +// attempts to retrieve and process information about the bucket or the bucket's +// objects, the value for most of these properties is null. Exceptions are accountId +// and bucketName. To identify the cause of the error, refer to the errorCode +// and errorMessage values. type MatchingBucket struct { _ struct{} `type:"structure"` @@ -14378,6 +14406,12 @@ type MatchingBucket struct { ClassifiableSizeInBytes *int64 `locationName:"classifiableSizeInBytes" type:"long"` + // The error code for an error that prevented Amazon Macie from retrieving and + // processing information about an S3 bucket and the bucket's objects. + ErrorCode *string `locationName:"errorCode" type:"string" enum:"BucketMetadataErrorCode"` + + ErrorMessage *string `locationName:"errorMessage" type:"string"` + // Specifies whether any one-time or recurring classification jobs are configured // to analyze data in an S3 bucket, and, if so, the details of the job that // ran most recently. @@ -14397,17 +14431,17 @@ type MatchingBucket struct { // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse - // object, this data is aggregated for all the buckets in the query results. - // If versioning is enabled for a bucket, total storage size values are based - // on the size of the latest version of each applicable object in the bucket. + // object, this data is aggregated for the buckets in the query results. If + // versioning is enabled for a bucket, total storage size values are based on + // the size of the latest version of each applicable object in the bucket. UnclassifiableObjectCount *ObjectLevelStatistics `locationName:"unclassifiableObjectCount" type:"structure"` // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse - // object, this data is aggregated for all the buckets in the query results. - // If versioning is enabled for a bucket, total storage size values are based - // on the size of the latest version of each applicable object in the bucket. + // object, this data is aggregated for the buckets in the query results. If + // versioning is enabled for a bucket, total storage size values are based on + // the size of the latest version of each applicable object in the bucket. UnclassifiableObjectSizeInBytes *ObjectLevelStatistics `locationName:"unclassifiableObjectSizeInBytes" type:"structure"` } @@ -14453,6 +14487,18 @@ func (s *MatchingBucket) SetClassifiableSizeInBytes(v int64) *MatchingBucket { return s } +// SetErrorCode sets the ErrorCode field's value. +func (s *MatchingBucket) SetErrorCode(v string) *MatchingBucket { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *MatchingBucket) SetErrorMessage(v string) *MatchingBucket { + s.ErrorMessage = &v + return s +} + // SetJobDetails sets the JobDetails field's value. func (s *MatchingBucket) SetJobDetails(v *JobDetails) *MatchingBucket { s.JobDetails = v @@ -14496,12 +14542,16 @@ func (s *MatchingBucket) SetUnclassifiableObjectSizeInBytes(v *ObjectLevelStatis } // Provides statistical data and other information about an Amazon Web Services -// resource that Amazon Macie monitors and analyzes. +// resource that Amazon Macie monitors and analyzes for your account. type MatchingResource struct { _ struct{} `type:"structure"` // Provides statistical data and other information about an S3 bucket that Amazon - // Macie monitors and analyzes. + // Macie monitors and analyzes for your account. If an error occurs when Macie + // attempts to retrieve and process information about the bucket or the bucket's + // objects, the value for most of these properties is null. Exceptions are accountId + // and bucketName. To identify the cause of the error, refer to the errorCode + // and errorMessage values. MatchingBucket *MatchingBucket `locationName:"matchingBucket" type:"structure"` } @@ -14729,9 +14779,9 @@ func (s *ObjectCountByEncryptionType) SetUnknown(v int64) *ObjectCountByEncrypti // Provides information about the total storage size (in bytes) or number of // objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata // or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse -// object, this data is aggregated for all the buckets in the query results. -// If versioning is enabled for a bucket, total storage size values are based -// on the size of the latest version of each applicable object in the bucket. +// object, this data is aggregated for the buckets in the query results. If +// versioning is enabled for a bucket, total storage size values are based on +// the size of the latest version of each applicable object in the bucket. type ObjectLevelStatistics struct { _ struct{} `type:"structure"` @@ -16096,7 +16146,7 @@ func (s *SearchResourcesInput) SetSortCriteria(v *SearchResourcesSortCriteria) * // Provides the results of a query that retrieved statistical data and other // information about Amazon Web Services resources that Amazon Macie monitors -// and analyzes. +// and analyzes for your account. type SearchResourcesOutput struct { _ struct{} `type:"structure"` @@ -18567,6 +18617,20 @@ func AllowsUnencryptedObjectUploads_Values() []string { } } +// The error code for an error that prevented Amazon Macie from retrieving and +// processing information about an S3 bucket and the bucket's objects. +const ( + // BucketMetadataErrorCodeAccessDenied is a BucketMetadataErrorCode enum value + BucketMetadataErrorCodeAccessDenied = "ACCESS_DENIED" +) + +// BucketMetadataErrorCode_Values returns all elements of the BucketMetadataErrorCode enum +func BucketMetadataErrorCode_Values() []string { + return []string{ + BucketMetadataErrorCodeAccessDenied, + } +} + // The type of currency that the data for an Amazon Macie usage metric is reported // in. Possible values are: const ( diff --git a/service/networkfirewall/api.go b/service/networkfirewall/api.go index 85164ffbca..96cc88a710 100644 --- a/service/networkfirewall/api.go +++ b/service/networkfirewall/api.go @@ -863,6 +863,9 @@ func (c *NetworkFirewall) DeleteResourcePolicyRequest(input *DeleteResourcePolic // * ThrottlingException // Unable to process the request due to throttling limitations. // +// * InvalidResourcePolicyException +// The policy statement failed validation. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/DeleteResourcePolicy func (c *NetworkFirewall) DeleteResourcePolicy(input *DeleteResourcePolicyInput) (*DeleteResourcePolicyOutput, error) { req, out := c.DeleteResourcePolicyRequest(input) @@ -2299,6 +2302,7 @@ func (c *NetworkFirewall) PutResourcePolicyRequest(input *PutResourcePolicyInput // Unable to process the request due to throttling limitations. // // * InvalidResourcePolicyException +// The policy statement failed validation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/PutResourcePolicy func (c *NetworkFirewall) PutResourcePolicy(input *PutResourcePolicyInput) (*PutResourcePolicyOutput, error) { @@ -2600,6 +2604,7 @@ func (c *NetworkFirewall) UpdateFirewallDeleteProtectionRequest(input *UpdateFir // The token you provided is stale or isn't valid for the operation. // // * ResourceOwnerCheckException +// Unable to change the resource because your account doesn't own it. // // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallDeleteProtection func (c *NetworkFirewall) UpdateFirewallDeleteProtection(input *UpdateFirewallDeleteProtectionInput) (*UpdateFirewallDeleteProtectionOutput, error) { @@ -2901,6 +2906,7 @@ func (c *NetworkFirewall) UpdateFirewallPolicyChangeProtectionRequest(input *Upd // The token you provided is stale or isn't valid for the operation. // // * ResourceOwnerCheckException +// Unable to change the resource because your account doesn't own it. // // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateFirewallPolicyChangeProtection func (c *NetworkFirewall) UpdateFirewallPolicyChangeProtection(input *UpdateFirewallPolicyChangeProtectionInput) (*UpdateFirewallPolicyChangeProtectionOutput, error) { @@ -3231,6 +3237,7 @@ func (c *NetworkFirewall) UpdateSubnetChangeProtectionRequest(input *UpdateSubne // The token you provided is stale or isn't valid for the operation. // // * ResourceOwnerCheckException +// Unable to change the resource because your account doesn't own it. // // See also, https://docs.aws.amazon.com/goto/WebAPI/network-firewall-2020-11-12/UpdateSubnetChangeProtection func (c *NetworkFirewall) UpdateSubnetChangeProtection(input *UpdateSubnetChangeProtectionInput) (*UpdateSubnetChangeProtectionOutput, error) { @@ -5938,7 +5945,15 @@ func (s *FirewallMetadata) SetFirewallName(v string) *FirewallMetadata { type FirewallPolicy struct { _ struct{} `type:"structure"` - // References to the stateless rule groups that are used in the policy. These + // The default actions to take on a packet that doesn't match any stateful rules. + StatefulDefaultActions []*string `type:"list"` + + // Additional options governing how Network Firewall handles stateful rules. + // The stateful rule groups that you use in your policy must have stateful rule + // options settings that are compatible with these settings. + StatefulEngineOptions *StatefulEngineOptions `type:"structure"` + + // References to the stateful rule groups that are used in the policy. These // define the inspection criteria in stateful rules. StatefulRuleGroupReferences []*StatefulRuleGroupReference `type:"list"` @@ -6048,6 +6063,18 @@ func (s *FirewallPolicy) Validate() error { return nil } +// SetStatefulDefaultActions sets the StatefulDefaultActions field's value. +func (s *FirewallPolicy) SetStatefulDefaultActions(v []*string) *FirewallPolicy { + s.StatefulDefaultActions = v + return s +} + +// SetStatefulEngineOptions sets the StatefulEngineOptions field's value. +func (s *FirewallPolicy) SetStatefulEngineOptions(v *StatefulEngineOptions) *FirewallPolicy { + s.StatefulEngineOptions = v + return s +} + // SetStatefulRuleGroupReferences sets the StatefulRuleGroupReferences field's value. func (s *FirewallPolicy) SetStatefulRuleGroupReferences(v []*StatefulRuleGroupReference) *FirewallPolicy { s.StatefulRuleGroupReferences = v @@ -6129,6 +6156,14 @@ func (s *FirewallPolicyMetadata) SetName(v string) *FirewallPolicyMetadata { type FirewallPolicyResponse struct { _ struct{} `type:"structure"` + // The number of capacity units currently consumed by the policy's stateful + // rules. + ConsumedStatefulRuleCapacity *int64 `type:"integer"` + + // The number of capacity units currently consumed by the policy's stateless + // rules. + ConsumedStatelessRuleCapacity *int64 `type:"integer"` + // A description of the firewall policy. Description *string `type:"string"` @@ -6156,6 +6191,9 @@ type FirewallPolicyResponse struct { // name or ARN. FirewallPolicyStatus *string `type:"string" enum:"ResourceStatus"` + // The number of firewalls that are associated with this firewall policy. + NumberOfAssociations *int64 `type:"integer"` + // The key:value pairs to associate with the resource. Tags []*Tag `min:"1" type:"list"` } @@ -6178,6 +6216,18 @@ func (s FirewallPolicyResponse) GoString() string { return s.String() } +// SetConsumedStatefulRuleCapacity sets the ConsumedStatefulRuleCapacity field's value. +func (s *FirewallPolicyResponse) SetConsumedStatefulRuleCapacity(v int64) *FirewallPolicyResponse { + s.ConsumedStatefulRuleCapacity = &v + return s +} + +// SetConsumedStatelessRuleCapacity sets the ConsumedStatelessRuleCapacity field's value. +func (s *FirewallPolicyResponse) SetConsumedStatelessRuleCapacity(v int64) *FirewallPolicyResponse { + s.ConsumedStatelessRuleCapacity = &v + return s +} + // SetDescription sets the Description field's value. func (s *FirewallPolicyResponse) SetDescription(v string) *FirewallPolicyResponse { s.Description = &v @@ -6208,6 +6258,12 @@ func (s *FirewallPolicyResponse) SetFirewallPolicyStatus(v string) *FirewallPoli return s } +// SetNumberOfAssociations sets the NumberOfAssociations field's value. +func (s *FirewallPolicyResponse) SetNumberOfAssociations(v int64) *FirewallPolicyResponse { + s.NumberOfAssociations = &v + return s +} + // SetTags sets the Tags field's value. func (s *FirewallPolicyResponse) SetTags(v []*Tag) *FirewallPolicyResponse { s.Tags = v @@ -6288,9 +6344,9 @@ func (s *FirewallStatus) SetSyncStates(v map[string]*SyncState) *FirewallStatus return s } -// The 5-tuple criteria for AWS Network Firewall to use to inspect packet headers -// in stateful traffic flow inspection. Traffic flows that match the criteria -// are a match for the corresponding StatefulRule. +// The basic rule criteria for AWS Network Firewall to use to inspect packet +// headers in stateful traffic flow inspection. Traffic flows that match the +// criteria are a match for the corresponding StatefulRule. type Header struct { _ struct{} `type:"structure"` @@ -6316,7 +6372,7 @@ type Header struct { Destination *string `min:"1" type:"string" required:"true"` // The destination port to inspect for. You can specify an individual port, - // for example 1994 and you can specify a port range, for example 1990-1994. + // for example 1994 and you can specify a port range, for example 1990:1994. // To match with any port, specify ANY. // // DestinationPort is a required field @@ -6358,7 +6414,7 @@ type Header struct { Source *string `min:"1" type:"string" required:"true"` // The source port to inspect for. You can specify an individual port, for example - // 1994 and you can specify a port range, for example 1990-1994. To match with + // 1994 and you can specify a port range, for example 1990:1994. To match with // any port, specify ANY. // // SourcePort is a required field @@ -6774,6 +6830,7 @@ func (s *InvalidRequestException) RequestID() string { return s.RespMetadata.RequestID } +// The policy statement failed validation. type InvalidResourcePolicyException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -7663,7 +7720,7 @@ type MatchAttributes struct { // 17 (UDP). // // You can specify individual ports, for example 1994 and you can specify port - // ranges, for example 1990-1994. + // ranges, for example 1990:1994. DestinationPorts []*PortRange `type:"list"` // The destination IP addresses and address ranges to inspect for, in CIDR notation. @@ -7678,7 +7735,7 @@ type MatchAttributes struct { // source port. This setting is only used for protocols 6 (TCP) and 17 (UDP). // // You can specify individual ports, for example 1994 and you can specify port - // ranges, for example 1990-1994. + // ranges, for example 1990:1994. SourcePorts []*PortRange `type:"list"` // The source IP addresses and address ranges to inspect for, in CIDR notation. @@ -8187,6 +8244,7 @@ func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// Unable to change the resource because your account doesn't own it. type ResourceOwnerCheckException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -8371,6 +8429,11 @@ type RuleGroup struct { // // RulesSource is a required field RulesSource *RulesSource `type:"structure" required:"true"` + + // Additional options governing how Network Firewall handles stateful rules. + // The policies where you use your stateful rule group must have stateful rule + // options settings that are compatible with these settings. + StatefulRuleOptions *StatefulRuleOptions `type:"structure"` } // String returns the string representation. @@ -8426,6 +8489,12 @@ func (s *RuleGroup) SetRulesSource(v *RulesSource) *RuleGroup { return s } +// SetStatefulRuleOptions sets the StatefulRuleOptions field's value. +func (s *RuleGroup) SetStatefulRuleOptions(v *StatefulRuleOptions) *RuleGroup { + s.StatefulRuleOptions = v + return s +} + // High-level information about a rule group, returned by ListRuleGroups. You // can use the information provided in the metadata to retrieve and manage a // rule group. @@ -8485,9 +8554,15 @@ type RuleGroupResponse struct { // you create the rule group by calling CreateRuleGroup with DryRun set to TRUE. Capacity *int64 `type:"integer"` + // The number of capacity units currently consumed by the rule group rules. + ConsumedCapacity *int64 `type:"integer"` + // A description of the rule group. Description *string `type:"string"` + // The number of firewall policies that use this rule group. + NumberOfAssociations *int64 `type:"integer"` + // The Amazon Resource Name (ARN) of the rule group. // // If this response is for a create request that had DryRun set to TRUE, then @@ -8543,12 +8618,24 @@ func (s *RuleGroupResponse) SetCapacity(v int64) *RuleGroupResponse { return s } +// SetConsumedCapacity sets the ConsumedCapacity field's value. +func (s *RuleGroupResponse) SetConsumedCapacity(v int64) *RuleGroupResponse { + s.ConsumedCapacity = &v + return s +} + // SetDescription sets the Description field's value. func (s *RuleGroupResponse) SetDescription(v string) *RuleGroupResponse { s.Description = &v return s } +// SetNumberOfAssociations sets the NumberOfAssociations field's value. +func (s *RuleGroupResponse) SetNumberOfAssociations(v int64) *RuleGroupResponse { + s.NumberOfAssociations = &v + return s +} + // SetRuleGroupArn sets the RuleGroupArn field's value. func (s *RuleGroupResponse) SetRuleGroupArn(v string) *RuleGroupResponse { s.RuleGroupArn = &v @@ -8722,8 +8809,10 @@ type RulesSource struct { // action setting. RulesString *string `type:"string"` - // The 5-tuple stateful inspection criteria. This contains an array of individual - // 5-tuple stateful rules to be used together in a stateful rule group. + // An array of individual stateful rules inspection criteria to be used together + // in a stateful rule group. Use this option to specify simple Suricata rules + // with protocol, source and destination, ports, direction, and rule options. + // For information about the Suricata Rules format, see Rules Format (https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#). StatefulRules []*StatefulRule `type:"list"` // Stateless inspection criteria to be used in a stateless rule group. @@ -8813,7 +8902,7 @@ func (s *RulesSource) SetStatelessRulesAndCustomActions(v *StatelessRulesAndCust // to include the CIDR range of the deployment VPC plus the other CIDR ranges. // For more information, see RuleVariables in this guide and Stateful domain // list rule groups in AWS Network Firewall (https://docs.aws.amazon.com/network-firewall/latest/developerguide/stateful-rule-groups-domain-names.html) -// in the Network Firewall Developer Guide +// in the Network Firewall Developer Guide. type RulesSourceList struct { _ struct{} `type:"structure"` @@ -8822,7 +8911,7 @@ type RulesSourceList struct { // GeneratedRulesType is a required field GeneratedRulesType *string `type:"string" required:"true" enum:"GeneratedRulesType"` - // The protocols you want to inspect. Specify TLS_SNI for HTTPS. Specity HTTP_HOST + // The protocols you want to inspect. Specify TLS_SNI for HTTPS. Specify HTTP_HOST // for HTTP. You can specify either or both. // // TargetTypes is a required field @@ -8898,7 +8987,49 @@ func (s *RulesSourceList) SetTargets(v []*string) *RulesSourceList { return s } -// A single 5-tuple stateful rule, for use in a stateful rule group. +// Configuration settings for the handling of the stateful rule groups in a +// firewall policy. +type StatefulEngineOptions struct { + _ struct{} `type:"structure"` + + // Indicates how to manage the order of stateful rule evaluation for the policy. + // By default, Network Firewall leaves the rule evaluation order up to the Suricata + // rule processing engine. If you set this to STRICT_ORDER, your rules are evaluated + // in the exact order that you provide them in the policy. With strict ordering, + // the rule groups are evaluated by order of priority, starting from the lowest + // number, and the rules in each rule group are processed in the order that + // they're defined. + RuleOrder *string `type:"string" enum:"RuleOrder"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StatefulEngineOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StatefulEngineOptions) GoString() string { + return s.String() +} + +// SetRuleOrder sets the RuleOrder field's value. +func (s *StatefulEngineOptions) SetRuleOrder(v string) *StatefulEngineOptions { + s.RuleOrder = &v + return s +} + +// A single Suricata rules specification, for use in a stateful rule group. +// Use this option to specify a simple Suricata rule with protocol, source and +// destination, ports, direction, and rule options. For information about the +// Suricata Rules format, see Rules Format (https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#). type StatefulRule struct { _ struct{} `type:"structure"` @@ -8924,12 +9055,13 @@ type StatefulRule struct { // Action is a required field Action *string `type:"string" required:"true" enum:"StatefulAction"` - // The stateful 5-tuple inspection criteria for this rule, used to inspect traffic - // flows. + // The stateful inspection criteria for this rule, used to inspect traffic flows. // // Header is a required field Header *Header `type:"structure" required:"true"` + // Additional options for the rule. These are the Suricata RuleOptions settings. + // // RuleOptions is a required field RuleOptions []*RuleOption `type:"list" required:"true"` } @@ -9009,6 +9141,20 @@ func (s *StatefulRule) SetRuleOptions(v []*RuleOption) *StatefulRule { type StatefulRuleGroupReference struct { _ struct{} `type:"structure"` + // An integer setting that indicates the order in which to run the stateful + // rule groups in a single FirewallPolicy. This setting only applies to firewall + // policies that specify the STRICT_ORDER rule order in the stateful engine + // options settings. + // + // Network Firewall evalutes each stateful rule group against a packet starting + // with the group that has the lowest priority setting. You must ensure that + // the priority settings are unique within each policy. + // + // You can change the priority settings of your rule groups at any time. To + // make it easier to insert rule groups later, number them so there's a wide + // range in between, for example use 100, 200, and so on. + Priority *int64 `min:"1" type:"integer"` + // The Amazon Resource Name (ARN) of the stateful rule group. // // ResourceArn is a required field @@ -9036,6 +9182,9 @@ func (s StatefulRuleGroupReference) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *StatefulRuleGroupReference) Validate() error { invalidParams := request.ErrInvalidParams{Context: "StatefulRuleGroupReference"} + if s.Priority != nil && *s.Priority < 1 { + invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) + } if s.ResourceArn == nil { invalidParams.Add(request.NewErrParamRequired("ResourceArn")) } @@ -9049,20 +9198,62 @@ func (s *StatefulRuleGroupReference) Validate() error { return nil } +// SetPriority sets the Priority field's value. +func (s *StatefulRuleGroupReference) SetPriority(v int64) *StatefulRuleGroupReference { + s.Priority = &v + return s +} + // SetResourceArn sets the ResourceArn field's value. func (s *StatefulRuleGroupReference) SetResourceArn(v string) *StatefulRuleGroupReference { s.ResourceArn = &v return s } +// Additional options governing how Network Firewall handles the rule group. +// You can only use these for stateful rule groups. +type StatefulRuleOptions struct { + _ struct{} `type:"structure"` + + // Indicates how to manage the order of the rule evaluation for the rule group. + // By default, Network Firewall leaves the rule evaluation order up to the Suricata + // rule processing engine. If you set this to STRICT_ORDER, your rules are evaluated + // in the exact order that they're listed in your Suricata rules string. + RuleOrder *string `type:"string" enum:"RuleOrder"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StatefulRuleOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StatefulRuleOptions) GoString() string { + return s.String() +} + +// SetRuleOrder sets the RuleOrder field's value. +func (s *StatefulRuleOptions) SetRuleOrder(v string) *StatefulRuleOptions { + s.RuleOrder = &v + return s +} + // A single stateless rule. This is used in StatelessRulesAndCustomActions. type StatelessRule struct { _ struct{} `type:"structure"` - // A setting that indicates the order in which to run this rule relative to - // all of the rules that are defined for a stateless rule group. Network Firewall - // evaluates the rules in a rule group starting with the lowest priority setting. - // You must ensure that the priority settings are unique for the rule group. + // Indicates the order in which to run this rule relative to all of the rules + // that are defined for a stateless rule group. Network Firewall evaluates the + // rules in a rule group starting with the lowest priority setting. You must + // ensure that the priority settings are unique for the rule group. // // Each stateless rule group uses exactly one StatelessRulesAndCustomActions // object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules @@ -11242,6 +11433,22 @@ func RuleGroupType_Values() []string { } } +const ( + // RuleOrderDefaultActionOrder is a RuleOrder enum value + RuleOrderDefaultActionOrder = "DEFAULT_ACTION_ORDER" + + // RuleOrderStrictOrder is a RuleOrder enum value + RuleOrderStrictOrder = "STRICT_ORDER" +) + +// RuleOrder_Values returns all elements of the RuleOrder enum +func RuleOrder_Values() []string { + return []string{ + RuleOrderDefaultActionOrder, + RuleOrderStrictOrder, + } +} + const ( // StatefulActionPass is a StatefulAction enum value StatefulActionPass = "PASS" diff --git a/service/networkfirewall/doc.go b/service/networkfirewall/doc.go index acbc9083b1..15241fa4fe 100644 --- a/service/networkfirewall/doc.go +++ b/service/networkfirewall/doc.go @@ -26,8 +26,8 @@ // includes filtering traffic going to and coming from an internet gateway, // NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules // that are compatible with Suricata, a free, open source intrusion detection -// system (IDS) engine. For information about Suricata, see the Suricata website -// (https://suricata-ids.org/). +// system (IDS) engine. AWS Network Firewall supports Suricata version 5.0.2. +// For information about Suricata, see the Suricata website (https://suricata-ids.org/). // // You can use Network Firewall to monitor and protect your VPC traffic in a // number of ways. The following are just a few examples: diff --git a/service/networkfirewall/errors.go b/service/networkfirewall/errors.go index df8fe41ff7..ec25d8c36a 100644 --- a/service/networkfirewall/errors.go +++ b/service/networkfirewall/errors.go @@ -45,6 +45,8 @@ const ( // ErrCodeInvalidResourcePolicyException for service response error code // "InvalidResourcePolicyException". + // + // The policy statement failed validation. ErrCodeInvalidResourcePolicyException = "InvalidResourcePolicyException" // ErrCodeInvalidTokenException for service response error code @@ -73,6 +75,8 @@ const ( // ErrCodeResourceOwnerCheckException for service response error code // "ResourceOwnerCheckException". + // + // Unable to change the resource because your account doesn't own it. ErrCodeResourceOwnerCheckException = "ResourceOwnerCheckException" // ErrCodeThrottlingException for service response error code diff --git a/service/workmail/api.go b/service/workmail/api.go index d41c8920c8..aa014bbb1d 100644 --- a/service/workmail/api.go +++ b/service/workmail/api.go @@ -1308,6 +1308,99 @@ func (c *WorkMail) DeleteMailboxPermissionsWithContext(ctx aws.Context, input *D return out, req.Send() } +const opDeleteMobileDeviceAccessOverride = "DeleteMobileDeviceAccessOverride" + +// DeleteMobileDeviceAccessOverrideRequest generates a "aws/request.Request" representing the +// client's request for the DeleteMobileDeviceAccessOverride 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 DeleteMobileDeviceAccessOverride for more information on using the DeleteMobileDeviceAccessOverride +// 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 DeleteMobileDeviceAccessOverrideRequest method. +// req, resp := client.DeleteMobileDeviceAccessOverrideRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMobileDeviceAccessOverride +func (c *WorkMail) DeleteMobileDeviceAccessOverrideRequest(input *DeleteMobileDeviceAccessOverrideInput) (req *request.Request, output *DeleteMobileDeviceAccessOverrideOutput) { + op := &request.Operation{ + Name: opDeleteMobileDeviceAccessOverride, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteMobileDeviceAccessOverrideInput{} + } + + output = &DeleteMobileDeviceAccessOverrideOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteMobileDeviceAccessOverride API operation for Amazon WorkMail. +// +// Deletes the mobile device access override for the given WorkMail organization, +// user, and device. +// +// 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 WorkMail's +// API operation DeleteMobileDeviceAccessOverride for usage and error information. +// +// Returned Error Types: +// * InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// * OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// * OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// * EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMobileDeviceAccessOverride +func (c *WorkMail) DeleteMobileDeviceAccessOverride(input *DeleteMobileDeviceAccessOverrideInput) (*DeleteMobileDeviceAccessOverrideOutput, error) { + req, out := c.DeleteMobileDeviceAccessOverrideRequest(input) + return out, req.Send() +} + +// DeleteMobileDeviceAccessOverrideWithContext is the same as DeleteMobileDeviceAccessOverride with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteMobileDeviceAccessOverride 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 *WorkMail) DeleteMobileDeviceAccessOverrideWithContext(ctx aws.Context, input *DeleteMobileDeviceAccessOverrideInput, opts ...request.Option) (*DeleteMobileDeviceAccessOverrideOutput, error) { + req, out := c.DeleteMobileDeviceAccessOverrideRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteMobileDeviceAccessRule = "DeleteMobileDeviceAccessRule" // DeleteMobileDeviceAccessRuleRequest generates a "aws/request.Request" representing the @@ -2881,6 +2974,101 @@ func (c *WorkMail) GetMobileDeviceAccessEffectWithContext(ctx aws.Context, input return out, req.Send() } +const opGetMobileDeviceAccessOverride = "GetMobileDeviceAccessOverride" + +// GetMobileDeviceAccessOverrideRequest generates a "aws/request.Request" representing the +// client's request for the GetMobileDeviceAccessOverride 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 GetMobileDeviceAccessOverride for more information on using the GetMobileDeviceAccessOverride +// 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 GetMobileDeviceAccessOverrideRequest method. +// req, resp := client.GetMobileDeviceAccessOverrideRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMobileDeviceAccessOverride +func (c *WorkMail) GetMobileDeviceAccessOverrideRequest(input *GetMobileDeviceAccessOverrideInput) (req *request.Request, output *GetMobileDeviceAccessOverrideOutput) { + op := &request.Operation{ + Name: opGetMobileDeviceAccessOverride, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetMobileDeviceAccessOverrideInput{} + } + + output = &GetMobileDeviceAccessOverrideOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetMobileDeviceAccessOverride API operation for Amazon WorkMail. +// +// Gets the mobile device access override for the given WorkMail organization, +// user, and device. +// +// 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 WorkMail's +// API operation GetMobileDeviceAccessOverride for usage and error information. +// +// Returned Error Types: +// * InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// * OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// * OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// * EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// * ResourceNotFoundException +// The resource cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMobileDeviceAccessOverride +func (c *WorkMail) GetMobileDeviceAccessOverride(input *GetMobileDeviceAccessOverrideInput) (*GetMobileDeviceAccessOverrideOutput, error) { + req, out := c.GetMobileDeviceAccessOverrideRequest(input) + return out, req.Send() +} + +// GetMobileDeviceAccessOverrideWithContext is the same as GetMobileDeviceAccessOverride with the addition of +// the ability to pass a context and additional request options. +// +// See GetMobileDeviceAccessOverride 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 *WorkMail) GetMobileDeviceAccessOverrideWithContext(ctx aws.Context, input *GetMobileDeviceAccessOverrideInput, opts ...request.Option) (*GetMobileDeviceAccessOverrideOutput, error) { + req, out := c.GetMobileDeviceAccessOverrideRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListAccessControlRules = "ListAccessControlRules" // ListAccessControlRulesRequest generates a "aws/request.Request" representing the @@ -3717,58 +3905,65 @@ func (c *WorkMail) ListMailboxPermissionsPagesWithContext(ctx aws.Context, input return p.Err() } -const opListMobileDeviceAccessRules = "ListMobileDeviceAccessRules" +const opListMobileDeviceAccessOverrides = "ListMobileDeviceAccessOverrides" -// ListMobileDeviceAccessRulesRequest generates a "aws/request.Request" representing the -// client's request for the ListMobileDeviceAccessRules operation. The "output" return +// ListMobileDeviceAccessOverridesRequest generates a "aws/request.Request" representing the +// client's request for the ListMobileDeviceAccessOverrides 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 ListMobileDeviceAccessRules for more information on using the ListMobileDeviceAccessRules +// See ListMobileDeviceAccessOverrides for more information on using the ListMobileDeviceAccessOverrides // 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 ListMobileDeviceAccessRulesRequest method. -// req, resp := client.ListMobileDeviceAccessRulesRequest(params) +// // Example sending a request using the ListMobileDeviceAccessOverridesRequest method. +// req, resp := client.ListMobileDeviceAccessOverridesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules -func (c *WorkMail) ListMobileDeviceAccessRulesRequest(input *ListMobileDeviceAccessRulesInput) (req *request.Request, output *ListMobileDeviceAccessRulesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessOverrides +func (c *WorkMail) ListMobileDeviceAccessOverridesRequest(input *ListMobileDeviceAccessOverridesInput) (req *request.Request, output *ListMobileDeviceAccessOverridesOutput) { op := &request.Operation{ - Name: opListMobileDeviceAccessRules, + Name: opListMobileDeviceAccessOverrides, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &ListMobileDeviceAccessRulesInput{} + input = &ListMobileDeviceAccessOverridesInput{} } - output = &ListMobileDeviceAccessRulesOutput{} + output = &ListMobileDeviceAccessOverridesOutput{} req = c.newRequest(op, input, output) return } -// ListMobileDeviceAccessRules API operation for Amazon WorkMail. +// ListMobileDeviceAccessOverrides API operation for Amazon WorkMail. // -// Lists the mobile device access rules for the specified Amazon WorkMail organization. +// Lists all the mobile device access overrides for any given combination of +// WorkMail organization, user, or device. // // 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 WorkMail's -// API operation ListMobileDeviceAccessRules for usage and error information. +// API operation ListMobileDeviceAccessOverrides for usage and error information. // // Returned Error Types: // * InvalidParameterException @@ -3782,98 +3977,241 @@ func (c *WorkMail) ListMobileDeviceAccessRulesRequest(input *ListMobileDeviceAcc // The organization must have a valid state to perform certain operations on // the organization or its members. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules -func (c *WorkMail) ListMobileDeviceAccessRules(input *ListMobileDeviceAccessRulesInput) (*ListMobileDeviceAccessRulesOutput, error) { - req, out := c.ListMobileDeviceAccessRulesRequest(input) +// * EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessOverrides +func (c *WorkMail) ListMobileDeviceAccessOverrides(input *ListMobileDeviceAccessOverridesInput) (*ListMobileDeviceAccessOverridesOutput, error) { + req, out := c.ListMobileDeviceAccessOverridesRequest(input) return out, req.Send() } -// ListMobileDeviceAccessRulesWithContext is the same as ListMobileDeviceAccessRules with the addition of +// ListMobileDeviceAccessOverridesWithContext is the same as ListMobileDeviceAccessOverrides with the addition of // the ability to pass a context and additional request options. // -// See ListMobileDeviceAccessRules for details on how to use this API operation. +// See ListMobileDeviceAccessOverrides 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 *WorkMail) ListMobileDeviceAccessRulesWithContext(ctx aws.Context, input *ListMobileDeviceAccessRulesInput, opts ...request.Option) (*ListMobileDeviceAccessRulesOutput, error) { - req, out := c.ListMobileDeviceAccessRulesRequest(input) +func (c *WorkMail) ListMobileDeviceAccessOverridesWithContext(ctx aws.Context, input *ListMobileDeviceAccessOverridesInput, opts ...request.Option) (*ListMobileDeviceAccessOverridesOutput, error) { + req, out := c.ListMobileDeviceAccessOverridesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListOrganizations = "ListOrganizations" +// ListMobileDeviceAccessOverridesPages iterates over the pages of a ListMobileDeviceAccessOverrides operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListMobileDeviceAccessOverrides 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 ListMobileDeviceAccessOverrides operation. +// pageNum := 0 +// err := client.ListMobileDeviceAccessOverridesPages(params, +// func(page *workmail.ListMobileDeviceAccessOverridesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *WorkMail) ListMobileDeviceAccessOverridesPages(input *ListMobileDeviceAccessOverridesInput, fn func(*ListMobileDeviceAccessOverridesOutput, bool) bool) error { + return c.ListMobileDeviceAccessOverridesPagesWithContext(aws.BackgroundContext(), input, fn) +} -// ListOrganizationsRequest generates a "aws/request.Request" representing the -// client's request for the ListOrganizations operation. The "output" return +// ListMobileDeviceAccessOverridesPagesWithContext same as ListMobileDeviceAccessOverridesPages 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 *WorkMail) ListMobileDeviceAccessOverridesPagesWithContext(ctx aws.Context, input *ListMobileDeviceAccessOverridesInput, fn func(*ListMobileDeviceAccessOverridesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListMobileDeviceAccessOverridesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListMobileDeviceAccessOverridesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListMobileDeviceAccessOverridesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListMobileDeviceAccessRules = "ListMobileDeviceAccessRules" + +// ListMobileDeviceAccessRulesRequest generates a "aws/request.Request" representing the +// client's request for the ListMobileDeviceAccessRules 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 ListOrganizations for more information on using the ListOrganizations +// See ListMobileDeviceAccessRules for more information on using the ListMobileDeviceAccessRules // 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 ListOrganizationsRequest method. -// req, resp := client.ListOrganizationsRequest(params) +// // Example sending a request using the ListMobileDeviceAccessRulesRequest method. +// req, resp := client.ListMobileDeviceAccessRulesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations -func (c *WorkMail) ListOrganizationsRequest(input *ListOrganizationsInput) (req *request.Request, output *ListOrganizationsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules +func (c *WorkMail) ListMobileDeviceAccessRulesRequest(input *ListMobileDeviceAccessRulesInput) (req *request.Request, output *ListMobileDeviceAccessRulesOutput) { op := &request.Operation{ - Name: opListOrganizations, + Name: opListMobileDeviceAccessRules, HTTPMethod: "POST", HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, } if input == nil { - input = &ListOrganizationsInput{} + input = &ListMobileDeviceAccessRulesInput{} } - output = &ListOrganizationsOutput{} + output = &ListMobileDeviceAccessRulesOutput{} req = c.newRequest(op, input, output) return } -// ListOrganizations API operation for Amazon WorkMail. +// ListMobileDeviceAccessRules API operation for Amazon WorkMail. // -// Returns summaries of the customer's organizations. +// Lists the mobile device access rules for the specified Amazon WorkMail organization. // // 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 WorkMail's -// API operation ListOrganizations for usage and error information. +// API operation ListMobileDeviceAccessRules for usage and error information. // // Returned Error Types: // * InvalidParameterException // One or more of the input parameters don't match the service's restrictions. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations -func (c *WorkMail) ListOrganizations(input *ListOrganizationsInput) (*ListOrganizationsOutput, error) { - req, out := c.ListOrganizationsRequest(input) - return out, req.Send() -} - -// ListOrganizationsWithContext is the same as ListOrganizations with the addition of +// * OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// * OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules +func (c *WorkMail) ListMobileDeviceAccessRules(input *ListMobileDeviceAccessRulesInput) (*ListMobileDeviceAccessRulesOutput, error) { + req, out := c.ListMobileDeviceAccessRulesRequest(input) + return out, req.Send() +} + +// ListMobileDeviceAccessRulesWithContext is the same as ListMobileDeviceAccessRules with the addition of +// the ability to pass a context and additional request options. +// +// See ListMobileDeviceAccessRules 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 *WorkMail) ListMobileDeviceAccessRulesWithContext(ctx aws.Context, input *ListMobileDeviceAccessRulesInput, opts ...request.Option) (*ListMobileDeviceAccessRulesOutput, error) { + req, out := c.ListMobileDeviceAccessRulesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListOrganizations = "ListOrganizations" + +// ListOrganizationsRequest generates a "aws/request.Request" representing the +// client's request for the ListOrganizations 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 ListOrganizations for more information on using the ListOrganizations +// 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 ListOrganizationsRequest method. +// req, resp := client.ListOrganizationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations +func (c *WorkMail) ListOrganizationsRequest(input *ListOrganizationsInput) (req *request.Request, output *ListOrganizationsOutput) { + op := &request.Operation{ + Name: opListOrganizations, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListOrganizationsInput{} + } + + output = &ListOrganizationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListOrganizations API operation for Amazon WorkMail. +// +// Returns summaries of the customer's organizations. +// +// 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 WorkMail's +// API operation ListOrganizations for usage and error information. +// +// Returned Error Types: +// * InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations +func (c *WorkMail) ListOrganizations(input *ListOrganizationsInput) (*ListOrganizationsOutput, error) { + req, out := c.ListOrganizationsRequest(input) + return out, req.Send() +} + +// ListOrganizationsWithContext is the same as ListOrganizations with the addition of // the ability to pass a context and additional request options. // // See ListOrganizations for details on how to use this API operation. @@ -4659,6 +4997,103 @@ func (c *WorkMail) PutMailboxPermissionsWithContext(ctx aws.Context, input *PutM return out, req.Send() } +const opPutMobileDeviceAccessOverride = "PutMobileDeviceAccessOverride" + +// PutMobileDeviceAccessOverrideRequest generates a "aws/request.Request" representing the +// client's request for the PutMobileDeviceAccessOverride 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 PutMobileDeviceAccessOverride for more information on using the PutMobileDeviceAccessOverride +// 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 PutMobileDeviceAccessOverrideRequest method. +// req, resp := client.PutMobileDeviceAccessOverrideRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutMobileDeviceAccessOverride +func (c *WorkMail) PutMobileDeviceAccessOverrideRequest(input *PutMobileDeviceAccessOverrideInput) (req *request.Request, output *PutMobileDeviceAccessOverrideOutput) { + op := &request.Operation{ + Name: opPutMobileDeviceAccessOverride, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutMobileDeviceAccessOverrideInput{} + } + + output = &PutMobileDeviceAccessOverrideOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutMobileDeviceAccessOverride API operation for Amazon WorkMail. +// +// Creates or updates a mobile device access override for the given WorkMail +// organization, user, and device. +// +// 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 WorkMail's +// API operation PutMobileDeviceAccessOverride for usage and error information. +// +// Returned Error Types: +// * InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// * OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// * OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// * EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// * EntityStateException +// You are performing an operation on a user, group, or resource that isn't +// in the expected state, such as trying to delete an active user. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutMobileDeviceAccessOverride +func (c *WorkMail) PutMobileDeviceAccessOverride(input *PutMobileDeviceAccessOverrideInput) (*PutMobileDeviceAccessOverrideOutput, error) { + req, out := c.PutMobileDeviceAccessOverrideRequest(input) + return out, req.Send() +} + +// PutMobileDeviceAccessOverrideWithContext is the same as PutMobileDeviceAccessOverride with the addition of +// the ability to pass a context and additional request options. +// +// See PutMobileDeviceAccessOverride 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 *WorkMail) PutMobileDeviceAccessOverrideWithContext(ctx aws.Context, input *PutMobileDeviceAccessOverrideInput, opts ...request.Option) (*PutMobileDeviceAccessOverrideOutput, error) { + req, out := c.PutMobileDeviceAccessOverrideRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutRetentionPolicy = "PutRetentionPolicy" // PutRetentionPolicyRequest generates a "aws/request.Request" representing the @@ -7427,18 +7862,30 @@ func (s DeleteMailboxPermissionsOutput) GoString() string { return s.String() } -type DeleteMobileDeviceAccessRuleInput struct { +type DeleteMobileDeviceAccessOverrideInput struct { _ struct{} `type:"structure"` - // The identifier of the rule to be deleted. + // The mobile device for which you delete the override. DeviceId is case insensitive. // - // MobileDeviceAccessRuleId is a required field - MobileDeviceAccessRuleId *string `min:"1" type:"string" required:"true"` + // DeviceId is a required field + DeviceId *string `min:"1" type:"string" required:"true"` - // The Amazon WorkMail organization under which the rule will be deleted. + // The Amazon WorkMail organization for which the access override will be deleted. // // OrganizationId is a required field OrganizationId *string `min:"34" type:"string" required:"true"` + + // The WorkMail user for which you want to delete the override. Accepts the + // following types of user identities: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -7446,7 +7893,7 @@ type DeleteMobileDeviceAccessRuleInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMobileDeviceAccessRuleInput) String() string { +func (s DeleteMobileDeviceAccessOverrideInput) String() string { return awsutil.Prettify(s) } @@ -7455,18 +7902,18 @@ func (s DeleteMobileDeviceAccessRuleInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMobileDeviceAccessRuleInput) GoString() string { +func (s DeleteMobileDeviceAccessOverrideInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteMobileDeviceAccessRuleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteMobileDeviceAccessRuleInput"} - if s.MobileDeviceAccessRuleId == nil { - invalidParams.Add(request.NewErrParamRequired("MobileDeviceAccessRuleId")) +func (s *DeleteMobileDeviceAccessOverrideInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMobileDeviceAccessOverrideInput"} + if s.DeviceId == nil { + invalidParams.Add(request.NewErrParamRequired("DeviceId")) } - if s.MobileDeviceAccessRuleId != nil && len(*s.MobileDeviceAccessRuleId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MobileDeviceAccessRuleId", 1)) + if s.DeviceId != nil && len(*s.DeviceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DeviceId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -7474,6 +7921,12 @@ func (s *DeleteMobileDeviceAccessRuleInput) Validate() error { if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -7481,19 +7934,25 @@ func (s *DeleteMobileDeviceAccessRuleInput) Validate() error { return nil } -// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value. -func (s *DeleteMobileDeviceAccessRuleInput) SetMobileDeviceAccessRuleId(v string) *DeleteMobileDeviceAccessRuleInput { - s.MobileDeviceAccessRuleId = &v +// SetDeviceId sets the DeviceId field's value. +func (s *DeleteMobileDeviceAccessOverrideInput) SetDeviceId(v string) *DeleteMobileDeviceAccessOverrideInput { + s.DeviceId = &v return s } // SetOrganizationId sets the OrganizationId field's value. -func (s *DeleteMobileDeviceAccessRuleInput) SetOrganizationId(v string) *DeleteMobileDeviceAccessRuleInput { +func (s *DeleteMobileDeviceAccessOverrideInput) SetOrganizationId(v string) *DeleteMobileDeviceAccessOverrideInput { s.OrganizationId = &v return s } -type DeleteMobileDeviceAccessRuleOutput struct { +// SetUserId sets the UserId field's value. +func (s *DeleteMobileDeviceAccessOverrideInput) SetUserId(v string) *DeleteMobileDeviceAccessOverrideInput { + s.UserId = &v + return s +} + +type DeleteMobileDeviceAccessOverrideOutput struct { _ struct{} `type:"structure"` } @@ -7502,7 +7961,7 @@ type DeleteMobileDeviceAccessRuleOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMobileDeviceAccessRuleOutput) String() string { +func (s DeleteMobileDeviceAccessOverrideOutput) String() string { return awsutil.Prettify(s) } @@ -7511,23 +7970,19 @@ func (s DeleteMobileDeviceAccessRuleOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMobileDeviceAccessRuleOutput) GoString() string { +func (s DeleteMobileDeviceAccessOverrideOutput) GoString() string { return s.String() } -type DeleteOrganizationInput struct { +type DeleteMobileDeviceAccessRuleInput struct { _ struct{} `type:"structure"` - // The idempotency token associated with the request. - ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // If true, deletes the AWS Directory Service directory associated with the - // organization. + // The identifier of the rule to be deleted. // - // DeleteDirectory is a required field - DeleteDirectory *bool `type:"boolean" required:"true"` + // MobileDeviceAccessRuleId is a required field + MobileDeviceAccessRuleId *string `min:"1" type:"string" required:"true"` - // The organization ID. + // The Amazon WorkMail organization under which the rule will be deleted. // // OrganizationId is a required field OrganizationId *string `min:"34" type:"string" required:"true"` @@ -7538,7 +7993,7 @@ type DeleteOrganizationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteOrganizationInput) String() string { +func (s DeleteMobileDeviceAccessRuleInput) String() string { return awsutil.Prettify(s) } @@ -7547,18 +8002,18 @@ func (s DeleteOrganizationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteOrganizationInput) GoString() string { +func (s DeleteMobileDeviceAccessRuleInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteOrganizationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteOrganizationInput"} - if s.ClientToken != nil && len(*s.ClientToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) +func (s *DeleteMobileDeviceAccessRuleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMobileDeviceAccessRuleInput"} + if s.MobileDeviceAccessRuleId == nil { + invalidParams.Add(request.NewErrParamRequired("MobileDeviceAccessRuleId")) } - if s.DeleteDirectory == nil { - invalidParams.Add(request.NewErrParamRequired("DeleteDirectory")) + if s.MobileDeviceAccessRuleId != nil && len(*s.MobileDeviceAccessRuleId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MobileDeviceAccessRuleId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -7573,25 +8028,117 @@ func (s *DeleteOrganizationInput) Validate() error { return nil } -// SetClientToken sets the ClientToken field's value. -func (s *DeleteOrganizationInput) SetClientToken(v string) *DeleteOrganizationInput { - s.ClientToken = &v - return s -} - -// SetDeleteDirectory sets the DeleteDirectory field's value. -func (s *DeleteOrganizationInput) SetDeleteDirectory(v bool) *DeleteOrganizationInput { - s.DeleteDirectory = &v +// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value. +func (s *DeleteMobileDeviceAccessRuleInput) SetMobileDeviceAccessRuleId(v string) *DeleteMobileDeviceAccessRuleInput { + s.MobileDeviceAccessRuleId = &v return s } // SetOrganizationId sets the OrganizationId field's value. -func (s *DeleteOrganizationInput) SetOrganizationId(v string) *DeleteOrganizationInput { +func (s *DeleteMobileDeviceAccessRuleInput) SetOrganizationId(v string) *DeleteMobileDeviceAccessRuleInput { s.OrganizationId = &v return s } -type DeleteOrganizationOutput struct { +type DeleteMobileDeviceAccessRuleOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteMobileDeviceAccessRuleOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteMobileDeviceAccessRuleOutput) GoString() string { + return s.String() +} + +type DeleteOrganizationInput struct { + _ struct{} `type:"structure"` + + // The idempotency token associated with the request. + ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // If true, deletes the AWS Directory Service directory associated with the + // organization. + // + // DeleteDirectory is a required field + DeleteDirectory *bool `type:"boolean" required:"true"` + + // The organization ID. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteOrganizationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteOrganizationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteOrganizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteOrganizationInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.DeleteDirectory == nil { + invalidParams.Add(request.NewErrParamRequired("DeleteDirectory")) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *DeleteOrganizationInput) SetClientToken(v string) *DeleteOrganizationInput { + s.ClientToken = &v + return s +} + +// SetDeleteDirectory sets the DeleteDirectory field's value. +func (s *DeleteOrganizationInput) SetDeleteDirectory(v bool) *DeleteOrganizationInput { + s.DeleteDirectory = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *DeleteOrganizationInput) SetOrganizationId(v string) *DeleteOrganizationInput { + s.OrganizationId = &v + return s +} + +type DeleteOrganizationOutput struct { _ struct{} `type:"structure"` // The organization ID. @@ -10110,6 +10657,172 @@ func (s *GetMobileDeviceAccessEffectOutput) SetMatchedRules(v []*MobileDeviceAcc return s } +type GetMobileDeviceAccessOverrideInput struct { + _ struct{} `type:"structure"` + + // The mobile device to which the override applies. DeviceId is case insensitive. + // + // DeviceId is a required field + DeviceId *string `min:"1" type:"string" required:"true"` + + // The Amazon WorkMail organization to which you want to apply the override. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` + + // Identifies the WorkMail user for the override. Accepts the following types + // of user identities: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMobileDeviceAccessOverrideInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMobileDeviceAccessOverrideInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetMobileDeviceAccessOverrideInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMobileDeviceAccessOverrideInput"} + if s.DeviceId == nil { + invalidParams.Add(request.NewErrParamRequired("DeviceId")) + } + if s.DeviceId != nil && len(*s.DeviceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DeviceId", 1)) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDeviceId sets the DeviceId field's value. +func (s *GetMobileDeviceAccessOverrideInput) SetDeviceId(v string) *GetMobileDeviceAccessOverrideInput { + s.DeviceId = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *GetMobileDeviceAccessOverrideInput) SetOrganizationId(v string) *GetMobileDeviceAccessOverrideInput { + s.OrganizationId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *GetMobileDeviceAccessOverrideInput) SetUserId(v string) *GetMobileDeviceAccessOverrideInput { + s.UserId = &v + return s +} + +type GetMobileDeviceAccessOverrideOutput struct { + _ struct{} `type:"structure"` + + // The date the override was first created. + DateCreated *time.Time `type:"timestamp"` + + // The date the description was last modified. + DateModified *time.Time `type:"timestamp"` + + // A description of the override. + Description *string `min:"1" type:"string"` + + // The device to which the access override applies. + DeviceId *string `min:"1" type:"string"` + + // The effect of the override, ALLOW or DENY. + Effect *string `type:"string" enum:"MobileDeviceAccessRuleEffect"` + + // The WorkMail user to which the access override applies. + UserId *string `min:"12" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMobileDeviceAccessOverrideOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMobileDeviceAccessOverrideOutput) GoString() string { + return s.String() +} + +// SetDateCreated sets the DateCreated field's value. +func (s *GetMobileDeviceAccessOverrideOutput) SetDateCreated(v time.Time) *GetMobileDeviceAccessOverrideOutput { + s.DateCreated = &v + return s +} + +// SetDateModified sets the DateModified field's value. +func (s *GetMobileDeviceAccessOverrideOutput) SetDateModified(v time.Time) *GetMobileDeviceAccessOverrideOutput { + s.DateModified = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *GetMobileDeviceAccessOverrideOutput) SetDescription(v string) *GetMobileDeviceAccessOverrideOutput { + s.Description = &v + return s +} + +// SetDeviceId sets the DeviceId field's value. +func (s *GetMobileDeviceAccessOverrideOutput) SetDeviceId(v string) *GetMobileDeviceAccessOverrideOutput { + s.DeviceId = &v + return s +} + +// SetEffect sets the Effect field's value. +func (s *GetMobileDeviceAccessOverrideOutput) SetEffect(v string) *GetMobileDeviceAccessOverrideOutput { + s.Effect = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *GetMobileDeviceAccessOverrideOutput) SetUserId(v string) *GetMobileDeviceAccessOverrideOutput { + s.UserId = &v + return s +} + // The representation of an Amazon WorkMail group. type Group struct { _ struct{} `type:"structure"` @@ -11152,6 +11865,154 @@ func (s *ListMailboxPermissionsOutput) SetPermissions(v []*Permission) *ListMail return s } +type ListMobileDeviceAccessOverridesInput struct { + _ struct{} `type:"structure"` + + // The mobile device to which the access override applies. + DeviceId *string `min:"1" type:"string"` + + // The maximum number of results to return in a single call. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to use to retrieve the next page of results. The first call does + // not require a token. + NextToken *string `min:"1" type:"string"` + + // The Amazon WorkMail organization under which to list mobile device access + // overrides. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` + + // The WorkMail user under which you list the mobile device access overrides. + // Accepts the following types of user identities: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + UserId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMobileDeviceAccessOverridesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMobileDeviceAccessOverridesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMobileDeviceAccessOverridesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListMobileDeviceAccessOverridesInput"} + if s.DeviceId != nil && len(*s.DeviceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DeviceId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDeviceId sets the DeviceId field's value. +func (s *ListMobileDeviceAccessOverridesInput) SetDeviceId(v string) *ListMobileDeviceAccessOverridesInput { + s.DeviceId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListMobileDeviceAccessOverridesInput) SetMaxResults(v int64) *ListMobileDeviceAccessOverridesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListMobileDeviceAccessOverridesInput) SetNextToken(v string) *ListMobileDeviceAccessOverridesInput { + s.NextToken = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *ListMobileDeviceAccessOverridesInput) SetOrganizationId(v string) *ListMobileDeviceAccessOverridesInput { + s.OrganizationId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *ListMobileDeviceAccessOverridesInput) SetUserId(v string) *ListMobileDeviceAccessOverridesInput { + s.UserId = &v + return s +} + +type ListMobileDeviceAccessOverridesOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. The value is “null” + // when there are no more results to return. + NextToken *string `min:"1" type:"string"` + + // The list of mobile device access overrides that exist for the specified Amazon + // WorkMail organization and user. + Overrides []*MobileDeviceAccessOverride `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMobileDeviceAccessOverridesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListMobileDeviceAccessOverridesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListMobileDeviceAccessOverridesOutput) SetNextToken(v string) *ListMobileDeviceAccessOverridesOutput { + s.NextToken = &v + return s +} + +// SetOverrides sets the Overrides field's value. +func (s *ListMobileDeviceAccessOverridesOutput) SetOverrides(v []*MobileDeviceAccessOverride) *ListMobileDeviceAccessOverridesOutput { + s.Overrides = v + return s +} + type ListMobileDeviceAccessRulesInput struct { _ struct{} `type:"structure"` @@ -12129,6 +12990,83 @@ func (s *MobileDeviceAccessMatchedRule) SetName(v string) *MobileDeviceAccessMat return s } +// The override object. +type MobileDeviceAccessOverride struct { + _ struct{} `type:"structure"` + + // The date the override was first created. + DateCreated *time.Time `type:"timestamp"` + + // The date the override was last modified. + DateModified *time.Time `type:"timestamp"` + + // A description of the override. + Description *string `min:"1" type:"string"` + + // The device to which the override applies. + DeviceId *string `min:"1" type:"string"` + + // The effect of the override, ALLOW or DENY. + Effect *string `type:"string" enum:"MobileDeviceAccessRuleEffect"` + + // The WorkMail user to which the access override applies. + UserId *string `min:"12" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MobileDeviceAccessOverride) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MobileDeviceAccessOverride) GoString() string { + return s.String() +} + +// SetDateCreated sets the DateCreated field's value. +func (s *MobileDeviceAccessOverride) SetDateCreated(v time.Time) *MobileDeviceAccessOverride { + s.DateCreated = &v + return s +} + +// SetDateModified sets the DateModified field's value. +func (s *MobileDeviceAccessOverride) SetDateModified(v time.Time) *MobileDeviceAccessOverride { + s.DateModified = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *MobileDeviceAccessOverride) SetDescription(v string) *MobileDeviceAccessOverride { + s.Description = &v + return s +} + +// SetDeviceId sets the DeviceId field's value. +func (s *MobileDeviceAccessOverride) SetDeviceId(v string) *MobileDeviceAccessOverride { + s.DeviceId = &v + return s +} + +// SetEffect sets the Effect field's value. +func (s *MobileDeviceAccessOverride) SetEffect(v string) *MobileDeviceAccessOverride { + s.Effect = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *MobileDeviceAccessOverride) SetUserId(v string) *MobileDeviceAccessOverride { + s.UserId = &v + return s +} + // A rule that controls access to mobile devices for an Amazon WorkMail group. type MobileDeviceAccessRule struct { _ struct{} `type:"structure"` @@ -12905,6 +13843,144 @@ func (s PutMailboxPermissionsOutput) GoString() string { return s.String() } +type PutMobileDeviceAccessOverrideInput struct { + _ struct{} `type:"structure"` + + // A description of the override. + Description *string `min:"1" type:"string"` + + // The mobile device for which you create the override. DeviceId is case insensitive. + // + // DeviceId is a required field + DeviceId *string `min:"1" type:"string" required:"true"` + + // The effect of the override, ALLOW or DENY. + // + // Effect is a required field + Effect *string `type:"string" required:"true" enum:"MobileDeviceAccessRuleEffect"` + + // Identifies the Amazon WorkMail organization for which you create the override. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` + + // The WorkMail user for which you create the override. Accepts the following + // types of user identities: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutMobileDeviceAccessOverrideInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutMobileDeviceAccessOverrideInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutMobileDeviceAccessOverrideInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutMobileDeviceAccessOverrideInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.DeviceId == nil { + invalidParams.Add(request.NewErrParamRequired("DeviceId")) + } + if s.DeviceId != nil && len(*s.DeviceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DeviceId", 1)) + } + if s.Effect == nil { + invalidParams.Add(request.NewErrParamRequired("Effect")) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *PutMobileDeviceAccessOverrideInput) SetDescription(v string) *PutMobileDeviceAccessOverrideInput { + s.Description = &v + return s +} + +// SetDeviceId sets the DeviceId field's value. +func (s *PutMobileDeviceAccessOverrideInput) SetDeviceId(v string) *PutMobileDeviceAccessOverrideInput { + s.DeviceId = &v + return s +} + +// SetEffect sets the Effect field's value. +func (s *PutMobileDeviceAccessOverrideInput) SetEffect(v string) *PutMobileDeviceAccessOverrideInput { + s.Effect = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *PutMobileDeviceAccessOverrideInput) SetOrganizationId(v string) *PutMobileDeviceAccessOverrideInput { + s.OrganizationId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *PutMobileDeviceAccessOverrideInput) SetUserId(v string) *PutMobileDeviceAccessOverrideInput { + s.UserId = &v + return s +} + +type PutMobileDeviceAccessOverrideOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutMobileDeviceAccessOverrideOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutMobileDeviceAccessOverrideOutput) GoString() string { + return s.String() +} + type PutRetentionPolicyInput struct { _ struct{} `type:"structure"` diff --git a/service/workmail/workmailiface/interface.go b/service/workmail/workmailiface/interface.go index f4c0100210..d3d5e9d16e 100644 --- a/service/workmail/workmailiface/interface.go +++ b/service/workmail/workmailiface/interface.go @@ -112,6 +112,10 @@ type WorkMailAPI interface { DeleteMailboxPermissionsWithContext(aws.Context, *workmail.DeleteMailboxPermissionsInput, ...request.Option) (*workmail.DeleteMailboxPermissionsOutput, error) DeleteMailboxPermissionsRequest(*workmail.DeleteMailboxPermissionsInput) (*request.Request, *workmail.DeleteMailboxPermissionsOutput) + DeleteMobileDeviceAccessOverride(*workmail.DeleteMobileDeviceAccessOverrideInput) (*workmail.DeleteMobileDeviceAccessOverrideOutput, error) + DeleteMobileDeviceAccessOverrideWithContext(aws.Context, *workmail.DeleteMobileDeviceAccessOverrideInput, ...request.Option) (*workmail.DeleteMobileDeviceAccessOverrideOutput, error) + DeleteMobileDeviceAccessOverrideRequest(*workmail.DeleteMobileDeviceAccessOverrideInput) (*request.Request, *workmail.DeleteMobileDeviceAccessOverrideOutput) + DeleteMobileDeviceAccessRule(*workmail.DeleteMobileDeviceAccessRuleInput) (*workmail.DeleteMobileDeviceAccessRuleOutput, error) DeleteMobileDeviceAccessRuleWithContext(aws.Context, *workmail.DeleteMobileDeviceAccessRuleInput, ...request.Option) (*workmail.DeleteMobileDeviceAccessRuleOutput, error) DeleteMobileDeviceAccessRuleRequest(*workmail.DeleteMobileDeviceAccessRuleInput) (*request.Request, *workmail.DeleteMobileDeviceAccessRuleOutput) @@ -180,6 +184,10 @@ type WorkMailAPI interface { GetMobileDeviceAccessEffectWithContext(aws.Context, *workmail.GetMobileDeviceAccessEffectInput, ...request.Option) (*workmail.GetMobileDeviceAccessEffectOutput, error) GetMobileDeviceAccessEffectRequest(*workmail.GetMobileDeviceAccessEffectInput) (*request.Request, *workmail.GetMobileDeviceAccessEffectOutput) + GetMobileDeviceAccessOverride(*workmail.GetMobileDeviceAccessOverrideInput) (*workmail.GetMobileDeviceAccessOverrideOutput, error) + GetMobileDeviceAccessOverrideWithContext(aws.Context, *workmail.GetMobileDeviceAccessOverrideInput, ...request.Option) (*workmail.GetMobileDeviceAccessOverrideOutput, error) + GetMobileDeviceAccessOverrideRequest(*workmail.GetMobileDeviceAccessOverrideInput) (*request.Request, *workmail.GetMobileDeviceAccessOverrideOutput) + ListAccessControlRules(*workmail.ListAccessControlRulesInput) (*workmail.ListAccessControlRulesOutput, error) ListAccessControlRulesWithContext(aws.Context, *workmail.ListAccessControlRulesInput, ...request.Option) (*workmail.ListAccessControlRulesOutput, error) ListAccessControlRulesRequest(*workmail.ListAccessControlRulesInput) (*request.Request, *workmail.ListAccessControlRulesOutput) @@ -219,6 +227,13 @@ type WorkMailAPI interface { ListMailboxPermissionsPages(*workmail.ListMailboxPermissionsInput, func(*workmail.ListMailboxPermissionsOutput, bool) bool) error ListMailboxPermissionsPagesWithContext(aws.Context, *workmail.ListMailboxPermissionsInput, func(*workmail.ListMailboxPermissionsOutput, bool) bool, ...request.Option) error + ListMobileDeviceAccessOverrides(*workmail.ListMobileDeviceAccessOverridesInput) (*workmail.ListMobileDeviceAccessOverridesOutput, error) + ListMobileDeviceAccessOverridesWithContext(aws.Context, *workmail.ListMobileDeviceAccessOverridesInput, ...request.Option) (*workmail.ListMobileDeviceAccessOverridesOutput, error) + ListMobileDeviceAccessOverridesRequest(*workmail.ListMobileDeviceAccessOverridesInput) (*request.Request, *workmail.ListMobileDeviceAccessOverridesOutput) + + ListMobileDeviceAccessOverridesPages(*workmail.ListMobileDeviceAccessOverridesInput, func(*workmail.ListMobileDeviceAccessOverridesOutput, bool) bool) error + ListMobileDeviceAccessOverridesPagesWithContext(aws.Context, *workmail.ListMobileDeviceAccessOverridesInput, func(*workmail.ListMobileDeviceAccessOverridesOutput, bool) bool, ...request.Option) error + ListMobileDeviceAccessRules(*workmail.ListMobileDeviceAccessRulesInput) (*workmail.ListMobileDeviceAccessRulesOutput, error) ListMobileDeviceAccessRulesWithContext(aws.Context, *workmail.ListMobileDeviceAccessRulesInput, ...request.Option) (*workmail.ListMobileDeviceAccessRulesOutput, error) ListMobileDeviceAccessRulesRequest(*workmail.ListMobileDeviceAccessRulesInput) (*request.Request, *workmail.ListMobileDeviceAccessRulesOutput) @@ -263,6 +278,10 @@ type WorkMailAPI interface { PutMailboxPermissionsWithContext(aws.Context, *workmail.PutMailboxPermissionsInput, ...request.Option) (*workmail.PutMailboxPermissionsOutput, error) PutMailboxPermissionsRequest(*workmail.PutMailboxPermissionsInput) (*request.Request, *workmail.PutMailboxPermissionsOutput) + PutMobileDeviceAccessOverride(*workmail.PutMobileDeviceAccessOverrideInput) (*workmail.PutMobileDeviceAccessOverrideOutput, error) + PutMobileDeviceAccessOverrideWithContext(aws.Context, *workmail.PutMobileDeviceAccessOverrideInput, ...request.Option) (*workmail.PutMobileDeviceAccessOverrideOutput, error) + PutMobileDeviceAccessOverrideRequest(*workmail.PutMobileDeviceAccessOverrideInput) (*request.Request, *workmail.PutMobileDeviceAccessOverrideOutput) + PutRetentionPolicy(*workmail.PutRetentionPolicyInput) (*workmail.PutRetentionPolicyOutput, error) PutRetentionPolicyWithContext(aws.Context, *workmail.PutRetentionPolicyInput, ...request.Option) (*workmail.PutRetentionPolicyOutput, error) PutRetentionPolicyRequest(*workmail.PutRetentionPolicyInput) (*request.Request, *workmail.PutRetentionPolicyOutput) diff --git a/service/workspaces/api.go b/service/workspaces/api.go index b5926486ea..c0731a7de3 100644 --- a/service/workspaces/api.go +++ b/service/workspaces/api.go @@ -352,13 +352,13 @@ func (c *WorkSpaces) CopyWorkspaceImageRequest(input *CopyWorkspaceImageInput) ( // // In the China (Ningxia) Region, you can copy images only within the same Region. // -// In the AWS GovCloud (US-West) Region, to copy images to and from other AWS -// Regions, contact AWS Support. +// In Amazon Web Services GovCloud (US), to copy images to and from other Regions, +// contact Amazon Web Services Support. // // Before copying a shared image, be sure to verify that it has been shared -// from the correct AWS account. To determine if an image has been shared and -// to see the AWS account ID that owns an image, use the DescribeWorkSpaceImages -// (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImages.html) +// from the correct Amazon Web Services account. To determine if an image has +// been shared and to see the ID of the Amazon Web Services account that owns +// an image, use the DescribeWorkSpaceImages (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImages.html) // and DescribeWorkspaceImagePermissions (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImagePermissions.html) // API operations. // @@ -698,6 +698,117 @@ func (c *WorkSpaces) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInp return out, req.Send() } +const opCreateUpdatedWorkspaceImage = "CreateUpdatedWorkspaceImage" + +// CreateUpdatedWorkspaceImageRequest generates a "aws/request.Request" representing the +// client's request for the CreateUpdatedWorkspaceImage 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 CreateUpdatedWorkspaceImage for more information on using the CreateUpdatedWorkspaceImage +// 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 CreateUpdatedWorkspaceImageRequest method. +// req, resp := client.CreateUpdatedWorkspaceImageRequest(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/CreateUpdatedWorkspaceImage +func (c *WorkSpaces) CreateUpdatedWorkspaceImageRequest(input *CreateUpdatedWorkspaceImageInput) (req *request.Request, output *CreateUpdatedWorkspaceImageOutput) { + op := &request.Operation{ + Name: opCreateUpdatedWorkspaceImage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateUpdatedWorkspaceImageInput{} + } + + output = &CreateUpdatedWorkspaceImageOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateUpdatedWorkspaceImage API operation for Amazon WorkSpaces. +// +// Creates a new updated WorkSpace image based on the specified source image. +// The new updated WorkSpace image has the latest drivers and other updates +// required by the Amazon WorkSpaces components. +// +// To determine which WorkSpace images need to be updated with the latest Amazon +// WorkSpaces requirements, use DescribeWorkspaceImages (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImages.html). +// +// * Only Windows 10 WorkSpace images can be programmatically updated at +// this time. +// +// * Microsoft Windows updates and other application updates are not included +// in the update process. +// +// * The source WorkSpace image is not deleted. You can delete the source +// image after you've verified your new updated image and created a new bundle. +// +// 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 CreateUpdatedWorkspaceImage for usage and error information. +// +// Returned Error Types: +// * ResourceLimitExceededException +// Your resource limits have been exceeded. +// +// * ResourceAlreadyExistsException +// The specified resource already exists. +// +// * ResourceNotFoundException +// The resource could not be found. +// +// * OperationNotSupportedException +// This operation is not supported. +// +// * InvalidResourceStateException +// The state of the resource is not valid for this operation. +// +// * AccessDeniedException +// The user is not authorized to access a resource. +// +// * InvalidParameterValuesException +// One or more parameter values are not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateUpdatedWorkspaceImage +func (c *WorkSpaces) CreateUpdatedWorkspaceImage(input *CreateUpdatedWorkspaceImageInput) (*CreateUpdatedWorkspaceImageOutput, error) { + req, out := c.CreateUpdatedWorkspaceImageRequest(input) + return out, req.Send() +} + +// CreateUpdatedWorkspaceImageWithContext is the same as CreateUpdatedWorkspaceImage with the addition of +// the ability to pass a context and additional request options. +// +// See CreateUpdatedWorkspaceImage 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) CreateUpdatedWorkspaceImageWithContext(ctx aws.Context, input *CreateUpdatedWorkspaceImageInput, opts ...request.Option) (*CreateUpdatedWorkspaceImageOutput, error) { + req, out := c.CreateUpdatedWorkspaceImageRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateWorkspaceBundle = "CreateWorkspaceBundle" // CreateWorkspaceBundleRequest generates a "aws/request.Request" representing the @@ -1389,8 +1500,7 @@ func (c *WorkSpaces) DeregisterWorkspaceDirectoryRequest(input *DeregisterWorksp // with WorkSpaces. If there are no WorkSpaces being used with your Simple AD // or AD Connector directory for 30 consecutive days, this directory will be // automatically deregistered for use with Amazon WorkSpaces, and you will be -// charged for this directory as per the AWS Directory Services pricing terms -// (http://aws.amazon.com/directoryservice/pricing/). +// charged for this directory as per the Directory Service pricing terms (http://aws.amazon.com/directoryservice/pricing/). // // To delete empty directories, see Delete the Directory for Your WorkSpaces // (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html). @@ -1732,8 +1842,9 @@ func (c *WorkSpaces) DescribeConnectionAliasPermissionsRequest(input *DescribeCo // DescribeConnectionAliasPermissions API operation for Amazon WorkSpaces. // // Describes the permissions that the owner of a connection alias has granted -// to another AWS account for the specified connection alias. For more information, -// see Cross-Region Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html). +// to another Amazon Web Services account for the specified connection alias. +// For more information, see Cross-Region Redirection for Amazon WorkSpaces +// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.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 @@ -2346,7 +2457,7 @@ func (c *WorkSpaces) DescribeWorkspaceImagePermissionsRequest(input *DescribeWor // DescribeWorkspaceImagePermissions API operation for Amazon WorkSpaces. // // Describes the permissions that the owner of an image has granted to other -// AWS accounts for an image. +// Amazon Web Services accounts for an image. // // 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 @@ -2821,8 +2932,8 @@ func (c *WorkSpaces) DisassociateConnectionAliasRequest(input *DisassociateConne // // Disassociates a connection alias from a directory. Disassociating a connection // alias disables cross-Region redirection between two directories in different -// AWS Regions. For more information, see Cross-Region Redirection for Amazon -// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html). +// Regions. For more information, see Cross-Region Redirection for Amazon WorkSpaces +// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html). // // Before performing this operation, call DescribeConnectionAliases (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html) // to make sure that the current state of the connection alias is CREATED. @@ -3007,8 +3118,9 @@ func (c *WorkSpaces) ImportWorkspaceImageRequest(input *ImportWorkspaceImageInpu // // Imports the specified Windows 10 Bring Your Own License (BYOL) image into // Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image -// that is in your AWS account, and you must own the image. For more information -// about creating BYOL images, see Bring Your Own Windows Desktop Licenses (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html). +// that is in your Amazon Web Services account, and you must own the image. +// For more information about creating BYOL images, see Bring Your Own Windows +// Desktop Licenses (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.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 @@ -3106,8 +3218,8 @@ func (c *WorkSpaces) ListAvailableManagementCidrRangesRequest(input *ListAvailab // you can use for the network management interface when you enable Bring Your // Own License (BYOL). // -// This operation can be run only by AWS accounts that are enabled for BYOL. -// If your account isn't enabled for BYOL, you'll receive an AccessDeniedException +// This operation can be run only by Amazon Web Services accounts that are enabled +// for BYOL. If your account isn't enabled for BYOL, you'll receive an AccessDeniedException // error. // // The management network interface is connected to a secure Amazon WorkSpaces @@ -4549,8 +4661,8 @@ func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) // Terminates the specified WorkSpaces. // // Terminating a WorkSpace is a permanent action and cannot be undone. The user's -// data is destroyed. If you need to archive any user data, contact AWS Support -// before terminating the WorkSpace. +// data is destroyed. If you need to archive any user data, contact Amazon Web +// Services Support before terminating the WorkSpace. // // You can terminate a WorkSpace that is in any state except SUSPENDED. // @@ -4566,8 +4678,7 @@ func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) // with WorkSpaces. If there are no WorkSpaces being used with your Simple AD // or AD Connector directory for 30 consecutive days, this directory will be // automatically deregistered for use with Amazon WorkSpaces, and you will be -// charged for this directory as per the AWS Directory Services pricing terms -// (http://aws.amazon.com/directoryservice/pricing/). +// charged for this directory as per the Directory Service pricing terms (http://aws.amazon.com/directoryservice/pricing/). // // To delete empty directories, see Delete the Directory for Your WorkSpaces // (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html). @@ -4948,18 +5059,18 @@ func (c *WorkSpaces) UpdateWorkspaceImagePermissionRequest(input *UpdateWorkspac // UpdateWorkspaceImagePermission API operation for Amazon WorkSpaces. // -// Shares or unshares an image with one account in the same AWS Region by specifying -// whether that account has permission to copy the image. If the copy image -// permission is granted, the image is shared with that account. If the copy -// image permission is revoked, the image is unshared with the account. +// Shares or unshares an image with one account in the same Amazon Web Services +// Region by specifying whether that account has permission to copy the image. +// If the copy image permission is granted, the image is shared with that account. +// If the copy image permission is revoked, the image is unshared with the account. // // After an image has been shared, the recipient account can copy the image -// to other AWS Regions as needed. +// to other Regions as needed. // // In the China (Ningxia) Region, you can copy images only within the same Region. // -// In the AWS GovCloud (US-West) Region, to copy images to and from other AWS -// Regions, contact AWS Support. +// In Amazon Web Services GovCloud (US), to copy images to and from other Regions, +// contact Amazon Web Services Support. // // For more information about sharing images, see Share or Unshare a Custom // WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html). @@ -4967,10 +5078,10 @@ func (c *WorkSpaces) UpdateWorkspaceImagePermissionRequest(input *UpdateWorkspac // * To delete an image that has been shared, you must unshare the image // before you delete it. // -// * Sharing Bring Your Own License (BYOL) images across AWS accounts isn't -// supported at this time in the AWS GovCloud (US-West) Region. To share -// BYOL images across accounts in the AWS GovCloud (US-West) Region, contact -// AWS Support. +// * Sharing Bring Your Own License (BYOL) images across Amazon Web Services +// accounts isn't supported at this time in Amazon Web Services GovCloud +// (US). To share BYOL images across accounts in Amazon Web Services GovCloud +// (US), contact Amazon Web Services Support. // // 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 @@ -5551,7 +5662,8 @@ type ConnectionAlias struct { // as www.example.com. ConnectionString *string `min:"1" type:"string"` - // The identifier of the AWS account that owns the connection alias. + // The identifier of the Amazon Web Services account that owns the connection + // alias. OwnerAccountId *string `type:"string"` // The current state of the connection alias. @@ -5612,8 +5724,8 @@ func (s *ConnectionAlias) SetState(v string) *ConnectionAlias { type ConnectionAliasAssociation struct { _ struct{} `type:"structure"` - // The identifier of the AWS account that associated the connection alias with - // a directory. + // The identifier of the Amazon Web Services account that associated the connection + // alias with a directory. AssociatedAccountId *string `type:"string"` // The association status of the connection alias. @@ -5676,13 +5788,14 @@ func (s *ConnectionAliasAssociation) SetResourceId(v string) *ConnectionAliasAss type ConnectionAliasPermission struct { _ struct{} `type:"structure"` - // Indicates whether the specified AWS account is allowed to associate the connection - // alias with a directory. + // Indicates whether the specified Amazon Web Services account is allowed to + // associate the connection alias with a directory. // // AllowAssociation is a required field AllowAssociation *bool `type:"boolean" required:"true"` - // The identifier of the AWS account that the connection alias is shared with. + // The identifier of the Amazon Web Services account that the connection alias + // is shared with. // // SharedAccountId is a required field SharedAccountId *string `type:"string" required:"true"` @@ -5882,10 +5995,10 @@ type CreateConnectionAliasInput struct { // A connection string in the form of a fully qualified domain name (FQDN), // such as www.example.com. // - // After you create a connection string, it is always associated to your AWS - // account. You cannot recreate the same connection string with a different - // account, even if you delete all instances of it from the original account. - // The connection string is globally reserved for your account. + // After you create a connection string, it is always associated to your Amazon + // Web Services account. You cannot recreate the same connection string with + // a different account, even if you delete all instances of it from the original + // account. The connection string is globally reserved for your account. // // ConnectionString is a required field ConnectionString *string `min:"1" type:"string" required:"true"` @@ -6192,6 +6305,139 @@ func (s CreateTagsOutput) GoString() string { return s.String() } +type CreateUpdatedWorkspaceImageInput struct { + _ struct{} `type:"structure"` + + // A description of whether updates for the WorkSpace image are available. + // + // Description is a required field + Description *string `min:"1" type:"string" required:"true"` + + // The name of the new updated WorkSpace image. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The identifier of the source WorkSpace image. + // + // SourceImageId is a required field + SourceImageId *string `type:"string" required:"true"` + + // The tags that you want to add to the new updated WorkSpace image. + // + // To add tags at the same time when you're creating the updated image, you + // must create an IAM policy that grants your IAM user permissions to use workspaces:CreateTags. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateUpdatedWorkspaceImageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateUpdatedWorkspaceImageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateUpdatedWorkspaceImageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateUpdatedWorkspaceImageInput"} + if s.Description == nil { + invalidParams.Add(request.NewErrParamRequired("Description")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.SourceImageId == nil { + invalidParams.Add(request.NewErrParamRequired("SourceImageId")) + } + 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 +} + +// SetDescription sets the Description field's value. +func (s *CreateUpdatedWorkspaceImageInput) SetDescription(v string) *CreateUpdatedWorkspaceImageInput { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateUpdatedWorkspaceImageInput) SetName(v string) *CreateUpdatedWorkspaceImageInput { + s.Name = &v + return s +} + +// SetSourceImageId sets the SourceImageId field's value. +func (s *CreateUpdatedWorkspaceImageInput) SetSourceImageId(v string) *CreateUpdatedWorkspaceImageInput { + s.SourceImageId = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateUpdatedWorkspaceImageInput) SetTags(v []*Tag) *CreateUpdatedWorkspaceImageInput { + s.Tags = v + return s +} + +type CreateUpdatedWorkspaceImageOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the new updated WorkSpace image. + ImageId *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateUpdatedWorkspaceImageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateUpdatedWorkspaceImageOutput) GoString() string { + return s.String() +} + +// SetImageId sets the ImageId field's value. +func (s *CreateUpdatedWorkspaceImageOutput) SetImageId(v string) *CreateUpdatedWorkspaceImageOutput { + s.ImageId = &v + return s +} + type CreateWorkspaceBundleInput struct { _ struct{} `type:"structure"` @@ -7668,8 +7914,8 @@ type DescribeWorkspaceBundlesInput struct { // The owner of the bundles. You cannot combine this parameter with any other // filter. // - // To describe the bundles provided by AWS, specify AMAZON. To describe the - // bundles that belong to your account, don't specify a value. + // To describe the bundles provided by Amazon Web Services, specify AMAZON. + // To describe the bundles that belong to your account, don't specify a value. Owner *string `type:"string"` } @@ -7955,7 +8201,8 @@ type DescribeWorkspaceImagePermissionsOutput struct { // The identifier of the image. ImageId *string `type:"string"` - // The identifiers of the AWS accounts that the image has been shared with. + // The identifiers of the Amazon Web Services accounts that the image has been + // shared with. ImagePermissions []*ImagePermission `type:"list"` // The token to use to retrieve the next page of results. This value is null @@ -8718,13 +8965,14 @@ func (s *FailedWorkspaceChangeRequest) SetWorkspaceId(v string) *FailedWorkspace return s } -// Describes the AWS accounts that have been granted permission to use a shared -// image. For more information about sharing images, see Share or Unshare a -// Custom WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html). +// Describes the Amazon Web Services accounts that have been granted permission +// to use a shared image. For more information about sharing images, see Share +// or Unshare a Custom WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html). type ImagePermission struct { _ struct{} `type:"structure"` - // The identifier of the AWS account that an image has been shared with. + // The identifier of the Amazon Web Services account that an image has been + // shared with. SharedAccountId *string `type:"string"` } @@ -10450,10 +10698,10 @@ type RegisterWorkspaceDirectoryInput struct { // 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). + // and your Amazon Web Services 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"` } @@ -11817,7 +12065,7 @@ type UpdateConnectionAliasPermissionInput struct { AliasId *string `min:"13" type:"string" required:"true"` // Indicates whether to share or unshare the connection alias with the specified - // AWS account. + // Amazon Web Services account. // // ConnectionAliasPermission is a required field ConnectionAliasPermission *ConnectionAliasPermission `type:"structure" required:"true"` @@ -11899,6 +12147,52 @@ func (s UpdateConnectionAliasPermissionOutput) GoString() string { return s.String() } +// Describes whether a WorkSpace image needs to be updated with the latest drivers +// and other components required by Amazon WorkSpaces. +// +// Only Windows 10 WorkSpace images can be programmatically updated at this +// time. +type UpdateResult struct { + _ struct{} `type:"structure"` + + // A description of whether updates for the WorkSpace image are pending or available. + Description *string `min:"1" type:"string"` + + // Indicates whether updated drivers or other components are available for the + // specified WorkSpace image. + UpdateAvailable *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateResult) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateResult) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *UpdateResult) SetDescription(v string) *UpdateResult { + s.Description = &v + return s +} + +// SetUpdateAvailable sets the UpdateAvailable field's value. +func (s *UpdateResult) SetUpdateAvailable(v bool) *UpdateResult { + s.UpdateAvailable = &v + return s +} + type UpdateRulesOfIpGroupInput struct { _ struct{} `type:"structure"` @@ -12057,10 +12351,11 @@ type UpdateWorkspaceImagePermissionInput struct { // ImageId is a required field ImageId *string `type:"string" required:"true"` - // The identifier of the AWS account to share or unshare the image with. + // The identifier of the Amazon Web Services account to share or unshare the + // image with. // - // Before sharing the image, confirm that you are sharing to the correct AWS - // account ID. + // Before sharing the image, confirm that you are sharing to the correct Amazon + // Web Services account ID. // // SharedAccountId is a required field SharedAccountId *string `type:"string" required:"true"` @@ -12199,7 +12494,7 @@ type Workspace struct { // this name varies. For more information, see Launch a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/launch-workspaces-tutorials.html). ComputerName *string `type:"string"` - // The identifier of the AWS Directory Service directory for the WorkSpace. + // The identifier of the Directory Service directory for the WorkSpace. DirectoryId *string `min:"10" type:"string"` // The error code that is returned if the WorkSpace cannot be created. @@ -12237,8 +12532,8 @@ type Workspace struct { // Indicates whether the data stored on the user volume is encrypted. UserVolumeEncryptionEnabled *bool `type:"boolean"` - // The symmetric AWS KMS customer master key (CMK) used to encrypt data stored - // on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs. + // The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon + // WorkSpaces does not support asymmetric KMS keys. VolumeEncryptionKey *string `type:"string"` // The identifier of the WorkSpace. @@ -12361,7 +12656,8 @@ func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace { type WorkspaceAccessProperties struct { _ struct{} `type:"structure"` - // Indicates whether users can use Android devices to access their WorkSpaces. + // Indicates whether users can use Android and Android-compatible Chrome OS + // devices to access their WorkSpaces. DeviceTypeAndroid *string `type:"string" enum:"AccessPropertyValue"` // Indicates whether users can use Chromebooks to access their WorkSpaces. @@ -12374,18 +12670,12 @@ type WorkspaceAccessProperties struct { DeviceTypeLinux *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. @@ -12485,7 +12775,7 @@ type WorkspaceBundle struct { Name *string `min:"1" type:"string"` // The owner of the bundle. This is the account identifier of the owner, or - // AMAZON if the bundle is provided by AWS. + // AMAZON if the bundle is provided by Amazon Web Services. Owner *string `type:"string"` // The size of the root volume. @@ -12929,9 +13219,9 @@ func (s *WorkspaceDirectory) SetWorkspaceSecurityGroupId(v string) *WorkspaceDir type WorkspaceImage struct { _ struct{} `type:"structure"` - // The date when the image was created. If the image has been shared, the AWS - // account that the image has been shared with sees the original creation date - // of the image. + // The date when the image was created. If the image has been shared, the Amazon + // Web Services account that the image has been shared with sees the original + // creation date of the image. Created *time.Time `type:"timestamp"` // The description of the image. @@ -12952,7 +13242,7 @@ type WorkspaceImage struct { // The operating system that the image is running. OperatingSystem *OperatingSystem `type:"structure"` - // The identifier of the AWS account that owns the image. + // The identifier of the Amazon Web Services account that owns the image. OwnerAccountId *string `type:"string"` // Specifies whether the image is running on dedicated hardware. When Bring @@ -12962,6 +13252,9 @@ type WorkspaceImage struct { // The status of the image. State *string `type:"string" enum:"WorkspaceImageState"` + + // The updates (if any) that are available for the specified image. + Updates *UpdateResult `type:"structure"` } // String returns the string representation. @@ -13042,6 +13335,12 @@ func (s *WorkspaceImage) SetState(v string) *WorkspaceImage { return s } +// SetUpdates sets the Updates field's value. +func (s *WorkspaceImage) SetUpdates(v *UpdateResult) *WorkspaceImage { + s.Updates = v + return s +} + // Describes a WorkSpace. type WorkspaceProperties struct { _ struct{} `type:"structure"` @@ -13124,8 +13423,8 @@ type WorkspaceRequest struct { // BundleId is a required field BundleId *string `type:"string" required:"true"` - // The identifier of the AWS Directory Service directory for the WorkSpace. - // You can use DescribeWorkspaceDirectories to list the available directories. + // The identifier of the Directory Service directory for the WorkSpace. You + // can use DescribeWorkspaceDirectories to list the available directories. // // DirectoryId is a required field DirectoryId *string `min:"10" type:"string" required:"true"` @@ -13137,7 +13436,7 @@ type WorkspaceRequest struct { Tags []*Tag `type:"list"` // The user name of the user for the WorkSpace. This user name must exist in - // the AWS Directory Service directory for the WorkSpace. + // the Directory Service directory for the WorkSpace. // // UserName is a required field UserName *string `min:"1" type:"string" required:"true"` @@ -13145,8 +13444,8 @@ type WorkspaceRequest struct { // Indicates whether the data stored on the user volume is encrypted. UserVolumeEncryptionEnabled *bool `type:"boolean"` - // The symmetric AWS KMS customer master key (CMK) used to encrypt data stored - // on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs. + // The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon + // WorkSpaces does not support asymmetric KMS keys. VolumeEncryptionKey *string `type:"string"` // The WorkSpace properties. diff --git a/service/workspaces/workspacesiface/interface.go b/service/workspaces/workspacesiface/interface.go index 5292f3dc64..1ed1c56e34 100644 --- a/service/workspaces/workspacesiface/interface.go +++ b/service/workspaces/workspacesiface/interface.go @@ -88,6 +88,10 @@ type WorkSpacesAPI interface { CreateTagsWithContext(aws.Context, *workspaces.CreateTagsInput, ...request.Option) (*workspaces.CreateTagsOutput, error) CreateTagsRequest(*workspaces.CreateTagsInput) (*request.Request, *workspaces.CreateTagsOutput) + CreateUpdatedWorkspaceImage(*workspaces.CreateUpdatedWorkspaceImageInput) (*workspaces.CreateUpdatedWorkspaceImageOutput, error) + CreateUpdatedWorkspaceImageWithContext(aws.Context, *workspaces.CreateUpdatedWorkspaceImageInput, ...request.Option) (*workspaces.CreateUpdatedWorkspaceImageOutput, error) + CreateUpdatedWorkspaceImageRequest(*workspaces.CreateUpdatedWorkspaceImageInput) (*request.Request, *workspaces.CreateUpdatedWorkspaceImageOutput) + CreateWorkspaceBundle(*workspaces.CreateWorkspaceBundleInput) (*workspaces.CreateWorkspaceBundleOutput, error) CreateWorkspaceBundleWithContext(aws.Context, *workspaces.CreateWorkspaceBundleInput, ...request.Option) (*workspaces.CreateWorkspaceBundleOutput, error) CreateWorkspaceBundleRequest(*workspaces.CreateWorkspaceBundleInput) (*request.Request, *workspaces.CreateWorkspaceBundleOutput)