/* * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.kinesis.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *
* Enables or updates server-side encryption using an AWS KMS key for a * specified stream. *
*
* Starting encryption is an asynchronous operation. Upon receiving the request,
* Kinesis Data Streams returns immediately and sets the status of the stream to
* UPDATING
. After the update is complete, Kinesis Data Streams
* sets the status of the stream back to ACTIVE
. Updating or
* applying encryption normally takes a few seconds to complete, but it can take
* minutes. You can continue to read and write data to your stream while its
* status is UPDATING
. Once the status of the stream is
* ACTIVE
, encryption begins for records written to the stream.
*
* API Limits: You can successfully apply a new AWS KMS key for server-side * encryption 25 times in a rolling 24-hour period. *
*
* Note: It can take up to five seconds after the stream is in an
* ACTIVE
status before all records written to the stream are
* encrypted. After you enable encryption, you can verify that encryption is
* applied by inspecting the API response from PutRecord
or
* PutRecords
.
*
* The name of the stream for which to start encrypting records. *
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*/
private String streamName;
/**
*
* The encryption type to use. The only valid value is KMS
.
*
* Constraints:
* Allowed Values: NONE, KMS
*/
private String encryptionType;
/**
*
* The GUID for the customer-managed AWS KMS key to use for encryption. This
* value can be a globally unique identifier, a fully specified Amazon
* Resource Name (ARN) to either an alias or a key, or an alias name
* prefixed by "alias/".You can also use a master key owned by Kinesis Data
* Streams by specifying the alias aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams: alias/aws/kinesis
*
* Constraints:
* Length: 1 - 2048
*/
private String keyId;
/**
*
* The name of the stream for which to start encrypting records. *
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @return
* The name of the stream for which to start encrypting records. *
*/ public String getStreamName() { return streamName; } /** ** The name of the stream for which to start encrypting records. *
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @param streamName
* The name of the stream for which to start encrypting records. *
*/ public void setStreamName(String streamName) { this.streamName = streamName; } /** ** The name of the stream for which to start encrypting records. *
** Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @param streamName
* The name of the stream for which to start encrypting records. *
* @return A reference to this updated object so that method calls can be * chained together. */ public StartStreamEncryptionRequest withStreamName(String streamName) { this.streamName = streamName; return this; } /** *
* The encryption type to use. The only valid value is KMS
.
*
* Constraints:
* Allowed Values: NONE, KMS
*
* @return
* The encryption type to use. The only valid value is
* KMS
.
*
* The encryption type to use. The only valid value is KMS
.
*
* Constraints:
* Allowed Values: NONE, KMS
*
* @param encryptionType
* The encryption type to use. The only valid value is
* KMS
.
*
* The encryption type to use. The only valid value is KMS
.
*
* Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Allowed Values: NONE, KMS
*
* @param encryptionType
* The encryption type to use. The only valid value is
* KMS
.
*
* The encryption type to use. The only valid value is KMS
.
*
* Constraints:
* Allowed Values: NONE, KMS
*
* @param encryptionType
* The encryption type to use. The only valid value is
* KMS
.
*
* The encryption type to use. The only valid value is KMS
.
*
* Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Allowed Values: NONE, KMS
*
* @param encryptionType
* The encryption type to use. The only valid value is
* KMS
.
*
* The GUID for the customer-managed AWS KMS key to use for encryption. This
* value can be a globally unique identifier, a fully specified Amazon
* Resource Name (ARN) to either an alias or a key, or an alias name
* prefixed by "alias/".You can also use a master key owned by Kinesis Data
* Streams by specifying the alias aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams: alias/aws/kinesis
*
* Constraints:
* Length: 1 - 2048
*
* @return
* The GUID for the customer-managed AWS KMS key to use for
* encryption. This value can be a globally unique identifier, a
* fully specified Amazon Resource Name (ARN) to either an alias or
* a key, or an alias name prefixed by "alias/".You can also use a
* master key owned by Kinesis Data Streams by specifying the alias
* aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams:
* alias/aws/kinesis
*
* The GUID for the customer-managed AWS KMS key to use for encryption. This
* value can be a globally unique identifier, a fully specified Amazon
* Resource Name (ARN) to either an alias or a key, or an alias name
* prefixed by "alias/".You can also use a master key owned by Kinesis Data
* Streams by specifying the alias aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams: alias/aws/kinesis
*
* Constraints:
* Length: 1 - 2048
*
* @param keyId
* The GUID for the customer-managed AWS KMS key to use for
* encryption. This value can be a globally unique identifier, a
* fully specified Amazon Resource Name (ARN) to either an alias
* or a key, or an alias name prefixed by "alias/".You can also
* use a master key owned by Kinesis Data Streams by specifying
* the alias aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams:
* alias/aws/kinesis
*
* The GUID for the customer-managed AWS KMS key to use for encryption. This
* value can be a globally unique identifier, a fully specified Amazon
* Resource Name (ARN) to either an alias or a key, or an alias name
* prefixed by "alias/".You can also use a master key owned by Kinesis Data
* Streams by specifying the alias aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams: alias/aws/kinesis
*
* Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Length: 1 - 2048
*
* @param keyId
* The GUID for the customer-managed AWS KMS key to use for
* encryption. This value can be a globally unique identifier, a
* fully specified Amazon Resource Name (ARN) to either an alias
* or a key, or an alias name prefixed by "alias/".You can also
* use a master key owned by Kinesis Data Streams by specifying
* the alias aws/kinesis
.
*
* Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
* Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
* Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
* Alias name example: alias/MyAliasName
*
* Master key owned by Kinesis Data Streams:
* alias/aws/kinesis
*