diff --git a/CHANGELOG.md b/CHANGELOG.md index b8ec9dede67..c31b599c028 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +Release v1.31.7 (2020-05-28) +=== + +### Service Client Updates +* `service/kafka`: Updates service API and documentation +* `service/marketplace-catalog`: Updates service API and documentation +* `service/qldb-session`: Updates service documentation +* `service/workmail`: Updates service API and documentation + * This release adds support for Amazon WorkMail organization-level retention policies. + Release v1.31.6 (2020-05-27) === diff --git a/aws/version.go b/aws/version.go index 55a35a03eae..b4fcc3e1df8 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.31.6" +const SDKVersion = "1.31.7" diff --git a/models/apis/kafka/2018-11-14/api-2.json b/models/apis/kafka/2018-11-14/api-2.json index 876a4b7a911..73d496949f8 100644 --- a/models/apis/kafka/2018-11-14/api-2.json +++ b/models/apis/kafka/2018-11-14/api-2.json @@ -275,6 +275,43 @@ } ] }, + "GetCompatibleKafkaVersions" : { + "name" : "GetCompatibleKafkaVersions", + "http" : { + "method" : "GET", + "requestUri" : "/v1/compatible-kafka-versions", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetCompatibleKafkaVersionsRequest" + }, + "output" : { + "shape" : "GetCompatibleKafkaVersionsResponse" + }, + "errors" : [ + { + "shape" : "BadRequestException" + }, + { + "shape" : "UnauthorizedException" + }, + { + "shape" : "InternalServerErrorException" + }, + { + "shape" : "ForbiddenException" + }, + { + "shape" : "NotFoundException" + }, + { + "shape" : "ServiceUnavailableException" + }, + { + "shape" : "TooManyRequestsException" + } + ] + }, "ListClusterOperations": { "name": "ListClusterOperations", "http": { @@ -617,6 +654,43 @@ } ] }, + "UpdateClusterKafkaVersion" : { + "name" : "UpdateClusterKafkaVersion", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/clusters/{clusterArn}/version", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateClusterKafkaVersionRequest" + }, + "output" : { + "shape" : "UpdateClusterKafkaVersionResponse" + }, + "errors" : [ + { + "shape" : "BadRequestException" + }, + { + "shape" : "UnauthorizedException" + }, + { + "shape" : "InternalServerErrorException" + }, + { + "shape" : "ForbiddenException" + }, + { + "shape" : "NotFoundException" + }, + { + "shape" : "ServiceUnavailableException" + }, + { + "shape" : "TooManyRequestsException" + } + ] + }, "UpdateMonitoring" : { "name" : "UpdateMonitoring", "http" : { @@ -899,6 +973,10 @@ "shape": "ErrorInfo", "locationName": "errorInfo" }, + "OperationSteps": { + "shape": "__listOfClusterOperationStep", + "locationName": "operationSteps" + }, "OperationArn": { "shape": "__string", "locationName": "operationArn" @@ -921,6 +999,28 @@ } } }, + "ClusterOperationStep" : { + "type" : "structure", + "members" : { + "StepInfo" : { + "shape" : "ClusterOperationStepInfo", + "locationName" : "stepInfo" + }, + "StepName" : { + "shape" : "__string", + "locationName" : "stepName" + } + } + }, + "ClusterOperationStepInfo" : { + "type" : "structure", + "members" : { + "StepStatus" : { + "shape" : "__string", + "locationName" : "stepStatus" + } + } + }, "ClusterState": { "type": "string", "enum": [ @@ -931,6 +1031,19 @@ "FAILED" ] }, + "CompatibleKafkaVersion" : { + "type" : "structure", + "members" : { + "SourceVersion" : { + "shape" : "__string", + "locationName" : "sourceVersion" + }, + "TargetVersions" : { + "shape" : "__listOf__string", + "locationName" : "targetVersions" + } + } + }, "Configuration": { "type": "structure", "members": { @@ -1117,7 +1230,6 @@ }, "required": [ "ServerProperties", - "KafkaVersions", "Name" ] }, @@ -1441,6 +1553,25 @@ } } }, + "GetCompatibleKafkaVersionsRequest" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "clusterArn" + } + } + }, + "GetCompatibleKafkaVersionsResponse" : { + "type" : "structure", + "members" : { + "CompatibleKafkaVersions" : { + "shape" : "__listOfCompatibleKafkaVersion", + "locationName" : "compatibleKafkaVersions" + } + } + }, "InternalServerErrorException": { "type": "structure", "members": { @@ -1735,6 +1866,10 @@ "shape" : "EnhancedMonitoring", "locationName" : "enhancedMonitoring" }, + "KafkaVersion" : { + "shape" : "__string", + "locationName" : "kafkaVersion" + }, "LoggingInfo": { "shape": "LoggingInfo", "locationName": "loggingInfo" @@ -2020,6 +2155,42 @@ } } }, + "UpdateClusterKafkaVersionRequest" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "clusterArn" + }, + "ConfigurationInfo" : { + "shape" : "ConfigurationInfo", + "locationName" : "configurationInfo" + }, + "CurrentVersion" : { + "shape" : "__string", + "locationName" : "currentVersion" + }, + "TargetKafkaVersion" : { + "shape" : "__string", + "locationName" : "targetKafkaVersion" + } + }, + "required" : [ "ClusterArn", "TargetKafkaVersion", "CurrentVersion" ] + }, + "UpdateClusterKafkaVersionResponse" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "locationName" : "clusterArn" + }, + "ClusterOperationArn" : { + "shape" : "__string", + "locationName" : "clusterOperationArn" + } + } + }, "UpdateMonitoringRequest" : { "type" : "structure", "members" : { @@ -2229,6 +2400,18 @@ "shape": "ClusterOperationInfo" } }, + "__listOfClusterOperationStep" : { + "type" : "list", + "member" : { + "shape" : "ClusterOperationStep" + } + }, + "__listOfCompatibleKafkaVersion" : { + "type" : "list", + "member" : { + "shape" : "CompatibleKafkaVersion" + } + }, "__listOfConfiguration": { "type": "list", "member": { diff --git a/models/apis/kafka/2018-11-14/docs-2.json b/models/apis/kafka/2018-11-14/docs-2.json index 69c9625e925..519416c682f 100644 --- a/models/apis/kafka/2018-11-14/docs-2.json +++ b/models/apis/kafka/2018-11-14/docs-2.json @@ -10,6 +10,7 @@ "DescribeConfiguration" : "

Returns a description of this MSK configuration.

", "DescribeConfigurationRevision" : "

Returns a description of this revision of the configuration.

", "GetBootstrapBrokers" : "

A list of brokers that a client application can use to bootstrap.

", + "GetCompatibleKafkaVersions" : "

Gets the Apache Kafka versions to which you can update the MSK cluster.

", "ListClusterOperations" : "

Returns a list of all the operations that have been performed on the specified MSK cluster.

", "ListClusters" : "

Returns a list of all the MSK clusters in the current Region.

", "ListConfigurationRevisions" : "

Returns a list of all the revisions of an MSK configuration.

", @@ -22,6 +23,7 @@ "UpdateBrokerCount" : "

Updates the number of broker nodes in the cluster. You can use this operation to increase the number of brokers in an existing cluster. You can't decrease the number of brokers.

", "UpdateBrokerStorage" : "

Updates the EBS storage associated with MSK brokers.

", "UpdateClusterConfiguration" : "

Updates the cluster with the configuration that is specified in the request body.

", + "UpdateClusterKafkaVersion" : "

Updates the Apache Kafka version for the cluster.

", "UpdateMonitoring" : "

Updates the monitoring settings for the cluster. You can use this operation to specify which Apache Kafka metrics you want Amazon MSK to send to Amazon CloudWatch. You can also specify settings for open monitoring with Prometheus.

" }, "shapes" : { @@ -100,6 +102,18 @@ "__listOfClusterOperationInfo$member" : null } }, + "ClusterOperationStep" : { + "base" : "

Step taken during a cluster operation.

", + "refs" : { + "__listOfClusterOperationStep$member" : null + } + }, + "ClusterOperationStepInfo" : { + "base" : "

State information about the operation step.

", + "refs" : { + "ClusterOperationStep$StepInfo" : "

Information about the step and its status.

" + } + }, "ClusterState" : { "base" : "

The state of a Kafka cluster.

", "refs" : { @@ -108,6 +122,12 @@ "DeleteClusterResponse$State" : "

The state of the cluster. The possible states are CREATING, ACTIVE, and FAILED.

" } }, + "CompatibleKafkaVersion" : { + "base" : "

Contains source Kafka versions and compatible target Kafka versions.

", + "refs" : { + "__listOfCompatibleKafkaVersion$member" : null + } + }, "Configuration" : { "base" : "

Represents an MSK Configuration.

", "refs" : { @@ -229,6 +249,10 @@ "base" : "

Returns a string containing one or more hostname:port pairs.

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

Response body for GetCompatibleKafkaVersions.

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

Returns information about an error.

", "refs" : { } @@ -419,6 +443,14 @@ "base" : "

Response body for UpdateClusterConfiguration.

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

Request body for UpdateClusterKafkaVersion.

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

Response body for UpdateClusterKafkaVersion.

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

Request body for UpdateMonitoring.

", "refs" : { } @@ -494,6 +526,18 @@ "ListClusterOperationsResponse$ClusterOperationInfoList" : "

An array of cluster operation information objects.

" } }, + "__listOfClusterOperationStep" : { + "base" : null, + "refs" : { + "ClusterOperationInfo$OperationSteps" : "

Steps completed during the operation.

" + } + }, + "__listOfCompatibleKafkaVersion" : { + "base" : null, + "refs" : { + "GetCompatibleKafkaVersionsResponse$CompatibleKafkaVersions" : "

A list of CompatibleKafkaVersion objects.

" + } + }, "__listOfConfiguration" : { "base" : null, "refs" : { @@ -569,6 +613,8 @@ "ClusterOperationInfo$OperationArn" : "

ARN of the cluster operation.

", "ClusterOperationInfo$OperationState" : "

State of the cluster operation.

", "ClusterOperationInfo$OperationType" : "

Type of the cluster operation.

", + "ClusterOperationStep$StepName" : "

The name of the step.

", + "ClusterOperationStepInfo$StepStatus" : "

The steps current status.

", "Configuration$Arn" : "

The Amazon Resource Name (ARN) of the configuration.

", "Configuration$Description" : "

The description of the configuration.

", "Configuration$Name" : "

The name of the configuration. Configuration names are strings that match the regex \"^[0-9A-Za-z-]+$\".

", @@ -617,6 +663,10 @@ "UpdateClusterConfigurationRequest$CurrentVersion" : "

The version of the cluster that you want to update.

", "UpdateClusterConfigurationResponse$ClusterArn" : "

The Amazon Resource Name (ARN) of the cluster.

", "UpdateClusterConfigurationResponse$ClusterOperationArn" : "

The Amazon Resource Name (ARN) of the cluster operation.

", + "UpdateClusterKafkaVersionRequest$CurrentVersion" : "

Current cluster version.

", + "UpdateClusterKafkaVersionRequest$TargetKafkaVersion" : "

Target Kafka version.

", + "UpdateClusterKafkaVersionResponse$ClusterArn" : "

The Amazon Resource Name (ARN) of the cluster.

", + "UpdateClusterKafkaVersionResponse$ClusterOperationArn" : "

The Amazon Resource Name (ARN) of the cluster operation.

", "UpdateMonitoringRequest$CurrentVersion" : "

The version of cluster to update from. A successful operation will then generate a new version.

", "UpdateMonitoringResponse$ClusterArn" : "

The Amazon Resource Name (ARN) of the cluster.

", "UpdateMonitoringResponse$ClusterOperationArn" : "

The Amazon Resource Name (ARN) of the cluster operation.

", diff --git a/models/apis/marketplace-catalog/2018-09-17/api-2.json b/models/apis/marketplace-catalog/2018-09-17/api-2.json index 487e913054e..c161afab90f 100644 --- a/models/apis/marketplace-catalog/2018-09-17/api-2.json +++ b/models/apis/marketplace-catalog/2018-09-17/api-2.json @@ -215,6 +215,7 @@ "members":{ "ChangeType":{"shape":"ChangeType"}, "Entity":{"shape":"Entity"}, + "Details":{"shape":"Json"}, "ErrorDetailList":{"shape":"ErrorDetailList"} } }, diff --git a/models/apis/marketplace-catalog/2018-09-17/docs-2.json b/models/apis/marketplace-catalog/2018-09-17/docs-2.json index e80609c74e4..7312d76cb84 100644 --- a/models/apis/marketplace-catalog/2018-09-17/docs-2.json +++ b/models/apis/marketplace-catalog/2018-09-17/docs-2.json @@ -1,13 +1,13 @@ { "version": "2.0", - "service": "

Catalog API actions allow you to create, describe, list, and delete changes to your published entities. An entity is a product or an offer on AWS Marketplace.

You can automate your entity update process by integrating the AWS Marketplace Catalog API with your AWS Marketplace product build or deployment pipelines. You can also create your own applications on top of the Catalog API to manage your products on AWS Marketplace.

", + "service": "

Catalog API actions allow you to manage your entities through list, describe, and update capabilities. An entity can be a product or an offer on AWS Marketplace.

You can automate your entity update process by integrating the AWS Marketplace Catalog API with your AWS Marketplace product build or deployment pipelines. You can also create your own applications on top of the Catalog API to manage your products on AWS Marketplace.

", "operations": { "CancelChangeSet": "

Used to cancel an open change request. Must be sent before the status of the request changes to APPLYING, the final stage of completing your change request. You can describe a change during the 60-day request history retention period for API calls.

", "DescribeChangeSet": "

Provides information about a given change set.

", "DescribeEntity": "

Returns the metadata and content of the entity.

", "ListChangeSets": "

Returns the list of change sets owned by the account being used to make the call. You can filter this list by providing any combination of entityId, ChangeSetName, and status. If you provide more than one filter, the API operation applies a logical AND between the filters.

You can describe a change during the 60-day request history retention period for API calls.

", "ListEntities": "

Provides the list of entities of a given type.

", - "StartChangeSet": "

This operation allows you to request changes in your entities.

" + "StartChangeSet": "

This operation allows you to request changes for your entities. Within a single ChangeSet, you cannot start the same change type against the same entity multiple times. Additionally, when a ChangeSet is running, all the entities targeted by the different changes are locked until the ChangeSet has completed (either succeeded, cancelled, or failed). If you try to start a ChangeSet containing a change against an entity that is already locked, you will receive a ResourceInUseException.

For example, you cannot start the ChangeSet described in the example below because it contains two changes to execute the same change type (AddRevisions) against the same entity (entity-id@1).

" }, "shapes": { "ARN": { @@ -209,6 +209,7 @@ "base": null, "refs": { "Change$Details": "

This object contains details specific to the change type of the requested change.

", + "ChangeSummary$Details": "

This object contains details specific to the change type of the requested change.

", "DescribeEntityResponse$Details": "

This stringified JSON object includes the details of the entity.

" } }, @@ -295,10 +296,10 @@ } }, "Sort": { - "base": "

An object that contains two attributes, sortBy and sortOrder.

", + "base": "

An object that contains two attributes, SortBy and SortOrder.

", "refs": { - "ListChangeSetsRequest$Sort": "

An object that contains two attributes, sortBy and sortOrder.

", - "ListEntitiesRequest$Sort": "

An object that contains two attributes, sortBy and sortOrder.

" + "ListChangeSetsRequest$Sort": "

An object that contains two attributes, SortBy and SortOrder.

", + "ListEntitiesRequest$Sort": "

An object that contains two attributes, SortBy and SortOrder.

" } }, "SortBy": { @@ -329,9 +330,9 @@ "AccessDeniedException$Message": null, "DescribeChangeSetResponse$FailureDescription": "

Returned if there is a failure on the change set, but that failure is not related to any of the changes in the request.

", "DescribeEntityResponse$LastModifiedDate": "

The last modified date of the entity, in ISO 8601 format (2018-02-27T13:45:22Z).

", - "EntitySummary$Name": "

The name for the entity. This value is not unique. It is defined by the provider.

", + "EntitySummary$Name": "

The name for the entity. This value is not unique. It is defined by the seller.

", "EntitySummary$LastModifiedDate": "

The last time the entity was published, using ISO 8601 format (2018-02-27T13:45:22Z).

", - "EntitySummary$Visibility": "

The visibility status of the entity to subscribers. This value can be Public (everyone can view the entity), Limited (the entity is visible to limited accounts only), or Restricted (the entity was published and then unpublished and only existing subscribers can view it).

", + "EntitySummary$Visibility": "

The visibility status of the entity to buyers. This value can be Public (everyone can view the entity), Limited (the entity is visible to limited accounts only), or Restricted (the entity was published and then unpublished and only existing buyers can view it).

", "ErrorDetail$ErrorCode": "

The error code that identifies the type of error.

", "ErrorDetail$ErrorMessage": "

The message for the error.

", "InternalServiceException$Message": null, diff --git a/models/apis/qldb-session/2019-07-11/docs-2.json b/models/apis/qldb-session/2019-07-11/docs-2.json index f25f3931ed2..bc9e1360b63 100644 --- a/models/apis/qldb-session/2019-07-11/docs-2.json +++ b/models/apis/qldb-session/2019-07-11/docs-2.json @@ -1,8 +1,8 @@ { "version": "2.0", - "service": "

The transactional data APIs for Amazon QLDB

", + "service": "

The transactional data APIs for Amazon QLDB

Instead of interacting directly with this API, we recommend that you use the Amazon QLDB Driver or the QLDB Shell to execute data transactions on a ledger.

", "operations": { - "SendCommand": "

Sends a command to an Amazon QLDB ledger.

" + "SendCommand": "

Sends a command to an Amazon QLDB ledger.

Instead of interacting directly with this API, we recommend that you use the Amazon QLDB Driver or the QLDB Shell to execute data transactions on a ledger.

" }, "shapes": { "AbortTransactionRequest": { @@ -95,20 +95,20 @@ } }, "InvalidSessionException": { - "base": "

Returned if the session doesn't exist anymore because it timed-out or expired.

", + "base": "

Returned if the session doesn't exist anymore because it timed out or expired.

", "refs": { } }, "IonBinary": { "base": null, "refs": { - "ValueHolder$IonBinary": "

An Amazon Ion binary value contained in a ValueHolder structure.

" + "ValueHolder$IonBinary": "

An Amazon Ion binary value contained in a ValueHolder structure.

" } }, "IonText": { "base": null, "refs": { - "ValueHolder$IonText": "

An Amazon Ion plaintext value contained in a ValueHolder structure.

" + "ValueHolder$IonText": "

An Amazon Ion plaintext value contained in a ValueHolder structure.

" } }, "LedgerName": { @@ -123,7 +123,7 @@ } }, "OccConflictException": { - "base": "

Returned when a transaction cannot be written to the journal due to a failure in the verification phase of Optimistic Concurrency Control.

", + "base": "

Returned when a transaction cannot be written to the journal due to a failure in the verification phase of optimistic concurrency control (OCC).

", "refs": { } }, @@ -164,7 +164,7 @@ } }, "StartSessionRequest": { - "base": "

Specifies a request to start a a new session.

", + "base": "

Specifies a request to start a new session.

", "refs": { "SendCommandRequest$StartSession": "

Command to start a new session. A session token is obtained as part of the response.

" } @@ -202,15 +202,15 @@ "TransactionId": { "base": null, "refs": { - "CommitTransactionRequest$TransactionId": "

Specifies the transaction id of the transaction to commit.

", - "CommitTransactionResult$TransactionId": "

The transaction id of the committed transaction.

", - "ExecuteStatementRequest$TransactionId": "

Specifies the transaction id of the request.

", - "FetchPageRequest$TransactionId": "

Specifies the transaction id of the page to be fetched.

", - "StartTransactionResult$TransactionId": "

The transaction id of the started transaction.

" + "CommitTransactionRequest$TransactionId": "

Specifies the transaction ID of the transaction to commit.

", + "CommitTransactionResult$TransactionId": "

The transaction ID of the committed transaction.

", + "ExecuteStatementRequest$TransactionId": "

Specifies the transaction ID of the request.

", + "FetchPageRequest$TransactionId": "

Specifies the transaction ID of the page to be fetched.

", + "StartTransactionResult$TransactionId": "

The transaction ID of the started transaction.

" } }, "ValueHolder": { - "base": "

A structure that can contains values in multiple encoding formats.

", + "base": "

A structure that can contain an Amazon Ion value in multiple encoding formats.

", "refs": { "StatementParameters$member": null, "ValueHolders$member": null diff --git a/models/apis/workmail/2017-10-01/api-2.json b/models/apis/workmail/2017-10-01/api-2.json index 49a59e04cfa..58ed8b78f4e 100644 --- a/models/apis/workmail/2017-10-01/api-2.json +++ b/models/apis/workmail/2017-10-01/api-2.json @@ -212,6 +212,21 @@ ], "idempotent":true }, + "DeleteRetentionPolicy":{ + "name":"DeleteRetentionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRetentionPolicyRequest"}, + "output":{"shape":"DeleteRetentionPolicyResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "idempotent":true + }, "DeleteUser":{ "name":"DeleteUser", "http":{ @@ -362,6 +377,22 @@ {"shape":"OrganizationStateException"} ] }, + "GetDefaultRetentionPolicy":{ + "name":"GetDefaultRetentionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDefaultRetentionPolicyRequest"}, + "output":{"shape":"GetDefaultRetentionPolicyResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"EntityNotFoundException"} + ], + "idempotent":true + }, "GetMailboxDetails":{ "name":"GetMailboxDetails", "http":{ @@ -561,6 +592,22 @@ ], "idempotent":true }, + "PutRetentionPolicy":{ + "name":"PutRetentionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutRetentionPolicyRequest"}, + "output":{"shape":"PutRetentionPolicyResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"LimitExceededException"} + ], + "idempotent":true + }, "RegisterToWorkMail":{ "name":"RegisterToWorkMail", "http":{ @@ -979,6 +1026,22 @@ "members":{ } }, + "DeleteRetentionPolicyRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "Id" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "Id":{"shape":"ShortString"} + } + }, + "DeleteRetentionPolicyResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteUserRequest":{ "type":"structure", "required":[ @@ -1194,6 +1257,32 @@ }, "exception":true }, + "FolderConfiguration":{ + "type":"structure", + "required":[ + "Name", + "Action" + ], + "members":{ + "Name":{"shape":"FolderName"}, + "Action":{"shape":"RetentionAction"}, + "Period":{"shape":"RetentionPeriod"} + } + }, + "FolderConfigurations":{ + "type":"list", + "member":{"shape":"FolderConfiguration"} + }, + "FolderName":{ + "type":"string", + "enum":[ + "INBOX", + "DELETED_ITEMS", + "SENT_ITEMS", + "DRAFTS", + "JUNK_EMAIL" + ] + }, "GetAccessControlEffectRequest":{ "type":"structure", "required":[ @@ -1216,6 +1305,22 @@ "MatchedRules":{"shape":"AccessControlRuleNameList"} } }, + "GetDefaultRetentionPolicyRequest":{ + "type":"structure", + "required":["OrganizationId"], + "members":{ + "OrganizationId":{"shape":"OrganizationId"} + } + }, + "GetDefaultRetentionPolicyResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"ShortString"}, + "Name":{"shape":"ShortString"}, + "Description":{"shape":"String"}, + "FolderConfigurations":{"shape":"FolderConfigurations"} + } + }, "GetMailboxDetailsRequest":{ "type":"structure", "required":[ @@ -1604,6 +1709,11 @@ "type":"list", "member":{"shape":"Permission"} }, + "PolicyDescription":{ + "type":"string", + "max":256, + "pattern":"[\\w\\d\\s\\S\\-!?=,.;:'_]+" + }, "PutAccessControlRuleRequest":{ "type":"structure", "required":[ @@ -1650,6 +1760,26 @@ "members":{ } }, + "PutRetentionPolicyRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "Name", + "FolderConfigurations" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "Id":{"shape":"ShortString"}, + "Name":{"shape":"ShortString"}, + "Description":{"shape":"PolicyDescription"}, + "FolderConfigurations":{"shape":"FolderConfigurations"} + } + }, + "PutRetentionPolicyResponse":{ + "type":"structure", + "members":{ + } + }, "RegisterToWorkMailRequest":{ "type":"structure", "required":[ @@ -1737,6 +1867,26 @@ "type":"list", "member":{"shape":"Resource"} }, + "RetentionAction":{ + "type":"string", + "enum":[ + "NONE", + "DELETE", + "PERMANENTLY_DELETE" + ] + }, + "RetentionPeriod":{ + "type":"integer", + "box":true, + "max":730, + "min":1 + }, + "ShortString":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, "String":{ "type":"string", "max":256 diff --git a/models/apis/workmail/2017-10-01/docs-2.json b/models/apis/workmail/2017-10-01/docs-2.json index 5770cb38c6c..946005883ad 100644 --- a/models/apis/workmail/2017-10-01/docs-2.json +++ b/models/apis/workmail/2017-10-01/docs-2.json @@ -13,6 +13,7 @@ "DeleteGroup": "

Deletes a group from Amazon WorkMail.

", "DeleteMailboxPermissions": "

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

", "DeleteResource": "

Deletes the specified resource.

", + "DeleteRetentionPolicy": "

Deletes the specified retention policy from the specified organization.

", "DeleteUser": "

Deletes a user from Amazon WorkMail and all subsequent systems. Before you can delete a user, the user state must be DISABLED. Use the DescribeUser action to confirm the user state.

Deleting a user is permanent and cannot be undone. WorkMail archives user mailboxes for 30 days before they are permanently removed.

", "DeregisterFromWorkMail": "

Mark a user, group, or resource as no longer used in Amazon WorkMail. This action disassociates the mailbox and schedules it for clean-up. WorkMail keeps mailboxes for 30 days before they are permanently removed. The functionality in the console is Disable.

", "DescribeGroup": "

Returns the data available for the group.

", @@ -22,6 +23,7 @@ "DisassociateDelegateFromResource": "

Removes a member from the resource's set of delegates.

", "DisassociateMemberFromGroup": "

Removes a member from a group.

", "GetAccessControlEffect": "

Gets the effects of an organization's access control rules as they apply to a specified IPv4 address, access protocol action, or user ID.

", + "GetDefaultRetentionPolicy": "

Gets the default retention policy details for the specified organization.

", "GetMailboxDetails": "

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

", "ListAccessControlRules": "

Lists the access control rules for the specified organization.

", "ListAliases": "

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

", @@ -35,6 +37,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.

", + "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.

", "TagResource": "

Applies the specified tags to the specified Amazon WorkMail organization resource.

", @@ -248,6 +251,16 @@ "refs": { } }, + "DeleteRetentionPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteRetentionPolicyResponse": { + "base": null, + "refs": { + } + }, "DeleteUserRequest": { "base": null, "refs": { @@ -386,6 +399,25 @@ "refs": { } }, + "FolderConfiguration": { + "base": "

The configuration applied to an organization's folders by its retention policy.

", + "refs": { + "FolderConfigurations$member": null + } + }, + "FolderConfigurations": { + "base": null, + "refs": { + "GetDefaultRetentionPolicyResponse$FolderConfigurations": "

The retention policy folder configurations.

", + "PutRetentionPolicyRequest$FolderConfigurations": "

The retention policy folder configurations.

" + } + }, + "FolderName": { + "base": null, + "refs": { + "FolderConfiguration$Name": "

The folder name.

" + } + }, "GetAccessControlEffectRequest": { "base": null, "refs": { @@ -396,6 +428,16 @@ "refs": { } }, + "GetDefaultRetentionPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetDefaultRetentionPolicyResponse": { + "base": null, + "refs": { + } + }, "GetMailboxDetailsRequest": { "base": null, "refs": { @@ -663,6 +705,7 @@ "DeleteGroupRequest$OrganizationId": "

The organization that contains the group.

", "DeleteMailboxPermissionsRequest$OrganizationId": "

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

", "DeleteResourceRequest$OrganizationId": "

The identifier associated with the organization from which the resource is deleted.

", + "DeleteRetentionPolicyRequest$OrganizationId": "

The organization ID.

", "DeleteUserRequest$OrganizationId": "

The organization that contains the user to be deleted.

", "DeregisterFromWorkMailRequest$OrganizationId": "

The identifier for the organization under which the Amazon WorkMail entity exists.

", "DescribeGroupRequest$OrganizationId": "

The identifier for the organization under which the group exists.

", @@ -673,6 +716,7 @@ "DisassociateDelegateFromResourceRequest$OrganizationId": "

The identifier for the organization under which the resource exists.

", "DisassociateMemberFromGroupRequest$OrganizationId": "

The identifier for the organization under which the group exists.

", "GetAccessControlEffectRequest$OrganizationId": "

The identifier for the organization.

", + "GetDefaultRetentionPolicyRequest$OrganizationId": "

The organization ID.

", "GetMailboxDetailsRequest$OrganizationId": "

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

", "ListAccessControlRulesRequest$OrganizationId": "

The identifier for the organization.

", "ListAliasesRequest$OrganizationId": "

The identifier for the organization under which the entity exists.

", @@ -685,6 +729,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.

", + "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.

", "UpdateMailboxQuotaRequest$OrganizationId": "

The identifier for the organization that contains the user for whom to update the mailbox quota.

", @@ -753,6 +798,12 @@ "ListMailboxPermissionsResponse$Permissions": "

One page of the user, group, or resource mailbox permissions.

" } }, + "PolicyDescription": { + "base": null, + "refs": { + "PutRetentionPolicyRequest$Description": "

The retention policy description.

" + } + }, "PutAccessControlRuleRequest": { "base": null, "refs": { @@ -773,6 +824,16 @@ "refs": { } }, + "PutRetentionPolicyRequest": { + "base": null, + "refs": { + } + }, + "PutRetentionPolicyResponse": { + "base": null, + "refs": { + } + }, "RegisterToWorkMailRequest": { "base": null, "refs": { @@ -850,6 +911,28 @@ "ListResourcesResponse$Resources": "

One page of the organization's resource representation.

" } }, + "RetentionAction": { + "base": null, + "refs": { + "FolderConfiguration$Action": "

The action to take on the folder contents at the end of the folder configuration period.

" + } + }, + "RetentionPeriod": { + "base": null, + "refs": { + "FolderConfiguration$Period": "

The period of time at which the folder configuration action is applied.

" + } + }, + "ShortString": { + "base": null, + "refs": { + "DeleteRetentionPolicyRequest$Id": "

The retention policy ID.

", + "GetDefaultRetentionPolicyResponse$Id": "

The retention policy ID.

", + "GetDefaultRetentionPolicyResponse$Name": "

The retention policy name.

", + "PutRetentionPolicyRequest$Id": "

The retention policy ID.

", + "PutRetentionPolicyRequest$Name": "

The retention policy name.

" + } + }, "String": { "base": null, "refs": { @@ -867,6 +950,7 @@ "EntityAlreadyRegisteredException$Message": null, "EntityNotFoundException$Message": null, "EntityStateException$Message": null, + "GetDefaultRetentionPolicyResponse$Description": "

The retention policy description.

", "InvalidConfigurationException$Message": null, "InvalidParameterException$Message": null, "InvalidPasswordException$Message": null, diff --git a/service/kafka/api.go b/service/kafka/api.go index 07f1aab901f..14ccdd1a6e4 100644 --- a/service/kafka/api.go +++ b/service/kafka/api.go @@ -758,6 +758,103 @@ func (c *Kafka) GetBootstrapBrokersWithContext(ctx aws.Context, input *GetBootst return out, req.Send() } +const opGetCompatibleKafkaVersions = "GetCompatibleKafkaVersions" + +// GetCompatibleKafkaVersionsRequest generates a "aws/request.Request" representing the +// client's request for the GetCompatibleKafkaVersions 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 GetCompatibleKafkaVersions for more information on using the GetCompatibleKafkaVersions +// 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 GetCompatibleKafkaVersionsRequest method. +// req, resp := client.GetCompatibleKafkaVersionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/kafka-2018-11-14/GetCompatibleKafkaVersions +func (c *Kafka) GetCompatibleKafkaVersionsRequest(input *GetCompatibleKafkaVersionsInput) (req *request.Request, output *GetCompatibleKafkaVersionsOutput) { + op := &request.Operation{ + Name: opGetCompatibleKafkaVersions, + HTTPMethod: "GET", + HTTPPath: "/v1/compatible-kafka-versions", + } + + if input == nil { + input = &GetCompatibleKafkaVersionsInput{} + } + + output = &GetCompatibleKafkaVersionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetCompatibleKafkaVersions API operation for Managed Streaming for Kafka. +// +// Gets the Apache Kafka versions to which you can update the MSK cluster. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Managed Streaming for Kafka's +// API operation GetCompatibleKafkaVersions for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// Returns information about an error. +// +// * UnauthorizedException +// Returns information about an error. +// +// * InternalServerErrorException +// Returns information about an error. +// +// * ForbiddenException +// Returns information about an error. +// +// * NotFoundException +// Returns information about an error. +// +// * ServiceUnavailableException +// Returns information about an error. +// +// * TooManyRequestsException +// Returns information about an error. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/kafka-2018-11-14/GetCompatibleKafkaVersions +func (c *Kafka) GetCompatibleKafkaVersions(input *GetCompatibleKafkaVersionsInput) (*GetCompatibleKafkaVersionsOutput, error) { + req, out := c.GetCompatibleKafkaVersionsRequest(input) + return out, req.Send() +} + +// GetCompatibleKafkaVersionsWithContext is the same as GetCompatibleKafkaVersions with the addition of +// the ability to pass a context and additional request options. +// +// See GetCompatibleKafkaVersions 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 *Kafka) GetCompatibleKafkaVersionsWithContext(ctx aws.Context, input *GetCompatibleKafkaVersionsInput, opts ...request.Option) (*GetCompatibleKafkaVersionsOutput, error) { + req, out := c.GetCompatibleKafkaVersionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListClusterOperations = "ListClusterOperations" // ListClusterOperationsRequest generates a "aws/request.Request" representing the @@ -2180,6 +2277,103 @@ func (c *Kafka) UpdateClusterConfigurationWithContext(ctx aws.Context, input *Up return out, req.Send() } +const opUpdateClusterKafkaVersion = "UpdateClusterKafkaVersion" + +// UpdateClusterKafkaVersionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateClusterKafkaVersion 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 UpdateClusterKafkaVersion for more information on using the UpdateClusterKafkaVersion +// 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 UpdateClusterKafkaVersionRequest method. +// req, resp := client.UpdateClusterKafkaVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/kafka-2018-11-14/UpdateClusterKafkaVersion +func (c *Kafka) UpdateClusterKafkaVersionRequest(input *UpdateClusterKafkaVersionInput) (req *request.Request, output *UpdateClusterKafkaVersionOutput) { + op := &request.Operation{ + Name: opUpdateClusterKafkaVersion, + HTTPMethod: "PUT", + HTTPPath: "/v1/clusters/{clusterArn}/version", + } + + if input == nil { + input = &UpdateClusterKafkaVersionInput{} + } + + output = &UpdateClusterKafkaVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateClusterKafkaVersion API operation for Managed Streaming for Kafka. +// +// Updates the Apache Kafka version for the cluster. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Managed Streaming for Kafka's +// API operation UpdateClusterKafkaVersion for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// Returns information about an error. +// +// * UnauthorizedException +// Returns information about an error. +// +// * InternalServerErrorException +// Returns information about an error. +// +// * ForbiddenException +// Returns information about an error. +// +// * NotFoundException +// Returns information about an error. +// +// * ServiceUnavailableException +// Returns information about an error. +// +// * TooManyRequestsException +// Returns information about an error. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/kafka-2018-11-14/UpdateClusterKafkaVersion +func (c *Kafka) UpdateClusterKafkaVersion(input *UpdateClusterKafkaVersionInput) (*UpdateClusterKafkaVersionOutput, error) { + req, out := c.UpdateClusterKafkaVersionRequest(input) + return out, req.Send() +} + +// UpdateClusterKafkaVersionWithContext is the same as UpdateClusterKafkaVersion with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateClusterKafkaVersion 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 *Kafka) UpdateClusterKafkaVersionWithContext(ctx aws.Context, input *UpdateClusterKafkaVersionInput, opts ...request.Option) (*UpdateClusterKafkaVersionOutput, error) { + req, out := c.UpdateClusterKafkaVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateMonitoring = "UpdateMonitoring" // UpdateMonitoringRequest generates a "aws/request.Request" representing the @@ -2930,6 +3124,9 @@ type ClusterOperationInfo struct { // State of the cluster operation. OperationState *string `locationName:"operationState" type:"string"` + // Steps completed during the operation. + OperationSteps []*ClusterOperationStep `locationName:"operationSteps" type:"list"` + // Type of the cluster operation. OperationType *string `locationName:"operationType" type:"string"` @@ -2992,6 +3189,12 @@ func (s *ClusterOperationInfo) SetOperationState(v string) *ClusterOperationInfo return s } +// SetOperationSteps sets the OperationSteps field's value. +func (s *ClusterOperationInfo) SetOperationSteps(v []*ClusterOperationStep) *ClusterOperationInfo { + s.OperationSteps = v + return s +} + // SetOperationType sets the OperationType field's value. func (s *ClusterOperationInfo) SetOperationType(v string) *ClusterOperationInfo { s.OperationType = &v @@ -3010,6 +3213,94 @@ func (s *ClusterOperationInfo) SetTargetClusterInfo(v *MutableClusterInfo) *Clus return s } +// Step taken during a cluster operation. +type ClusterOperationStep struct { + _ struct{} `type:"structure"` + + // Information about the step and its status. + StepInfo *ClusterOperationStepInfo `locationName:"stepInfo" type:"structure"` + + // The name of the step. + StepName *string `locationName:"stepName" type:"string"` +} + +// String returns the string representation +func (s ClusterOperationStep) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ClusterOperationStep) GoString() string { + return s.String() +} + +// SetStepInfo sets the StepInfo field's value. +func (s *ClusterOperationStep) SetStepInfo(v *ClusterOperationStepInfo) *ClusterOperationStep { + s.StepInfo = v + return s +} + +// SetStepName sets the StepName field's value. +func (s *ClusterOperationStep) SetStepName(v string) *ClusterOperationStep { + s.StepName = &v + return s +} + +// State information about the operation step. +type ClusterOperationStepInfo struct { + _ struct{} `type:"structure"` + + // The steps current status. + StepStatus *string `locationName:"stepStatus" type:"string"` +} + +// String returns the string representation +func (s ClusterOperationStepInfo) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ClusterOperationStepInfo) GoString() string { + return s.String() +} + +// SetStepStatus sets the StepStatus field's value. +func (s *ClusterOperationStepInfo) SetStepStatus(v string) *ClusterOperationStepInfo { + s.StepStatus = &v + return s +} + +// Contains source Kafka versions and compatible target Kafka versions. +type CompatibleKafkaVersion struct { + _ struct{} `type:"structure"` + + SourceVersion *string `locationName:"sourceVersion" type:"string"` + + TargetVersions []*string `locationName:"targetVersions" type:"list"` +} + +// String returns the string representation +func (s CompatibleKafkaVersion) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CompatibleKafkaVersion) GoString() string { + return s.String() +} + +// SetSourceVersion sets the SourceVersion field's value. +func (s *CompatibleKafkaVersion) SetSourceVersion(v string) *CompatibleKafkaVersion { + s.SourceVersion = &v + return s +} + +// SetTargetVersions sets the TargetVersions field's value. +func (s *CompatibleKafkaVersion) SetTargetVersions(v []*string) *CompatibleKafkaVersion { + s.TargetVersions = v + return s +} + // Represents an MSK Configuration. type Configuration struct { _ struct{} `type:"structure"` @@ -3478,9 +3769,7 @@ type CreateConfigurationInput struct { Description *string `locationName:"description" type:"string"` // The versions of Apache Kafka with which you can use this MSK configuration. - // - // KafkaVersions is a required field - KafkaVersions []*string `locationName:"kafkaVersions" type:"list" required:"true"` + KafkaVersions []*string `locationName:"kafkaVersions" type:"list"` // The name of the configuration. Configuration names are strings that match // the regex "^[0-9A-Za-z-]+$". @@ -3507,9 +3796,6 @@ func (s CreateConfigurationInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateConfigurationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationInput"} - if s.KafkaVersions == nil { - invalidParams.Add(request.NewErrParamRequired("KafkaVersions")) - } if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } @@ -4416,6 +4702,52 @@ func (s *GetBootstrapBrokersOutput) SetBootstrapBrokerStringTls(v string) *GetBo return s } +type GetCompatibleKafkaVersionsInput struct { + _ struct{} `type:"structure"` + + ClusterArn *string `location:"querystring" locationName:"clusterArn" type:"string"` +} + +// String returns the string representation +func (s GetCompatibleKafkaVersionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetCompatibleKafkaVersionsInput) GoString() string { + return s.String() +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *GetCompatibleKafkaVersionsInput) SetClusterArn(v string) *GetCompatibleKafkaVersionsInput { + s.ClusterArn = &v + return s +} + +// Response body for GetCompatibleKafkaVersions. +type GetCompatibleKafkaVersionsOutput struct { + _ struct{} `type:"structure"` + + // A list of CompatibleKafkaVersion objects. + CompatibleKafkaVersions []*CompatibleKafkaVersion `locationName:"compatibleKafkaVersions" type:"list"` +} + +// String returns the string representation +func (s GetCompatibleKafkaVersionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetCompatibleKafkaVersionsOutput) GoString() string { + return s.String() +} + +// SetCompatibleKafkaVersions sets the CompatibleKafkaVersions field's value. +func (s *GetCompatibleKafkaVersionsOutput) SetCompatibleKafkaVersions(v []*CompatibleKafkaVersion) *GetCompatibleKafkaVersionsOutput { + s.CompatibleKafkaVersions = v + return s +} + // Returns information about an error. type InternalServerErrorException struct { _ struct{} `type:"structure"` @@ -5216,6 +5548,8 @@ type MutableClusterInfo struct { // CloudWatch for this cluster. EnhancedMonitoring *string `locationName:"enhancedMonitoring" type:"string" enum:"EnhancedMonitoring"` + KafkaVersion *string `locationName:"kafkaVersion" type:"string"` + // LoggingInfo details. LoggingInfo *LoggingInfo `locationName:"loggingInfo" type:"structure"` @@ -5254,6 +5588,12 @@ func (s *MutableClusterInfo) SetEnhancedMonitoring(v string) *MutableClusterInfo return s } +// SetKafkaVersion sets the KafkaVersion field's value. +func (s *MutableClusterInfo) SetKafkaVersion(v string) *MutableClusterInfo { + s.KafkaVersion = &v + return s +} + // SetLoggingInfo sets the LoggingInfo field's value. func (s *MutableClusterInfo) SetLoggingInfo(v *LoggingInfo) *MutableClusterInfo { s.LoggingInfo = v @@ -6376,6 +6716,121 @@ func (s *UpdateClusterConfigurationOutput) SetClusterOperationArn(v string) *Upd return s } +// Request body for UpdateClusterKafkaVersion. +type UpdateClusterKafkaVersionInput struct { + _ struct{} `type:"structure"` + + // ClusterArn is a required field + ClusterArn *string `location:"uri" locationName:"clusterArn" type:"string" required:"true"` + + // Specifies the configuration to use for the brokers. + ConfigurationInfo *ConfigurationInfo `locationName:"configurationInfo" type:"structure"` + + // Current cluster version. + // + // CurrentVersion is a required field + CurrentVersion *string `locationName:"currentVersion" type:"string" required:"true"` + + // Target Kafka version. + // + // TargetKafkaVersion is a required field + TargetKafkaVersion *string `locationName:"targetKafkaVersion" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateClusterKafkaVersionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateClusterKafkaVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateClusterKafkaVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateClusterKafkaVersionInput"} + if s.ClusterArn == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterArn")) + } + if s.ClusterArn != nil && len(*s.ClusterArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterArn", 1)) + } + if s.CurrentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("CurrentVersion")) + } + if s.TargetKafkaVersion == nil { + invalidParams.Add(request.NewErrParamRequired("TargetKafkaVersion")) + } + if s.ConfigurationInfo != nil { + if err := s.ConfigurationInfo.Validate(); err != nil { + invalidParams.AddNested("ConfigurationInfo", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *UpdateClusterKafkaVersionInput) SetClusterArn(v string) *UpdateClusterKafkaVersionInput { + s.ClusterArn = &v + return s +} + +// SetConfigurationInfo sets the ConfigurationInfo field's value. +func (s *UpdateClusterKafkaVersionInput) SetConfigurationInfo(v *ConfigurationInfo) *UpdateClusterKafkaVersionInput { + s.ConfigurationInfo = v + return s +} + +// SetCurrentVersion sets the CurrentVersion field's value. +func (s *UpdateClusterKafkaVersionInput) SetCurrentVersion(v string) *UpdateClusterKafkaVersionInput { + s.CurrentVersion = &v + return s +} + +// SetTargetKafkaVersion sets the TargetKafkaVersion field's value. +func (s *UpdateClusterKafkaVersionInput) SetTargetKafkaVersion(v string) *UpdateClusterKafkaVersionInput { + s.TargetKafkaVersion = &v + return s +} + +// Response body for UpdateClusterKafkaVersion. +type UpdateClusterKafkaVersionOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the cluster. + ClusterArn *string `locationName:"clusterArn" type:"string"` + + // The Amazon Resource Name (ARN) of the cluster operation. + ClusterOperationArn *string `locationName:"clusterOperationArn" type:"string"` +} + +// String returns the string representation +func (s UpdateClusterKafkaVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateClusterKafkaVersionOutput) GoString() string { + return s.String() +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *UpdateClusterKafkaVersionOutput) SetClusterArn(v string) *UpdateClusterKafkaVersionOutput { + s.ClusterArn = &v + return s +} + +// SetClusterOperationArn sets the ClusterOperationArn field's value. +func (s *UpdateClusterKafkaVersionOutput) SetClusterOperationArn(v string) *UpdateClusterKafkaVersionOutput { + s.ClusterOperationArn = &v + return s +} + // Request body for UpdateMonitoring. type UpdateMonitoringInput struct { _ struct{} `type:"structure"` diff --git a/service/kafka/kafkaiface/interface.go b/service/kafka/kafkaiface/interface.go index 812f06dfa96..ac82e93dc79 100644 --- a/service/kafka/kafkaiface/interface.go +++ b/service/kafka/kafkaiface/interface.go @@ -92,6 +92,10 @@ type KafkaAPI interface { GetBootstrapBrokersWithContext(aws.Context, *kafka.GetBootstrapBrokersInput, ...request.Option) (*kafka.GetBootstrapBrokersOutput, error) GetBootstrapBrokersRequest(*kafka.GetBootstrapBrokersInput) (*request.Request, *kafka.GetBootstrapBrokersOutput) + GetCompatibleKafkaVersions(*kafka.GetCompatibleKafkaVersionsInput) (*kafka.GetCompatibleKafkaVersionsOutput, error) + GetCompatibleKafkaVersionsWithContext(aws.Context, *kafka.GetCompatibleKafkaVersionsInput, ...request.Option) (*kafka.GetCompatibleKafkaVersionsOutput, error) + GetCompatibleKafkaVersionsRequest(*kafka.GetCompatibleKafkaVersionsInput) (*request.Request, *kafka.GetCompatibleKafkaVersionsOutput) + ListClusterOperations(*kafka.ListClusterOperationsInput) (*kafka.ListClusterOperationsOutput, error) ListClusterOperationsWithContext(aws.Context, *kafka.ListClusterOperationsInput, ...request.Option) (*kafka.ListClusterOperationsOutput, error) ListClusterOperationsRequest(*kafka.ListClusterOperationsInput) (*request.Request, *kafka.ListClusterOperationsOutput) @@ -158,6 +162,10 @@ type KafkaAPI interface { UpdateClusterConfigurationWithContext(aws.Context, *kafka.UpdateClusterConfigurationInput, ...request.Option) (*kafka.UpdateClusterConfigurationOutput, error) UpdateClusterConfigurationRequest(*kafka.UpdateClusterConfigurationInput) (*request.Request, *kafka.UpdateClusterConfigurationOutput) + UpdateClusterKafkaVersion(*kafka.UpdateClusterKafkaVersionInput) (*kafka.UpdateClusterKafkaVersionOutput, error) + UpdateClusterKafkaVersionWithContext(aws.Context, *kafka.UpdateClusterKafkaVersionInput, ...request.Option) (*kafka.UpdateClusterKafkaVersionOutput, error) + UpdateClusterKafkaVersionRequest(*kafka.UpdateClusterKafkaVersionInput) (*request.Request, *kafka.UpdateClusterKafkaVersionOutput) + UpdateMonitoring(*kafka.UpdateMonitoringInput) (*kafka.UpdateMonitoringOutput, error) UpdateMonitoringWithContext(aws.Context, *kafka.UpdateMonitoringInput, ...request.Option) (*kafka.UpdateMonitoringOutput, error) UpdateMonitoringRequest(*kafka.UpdateMonitoringInput) (*request.Request, *kafka.UpdateMonitoringOutput) diff --git a/service/marketplacecatalog/api.go b/service/marketplacecatalog/api.go index 5eeb3bc7b0c..e8e31205438 100644 --- a/service/marketplacecatalog/api.go +++ b/service/marketplacecatalog/api.go @@ -638,7 +638,17 @@ func (c *MarketplaceCatalog) StartChangeSetRequest(input *StartChangeSetInput) ( // StartChangeSet API operation for AWS Marketplace Catalog Service. // -// This operation allows you to request changes in your entities. +// This operation allows you to request changes for your entities. Within a +// single ChangeSet, you cannot start the same change type against the same +// entity multiple times. Additionally, when a ChangeSet is running, all the +// entities targeted by the different changes are locked until the ChangeSet +// has completed (either succeeded, cancelled, or failed). If you try to start +// a ChangeSet containing a change against an entity that is already locked, +// you will receive a ResourceInUseException. +// +// For example, you cannot start the ChangeSet described in the example (https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_StartChangeSet.html#API_StartChangeSet_Examples) +// below because it contains two changes to execute the same change type (AddRevisions) +// against the same entity (entity-id@1). // // 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 @@ -1011,6 +1021,10 @@ type ChangeSummary struct { // The type of the change. ChangeType *string `min:"1" type:"string"` + // This object contains details specific to the change type of the requested + // change. + Details *string `min:"2" type:"string"` + // The entity to be changed. Entity *Entity `type:"structure"` @@ -1034,6 +1048,12 @@ func (s *ChangeSummary) SetChangeType(v string) *ChangeSummary { return s } +// SetDetails sets the Details field's value. +func (s *ChangeSummary) SetDetails(v string) *ChangeSummary { + s.Details = &v + return s +} + // SetEntity sets the Entity field's value. func (s *ChangeSummary) SetEntity(v *Entity) *ChangeSummary { s.Entity = v @@ -1388,13 +1408,13 @@ type EntitySummary struct { // The last time the entity was published, using ISO 8601 format (2018-02-27T13:45:22Z). LastModifiedDate *string `type:"string"` - // The name for the entity. This value is not unique. It is defined by the provider. + // The name for the entity. This value is not unique. It is defined by the seller. Name *string `type:"string"` - // The visibility status of the entity to subscribers. This value can be Public - // (everyone can view the entity), Limited (the entity is visible to limited - // accounts only), or Restricted (the entity was published and then unpublished - // and only existing subscribers can view it). + // The visibility status of the entity to buyers. This value can be Public (everyone + // can view the entity), Limited (the entity is visible to limited accounts + // only), or Restricted (the entity was published and then unpublished and only + // existing buyers can view it). Visibility *string `type:"string"` } @@ -1628,7 +1648,7 @@ type ListChangeSetsInput struct { // results. NextToken *string `min:"1" type:"string"` - // An object that contains two attributes, sortBy and sortOrder. + // An object that contains two attributes, SortBy and SortOrder. Sort *Sort `type:"structure"` } @@ -1768,7 +1788,7 @@ type ListEntitiesInput struct { // The value of the next token, if it exists. Null if there are no more results. NextToken *string `min:"1" type:"string"` - // An object that contains two attributes, sortBy and sortOrder. + // An object that contains two attributes, SortBy and SortOrder. Sort *Sort `type:"structure"` } @@ -2120,7 +2140,7 @@ func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } -// An object that contains two attributes, sortBy and sortOrder. +// An object that contains two attributes, SortBy and SortOrder. type Sort struct { _ struct{} `type:"structure"` diff --git a/service/marketplacecatalog/doc.go b/service/marketplacecatalog/doc.go index debadb7b02f..4b61f907021 100644 --- a/service/marketplacecatalog/doc.go +++ b/service/marketplacecatalog/doc.go @@ -3,8 +3,8 @@ // Package marketplacecatalog provides the client and types for making API // requests to AWS Marketplace Catalog Service. // -// Catalog API actions allow you to create, describe, list, and delete changes -// to your published entities. An entity is a product or an offer on AWS Marketplace. +// Catalog API actions allow you to manage your entities through list, describe, +// and update capabilities. An entity can be a product or an offer on AWS Marketplace. // // You can automate your entity update process by integrating the AWS Marketplace // Catalog API with your AWS Marketplace product build or deployment pipelines. diff --git a/service/qldbsession/api.go b/service/qldbsession/api.go index 57389eab035..6195a2c243d 100644 --- a/service/qldbsession/api.go +++ b/service/qldbsession/api.go @@ -57,6 +57,22 @@ func (c *QLDBSession) SendCommandRequest(input *SendCommandInput) (req *request. // // Sends a command to an Amazon QLDB ledger. // +// Instead of interacting directly with this API, we recommend that you use +// the Amazon QLDB Driver or the QLDB Shell to execute data transactions on +// a ledger. +// +// * If you are working with an AWS SDK, use the QLDB Driver. The driver +// provides a high-level abstraction layer above this qldbsession data plane +// and manages SendCommand API calls for you. For information and a list +// of supported programming languages, see Getting started with the driver +// (https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html) +// in the Amazon QLDB Developer Guide. +// +// * If you are working with the AWS Command Line Interface (AWS CLI), use +// the QLDB Shell. The shell is a command line interface that uses the QLDB +// Driver to interact with a ledger. For information, see Accessing Amazon +// QLDB using the QLDB Shell (https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.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. @@ -70,11 +86,11 @@ func (c *QLDBSession) SendCommandRequest(input *SendCommandInput) (req *request. // parameter value or a missing required parameter. // // * InvalidSessionException -// Returned if the session doesn't exist anymore because it timed-out or expired. +// Returned if the session doesn't exist anymore because it timed out or expired. // // * OccConflictException // Returned when a transaction cannot be written to the journal due to a failure -// in the verification phase of Optimistic Concurrency Control. +// in the verification phase of optimistic concurrency control (OCC). // // * RateExceededException // Returned when the rate of requests exceeds the allowed throughput. @@ -207,7 +223,7 @@ type CommitTransactionRequest struct { // CommitDigest is a required field CommitDigest []byte `type:"blob" required:"true"` - // Specifies the transaction id of the transaction to commit. + // Specifies the transaction ID of the transaction to commit. // // TransactionId is a required field TransactionId *string `min:"22" type:"string" required:"true"` @@ -263,7 +279,7 @@ type CommitTransactionResult struct { // CommitDigest is automatically base64 encoded/decoded by the SDK. CommitDigest []byte `type:"blob"` - // The transaction id of the committed transaction. + // The transaction ID of the committed transaction. TransactionId *string `min:"22" type:"string"` } @@ -331,7 +347,7 @@ type ExecuteStatementRequest struct { // Statement is a required field Statement *string `min:"1" type:"string" required:"true"` - // Specifies the transaction id of the request. + // Specifies the transaction ID of the request. // // TransactionId is a required field TransactionId *string `min:"22" type:"string" required:"true"` @@ -430,7 +446,7 @@ type FetchPageRequest struct { // NextPageToken is a required field NextPageToken *string `min:"4" type:"string" required:"true"` - // Specifies the transaction id of the page to be fetched. + // Specifies the transaction ID of the page to be fetched. // // TransactionId is a required field TransactionId *string `min:"22" type:"string" required:"true"` @@ -504,7 +520,7 @@ func (s *FetchPageResult) SetPage(v *Page) *FetchPageResult { return s } -// Returned if the session doesn't exist anymore because it timed-out or expired. +// Returned if the session doesn't exist anymore because it timed out or expired. type InvalidSessionException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -619,7 +635,7 @@ func (s *LimitExceededException) RequestID() string { } // Returned when a transaction cannot be written to the journal due to a failure -// in the verification phase of Optimistic Concurrency Control. +// in the verification phase of optimistic concurrency control (OCC). type OccConflictException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -968,7 +984,7 @@ func (s *SendCommandOutput) SetStartTransaction(v *StartTransactionResult) *Send return s } -// Specifies a request to start a a new session. +// Specifies a request to start a new session. type StartSessionRequest struct { _ struct{} `type:"structure"` @@ -1054,7 +1070,7 @@ func (s StartTransactionRequest) GoString() string { type StartTransactionResult struct { _ struct{} `type:"structure"` - // The transaction id of the started transaction. + // The transaction ID of the started transaction. TransactionId *string `min:"22" type:"string"` } @@ -1074,7 +1090,7 @@ func (s *StartTransactionResult) SetTransactionId(v string) *StartTransactionRes return s } -// A structure that can contains values in multiple encoding formats. +// A structure that can contain an Amazon Ion value in multiple encoding formats. type ValueHolder struct { _ struct{} `type:"structure"` diff --git a/service/qldbsession/doc.go b/service/qldbsession/doc.go index 814431f216f..8b3837cb674 100644 --- a/service/qldbsession/doc.go +++ b/service/qldbsession/doc.go @@ -5,6 +5,22 @@ // // The transactional data APIs for Amazon QLDB // +// Instead of interacting directly with this API, we recommend that you use +// the Amazon QLDB Driver or the QLDB Shell to execute data transactions on +// a ledger. +// +// * If you are working with an AWS SDK, use the QLDB Driver. The driver +// provides a high-level abstraction layer above this qldbsession data plane +// and manages SendCommand API calls for you. For information and a list +// of supported programming languages, see Getting started with the driver +// (https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html) +// in the Amazon QLDB Developer Guide. +// +// * If you are working with the AWS Command Line Interface (AWS CLI), use +// the QLDB Shell. The shell is a command line interface that uses the QLDB +// Driver to interact with a ledger. For information, see Accessing Amazon +// QLDB using the QLDB Shell (https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.html). +// // See https://docs.aws.amazon.com/goto/WebAPI/qldb-session-2019-07-11 for more information on this service. // // See qldbsession package documentation for more information. diff --git a/service/qldbsession/errors.go b/service/qldbsession/errors.go index af48ba48df4..ce49edca8a0 100644 --- a/service/qldbsession/errors.go +++ b/service/qldbsession/errors.go @@ -18,7 +18,7 @@ const ( // ErrCodeInvalidSessionException for service response error code // "InvalidSessionException". // - // Returned if the session doesn't exist anymore because it timed-out or expired. + // Returned if the session doesn't exist anymore because it timed out or expired. ErrCodeInvalidSessionException = "InvalidSessionException" // ErrCodeLimitExceededException for service response error code @@ -31,7 +31,7 @@ const ( // "OccConflictException". // // Returned when a transaction cannot be written to the journal due to a failure - // in the verification phase of Optimistic Concurrency Control. + // in the verification phase of optimistic concurrency control (OCC). ErrCodeOccConflictException = "OccConflictException" // ErrCodeRateExceededException for service response error code diff --git a/service/workmail/api.go b/service/workmail/api.go index 709ad5ea41c..959b4386d58 100644 --- a/service/workmail/api.go +++ b/service/workmail/api.go @@ -1104,6 +1104,94 @@ func (c *WorkMail) DeleteResourceWithContext(ctx aws.Context, input *DeleteResou return out, req.Send() } +const opDeleteRetentionPolicy = "DeleteRetentionPolicy" + +// DeleteRetentionPolicyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteRetentionPolicy 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 DeleteRetentionPolicy for more information on using the DeleteRetentionPolicy +// 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 DeleteRetentionPolicyRequest method. +// req, resp := client.DeleteRetentionPolicyRequest(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/DeleteRetentionPolicy +func (c *WorkMail) DeleteRetentionPolicyRequest(input *DeleteRetentionPolicyInput) (req *request.Request, output *DeleteRetentionPolicyOutput) { + op := &request.Operation{ + Name: opDeleteRetentionPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteRetentionPolicyInput{} + } + + output = &DeleteRetentionPolicyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteRetentionPolicy API operation for Amazon WorkMail. +// +// Deletes the specified retention policy from the specified 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 DeleteRetentionPolicy 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 (Active or Synchronizing) to perform +// certain operations on the organization or its members. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteRetentionPolicy +func (c *WorkMail) DeleteRetentionPolicy(input *DeleteRetentionPolicyInput) (*DeleteRetentionPolicyOutput, error) { + req, out := c.DeleteRetentionPolicyRequest(input) + return out, req.Send() +} + +// DeleteRetentionPolicyWithContext is the same as DeleteRetentionPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteRetentionPolicy 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) DeleteRetentionPolicyWithContext(ctx aws.Context, input *DeleteRetentionPolicyInput, opts ...request.Option) (*DeleteRetentionPolicyOutput, error) { + req, out := c.DeleteRetentionPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteUser = "DeleteUser" // DeleteUserRequest generates a "aws/request.Request" representing the @@ -1958,6 +2046,97 @@ func (c *WorkMail) GetAccessControlEffectWithContext(ctx aws.Context, input *Get return out, req.Send() } +const opGetDefaultRetentionPolicy = "GetDefaultRetentionPolicy" + +// GetDefaultRetentionPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetDefaultRetentionPolicy 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 GetDefaultRetentionPolicy for more information on using the GetDefaultRetentionPolicy +// 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 GetDefaultRetentionPolicyRequest method. +// req, resp := client.GetDefaultRetentionPolicyRequest(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/GetDefaultRetentionPolicy +func (c *WorkMail) GetDefaultRetentionPolicyRequest(input *GetDefaultRetentionPolicyInput) (req *request.Request, output *GetDefaultRetentionPolicyOutput) { + op := &request.Operation{ + Name: opGetDefaultRetentionPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetDefaultRetentionPolicyInput{} + } + + output = &GetDefaultRetentionPolicyOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetDefaultRetentionPolicy API operation for Amazon WorkMail. +// +// Gets the default retention policy details for the specified 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 GetDefaultRetentionPolicy 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 (Active or Synchronizing) 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/GetDefaultRetentionPolicy +func (c *WorkMail) GetDefaultRetentionPolicy(input *GetDefaultRetentionPolicyInput) (*GetDefaultRetentionPolicyOutput, error) { + req, out := c.GetDefaultRetentionPolicyRequest(input) + return out, req.Send() +} + +// GetDefaultRetentionPolicyWithContext is the same as GetDefaultRetentionPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See GetDefaultRetentionPolicy 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) GetDefaultRetentionPolicyWithContext(ctx aws.Context, input *GetDefaultRetentionPolicyInput, opts ...request.Option) (*GetDefaultRetentionPolicyOutput, error) { + req, out := c.GetDefaultRetentionPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetMailboxDetails = "GetMailboxDetails" // GetMailboxDetailsRequest generates a "aws/request.Request" representing the @@ -3591,6 +3770,97 @@ func (c *WorkMail) PutMailboxPermissionsWithContext(ctx aws.Context, input *PutM return out, req.Send() } +const opPutRetentionPolicy = "PutRetentionPolicy" + +// PutRetentionPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutRetentionPolicy 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 PutRetentionPolicy for more information on using the PutRetentionPolicy +// 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 PutRetentionPolicyRequest method. +// req, resp := client.PutRetentionPolicyRequest(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/PutRetentionPolicy +func (c *WorkMail) PutRetentionPolicyRequest(input *PutRetentionPolicyInput) (req *request.Request, output *PutRetentionPolicyOutput) { + op := &request.Operation{ + Name: opPutRetentionPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutRetentionPolicyInput{} + } + + output = &PutRetentionPolicyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutRetentionPolicy API operation for Amazon WorkMail. +// +// Puts a retention policy to the specified 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 PutRetentionPolicy 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 (Active or Synchronizing) to perform +// certain operations on the organization or its members. +// +// * LimitExceededException +// The request exceeds the limit of the resource. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutRetentionPolicy +func (c *WorkMail) PutRetentionPolicy(input *PutRetentionPolicyInput) (*PutRetentionPolicyOutput, error) { + req, out := c.PutRetentionPolicyRequest(input) + return out, req.Send() +} + +// PutRetentionPolicyWithContext is the same as PutRetentionPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See PutRetentionPolicy 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) PutRetentionPolicyWithContext(ctx aws.Context, input *PutRetentionPolicyInput, opts ...request.Option) (*PutRetentionPolicyOutput, error) { + req, out := c.PutRetentionPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opRegisterToWorkMail = "RegisterToWorkMail" // RegisterToWorkMailRequest generates a "aws/request.Request" representing the @@ -5444,6 +5714,75 @@ func (s DeleteResourceOutput) GoString() string { return s.String() } +type DeleteRetentionPolicyInput struct { + _ struct{} `type:"structure"` + + // The retention policy ID. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The organization ID. + // + // OrganizationId is a required field + OrganizationId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteRetentionPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteRetentionPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRetentionPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteRetentionPolicyInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *DeleteRetentionPolicyInput) SetId(v string) *DeleteRetentionPolicyInput { + s.Id = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *DeleteRetentionPolicyInput) SetOrganizationId(v string) *DeleteRetentionPolicyInput { + s.OrganizationId = &v + return s +} + +type DeleteRetentionPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteRetentionPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteRetentionPolicyOutput) GoString() string { + return s.String() +} + type DeleteUserInput struct { _ struct{} `type:"structure"` @@ -6644,6 +6983,72 @@ func (s *EntityStateException) RequestID() string { return s.RespMetadata.RequestID } +// The configuration applied to an organization's folders by its retention policy. +type FolderConfiguration struct { + _ struct{} `type:"structure"` + + // The action to take on the folder contents at the end of the folder configuration + // period. + // + // Action is a required field + Action *string `type:"string" required:"true" enum:"RetentionAction"` + + // The folder name. + // + // Name is a required field + Name *string `type:"string" required:"true" enum:"FolderName"` + + // The period of time at which the folder configuration action is applied. + Period *int64 `min:"1" type:"integer"` +} + +// String returns the string representation +func (s FolderConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FolderConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FolderConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FolderConfiguration"} + if s.Action == nil { + invalidParams.Add(request.NewErrParamRequired("Action")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Period != nil && *s.Period < 1 { + invalidParams.Add(request.NewErrParamMinValue("Period", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAction sets the Action field's value. +func (s *FolderConfiguration) SetAction(v string) *FolderConfiguration { + s.Action = &v + return s +} + +// SetName sets the Name field's value. +func (s *FolderConfiguration) SetName(v string) *FolderConfiguration { + s.Name = &v + return s +} + +// SetPeriod sets the Period field's value. +func (s *FolderConfiguration) SetPeriod(v int64) *FolderConfiguration { + s.Period = &v + return s +} + type GetAccessControlEffectInput struct { _ struct{} `type:"structure"` @@ -6766,6 +7171,94 @@ func (s *GetAccessControlEffectOutput) SetMatchedRules(v []*string) *GetAccessCo return s } +type GetDefaultRetentionPolicyInput struct { + _ struct{} `type:"structure"` + + // The organization ID. + // + // OrganizationId is a required field + OrganizationId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDefaultRetentionPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDefaultRetentionPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDefaultRetentionPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDefaultRetentionPolicyInput"} + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *GetDefaultRetentionPolicyInput) SetOrganizationId(v string) *GetDefaultRetentionPolicyInput { + s.OrganizationId = &v + return s +} + +type GetDefaultRetentionPolicyOutput struct { + _ struct{} `type:"structure"` + + // The retention policy description. + Description *string `type:"string"` + + // The retention policy folder configurations. + FolderConfigurations []*FolderConfiguration `type:"list"` + + // The retention policy ID. + Id *string `min:"1" type:"string"` + + // The retention policy name. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetDefaultRetentionPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDefaultRetentionPolicyOutput) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *GetDefaultRetentionPolicyOutput) SetDescription(v string) *GetDefaultRetentionPolicyOutput { + s.Description = &v + return s +} + +// SetFolderConfigurations sets the FolderConfigurations field's value. +func (s *GetDefaultRetentionPolicyOutput) SetFolderConfigurations(v []*FolderConfiguration) *GetDefaultRetentionPolicyOutput { + s.FolderConfigurations = v + return s +} + +// SetId sets the Id field's value. +func (s *GetDefaultRetentionPolicyOutput) SetId(v string) *GetDefaultRetentionPolicyOutput { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *GetDefaultRetentionPolicyOutput) SetName(v string) *GetDefaultRetentionPolicyOutput { + s.Name = &v + return s +} + type GetMailboxDetailsInput struct { _ struct{} `type:"structure"` @@ -8822,6 +9315,120 @@ func (s PutMailboxPermissionsOutput) GoString() string { return s.String() } +type PutRetentionPolicyInput struct { + _ struct{} `type:"structure"` + + // The retention policy description. + Description *string `type:"string"` + + // The retention policy folder configurations. + // + // FolderConfigurations is a required field + FolderConfigurations []*FolderConfiguration `type:"list" required:"true"` + + // The retention policy ID. + Id *string `min:"1" type:"string"` + + // The retention policy name. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The organization ID. + // + // OrganizationId is a required field + OrganizationId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s PutRetentionPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutRetentionPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutRetentionPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutRetentionPolicyInput"} + if s.FolderConfigurations == nil { + invalidParams.Add(request.NewErrParamRequired("FolderConfigurations")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 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.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.FolderConfigurations != nil { + for i, v := range s.FolderConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FolderConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *PutRetentionPolicyInput) SetDescription(v string) *PutRetentionPolicyInput { + s.Description = &v + return s +} + +// SetFolderConfigurations sets the FolderConfigurations field's value. +func (s *PutRetentionPolicyInput) SetFolderConfigurations(v []*FolderConfiguration) *PutRetentionPolicyInput { + s.FolderConfigurations = v + return s +} + +// SetId sets the Id field's value. +func (s *PutRetentionPolicyInput) SetId(v string) *PutRetentionPolicyInput { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *PutRetentionPolicyInput) SetName(v string) *PutRetentionPolicyInput { + s.Name = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *PutRetentionPolicyInput) SetOrganizationId(v string) *PutRetentionPolicyInput { + s.OrganizationId = &v + return s +} + +type PutRetentionPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutRetentionPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutRetentionPolicyOutput) GoString() string { + return s.String() +} + type RegisterToWorkMailInput struct { _ struct{} `type:"structure"` @@ -9866,6 +10473,23 @@ const ( EntityStateDeleted = "DELETED" ) +const ( + // FolderNameInbox is a FolderName enum value + FolderNameInbox = "INBOX" + + // FolderNameDeletedItems is a FolderName enum value + FolderNameDeletedItems = "DELETED_ITEMS" + + // FolderNameSentItems is a FolderName enum value + FolderNameSentItems = "SENT_ITEMS" + + // FolderNameDrafts is a FolderName enum value + FolderNameDrafts = "DRAFTS" + + // FolderNameJunkEmail is a FolderName enum value + FolderNameJunkEmail = "JUNK_EMAIL" +) + const ( // MemberTypeGroup is a MemberType enum value MemberTypeGroup = "GROUP" @@ -9893,6 +10517,17 @@ const ( ResourceTypeEquipment = "EQUIPMENT" ) +const ( + // RetentionActionNone is a RetentionAction enum value + RetentionActionNone = "NONE" + + // RetentionActionDelete is a RetentionAction enum value + RetentionActionDelete = "DELETE" + + // RetentionActionPermanentlyDelete is a RetentionAction enum value + RetentionActionPermanentlyDelete = "PERMANENTLY_DELETE" +) + const ( // UserRoleUser is a UserRole enum value UserRoleUser = "USER" diff --git a/service/workmail/workmailiface/interface.go b/service/workmail/workmailiface/interface.go index 1ec163d418f..1cf1af9a992 100644 --- a/service/workmail/workmailiface/interface.go +++ b/service/workmail/workmailiface/interface.go @@ -104,6 +104,10 @@ type WorkMailAPI interface { DeleteResourceWithContext(aws.Context, *workmail.DeleteResourceInput, ...request.Option) (*workmail.DeleteResourceOutput, error) DeleteResourceRequest(*workmail.DeleteResourceInput) (*request.Request, *workmail.DeleteResourceOutput) + DeleteRetentionPolicy(*workmail.DeleteRetentionPolicyInput) (*workmail.DeleteRetentionPolicyOutput, error) + DeleteRetentionPolicyWithContext(aws.Context, *workmail.DeleteRetentionPolicyInput, ...request.Option) (*workmail.DeleteRetentionPolicyOutput, error) + DeleteRetentionPolicyRequest(*workmail.DeleteRetentionPolicyInput) (*request.Request, *workmail.DeleteRetentionPolicyOutput) + DeleteUser(*workmail.DeleteUserInput) (*workmail.DeleteUserOutput, error) DeleteUserWithContext(aws.Context, *workmail.DeleteUserInput, ...request.Option) (*workmail.DeleteUserOutput, error) DeleteUserRequest(*workmail.DeleteUserInput) (*request.Request, *workmail.DeleteUserOutput) @@ -140,6 +144,10 @@ type WorkMailAPI interface { GetAccessControlEffectWithContext(aws.Context, *workmail.GetAccessControlEffectInput, ...request.Option) (*workmail.GetAccessControlEffectOutput, error) GetAccessControlEffectRequest(*workmail.GetAccessControlEffectInput) (*request.Request, *workmail.GetAccessControlEffectOutput) + GetDefaultRetentionPolicy(*workmail.GetDefaultRetentionPolicyInput) (*workmail.GetDefaultRetentionPolicyOutput, error) + GetDefaultRetentionPolicyWithContext(aws.Context, *workmail.GetDefaultRetentionPolicyInput, ...request.Option) (*workmail.GetDefaultRetentionPolicyOutput, error) + GetDefaultRetentionPolicyRequest(*workmail.GetDefaultRetentionPolicyInput) (*request.Request, *workmail.GetDefaultRetentionPolicyOutput) + GetMailboxDetails(*workmail.GetMailboxDetailsInput) (*workmail.GetMailboxDetailsOutput, error) GetMailboxDetailsWithContext(aws.Context, *workmail.GetMailboxDetailsInput, ...request.Option) (*workmail.GetMailboxDetailsOutput, error) GetMailboxDetailsRequest(*workmail.GetMailboxDetailsInput) (*request.Request, *workmail.GetMailboxDetailsOutput) @@ -216,6 +224,10 @@ type WorkMailAPI interface { PutMailboxPermissionsWithContext(aws.Context, *workmail.PutMailboxPermissionsInput, ...request.Option) (*workmail.PutMailboxPermissionsOutput, error) PutMailboxPermissionsRequest(*workmail.PutMailboxPermissionsInput) (*request.Request, *workmail.PutMailboxPermissionsOutput) + PutRetentionPolicy(*workmail.PutRetentionPolicyInput) (*workmail.PutRetentionPolicyOutput, error) + PutRetentionPolicyWithContext(aws.Context, *workmail.PutRetentionPolicyInput, ...request.Option) (*workmail.PutRetentionPolicyOutput, error) + PutRetentionPolicyRequest(*workmail.PutRetentionPolicyInput) (*request.Request, *workmail.PutRetentionPolicyOutput) + RegisterToWorkMail(*workmail.RegisterToWorkMailInput) (*workmail.RegisterToWorkMailOutput, error) RegisterToWorkMailWithContext(aws.Context, *workmail.RegisterToWorkMailInput, ...request.Option) (*workmail.RegisterToWorkMailOutput, error) RegisterToWorkMailRequest(*workmail.RegisterToWorkMailInput) (*request.Request, *workmail.RegisterToWorkMailOutput)