com.amazonaws.services.secretsmanager.model.PutSecretValueRequest Maven / Gradle / Ivy
/*
* Copyright 2016-2021 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.secretsmanager.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.AmazonWebServiceRequest;
/**
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class PutSecretValueRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
/**
*
* Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name
* (ARN) or the friendly name of the secret. The secret must already exist.
*
*
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN
* too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the
* end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one
* secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets
* Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those
* characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause
* unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen
* followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager, you
* receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your
* permissions.
*
*
*/
private String secretId;
/**
*
* (Optional) Specifies a unique identifier for the new version of the secret.
*
*
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The
* CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead
* generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a
* ClientRequestToken
yourself for new versions and include that value in the request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of
* duplicate versions if there are failures and retries during the Lambda rotation function's processing. We
* recommend that you generate a UUID-type
* value to ensure uniqueness within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a new
* version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the operation
* is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because you
* cannot modify an existing secret version. You can only create new versions to store new secret values.
*
*
*
*
* This value becomes the VersionId
of the new version.
*
*/
private String clientRequestToken;
/**
*
* (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To use this
* parameter in the command-line tools, we recommend that you store your binary data in a file and then use the
* appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both be
* empty.
*
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
*
*/
private java.nio.ByteBuffer secretBinary;
/**
*
* (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. Either
* SecretString
or SecretBinary
must have a value, but not both. They cannot both be
* empty.
*
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected secret
* text in only the SecretString
parameter. The Secrets Manager console stores the information as a
* JSON structure of key/value pairs that the default Lambda rotation function knows how to parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs.
* For information on how to format a JSON parameter for the various command line tool environments, see Using JSON for
* Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to
* avoid confusion with the double quotes required in the JSON text.
*
*/
private String secretString;
/**
*
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These staging
* labels are used to track the versions through the rotation process by the Lambda rotation function.
*
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's already
* associated with a different version of the same secret then that staging label is automatically removed from the
* other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the staging
* label AWSCURRENT
to this new version.
*
*/
private java.util.List versionStages;
/**
*
* Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name
* (ARN) or the friendly name of the secret. The secret must already exist.
*
*
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN
* too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the
* end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one
* secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets
* Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those
* characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause
* unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen
* followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager, you
* receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your
* permissions.
*
*
*
* @param secretId
* Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource
* Name (ARN) or the friendly name of the secret. The secret must already exist.
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial
* ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager
* adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it
* uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six
* characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that
* as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete
* ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t
* create secret names ending with a hyphen followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager,
* you receive either a ResourceNotFoundException or an AccessDeniedException error, depending
* on your permissions.
*
*/
public void setSecretId(String secretId) {
this.secretId = secretId;
}
/**
*
* Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name
* (ARN) or the friendly name of the secret. The secret must already exist.
*
*
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN
* too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the
* end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one
* secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets
* Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those
* characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause
* unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen
* followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager, you
* receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your
* permissions.
*
*
*
* @return Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource
* Name (ARN) or the friendly name of the secret. The secret must already exist.
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial
* ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager
* adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it
* uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by
* six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use
* that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a
* complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you
* don’t create secret names ending with a hyphen followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager,
* you receive either a ResourceNotFoundException or an AccessDeniedException error, depending
* on your permissions.
*
*/
public String getSecretId() {
return this.secretId;
}
/**
*
* Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name
* (ARN) or the friendly name of the secret. The secret must already exist.
*
*
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN
* too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the
* end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one
* secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets
* Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those
* characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause
* unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen
* followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager, you
* receive either a ResourceNotFoundException or an AccessDeniedException error, depending on your
* permissions.
*
*
*
* @param secretId
* Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource
* Name (ARN) or the friendly name of the secret. The secret must already exist.
*
* If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial
* ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager
* adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it
* uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six
* characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that
* as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete
* ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t
* create secret names ending with a hyphen followed by six characters.
*
*
* If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you
* must not include the random suffix. If you do include the random suffix added by Secrets Manager,
* you receive either a ResourceNotFoundException or an AccessDeniedException error, depending
* on your permissions.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PutSecretValueRequest withSecretId(String secretId) {
setSecretId(secretId);
return this;
}
/**
*
* (Optional) Specifies a unique identifier for the new version of the secret.
*
*
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The
* CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead
* generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a
* ClientRequestToken
yourself for new versions and include that value in the request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of
* duplicate versions if there are failures and retries during the Lambda rotation function's processing. We
* recommend that you generate a UUID-type
* value to ensure uniqueness within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a new
* version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the operation
* is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because you
* cannot modify an existing secret version. You can only create new versions to store new secret values.
*
*
*
*
* This value becomes the VersionId
of the new version.
*
*
* @param clientRequestToken
* (Optional) Specifies a unique identifier for the new version of the secret.
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter
* empty. The CLI or SDK generates a random UUID for you and includes that in the request. If you don't use
* the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must
* generate a ClientRequestToken
yourself for new versions and include that value in the
* request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of
* duplicate versions if there are failures and retries during the Lambda rotation function's processing. We
* recommend that you generate a UUID-type value to ensure uniqueness
* within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a
* new version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the
* operation is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because
* you cannot modify an existing secret version. You can only create new versions to store new secret values.
*
*
*
*
* This value becomes the VersionId
of the new version.
*/
public void setClientRequestToken(String clientRequestToken) {
this.clientRequestToken = clientRequestToken;
}
/**
*
* (Optional) Specifies a unique identifier for the new version of the secret.
*
*
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The
* CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead
* generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a
* ClientRequestToken
yourself for new versions and include that value in the request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of
* duplicate versions if there are failures and retries during the Lambda rotation function's processing. We
* recommend that you generate a UUID-type
* value to ensure uniqueness within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a new
* version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the operation
* is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because you
* cannot modify an existing secret version. You can only create new versions to store new secret values.
*
*
*
*
* This value becomes the VersionId
of the new version.
*
*
* @return (Optional) Specifies a unique identifier for the new version of the secret.
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter
* empty. The CLI or SDK generates a random UUID for you and includes that in the request. If you don't use
* the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must
* generate a ClientRequestToken
yourself for new versions and include that value in the
* request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation
* of duplicate versions if there are failures and retries during the Lambda rotation function's processing.
* We recommend that you generate a UUID-type value to ensure uniqueness
* within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a
* new version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the
* operation is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because
* you cannot modify an existing secret version. You can only create new versions to store new secret
* values.
*
*
*
*
* This value becomes the VersionId
of the new version.
*/
public String getClientRequestToken() {
return this.clientRequestToken;
}
/**
*
* (Optional) Specifies a unique identifier for the new version of the secret.
*
*
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The
* CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead
* generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a
* ClientRequestToken
yourself for new versions and include that value in the request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of
* duplicate versions if there are failures and retries during the Lambda rotation function's processing. We
* recommend that you generate a UUID-type
* value to ensure uniqueness within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a new
* version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the operation
* is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because you
* cannot modify an existing secret version. You can only create new versions to store new secret values.
*
*
*
*
* This value becomes the VersionId
of the new version.
*
*
* @param clientRequestToken
* (Optional) Specifies a unique identifier for the new version of the secret.
*
* If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter
* empty. The CLI or SDK generates a random UUID for you and includes that in the request. If you don't use
* the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must
* generate a ClientRequestToken
yourself for new versions and include that value in the
* request.
*
*
*
* This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of
* duplicate versions if there are failures and retries during the Lambda rotation function's processing. We
* recommend that you generate a UUID-type value to ensure uniqueness
* within the specified secret.
*
*
* -
*
* If the ClientRequestToken
value isn't already associated with a version of the secret then a
* new version of the secret is created.
*
*
* -
*
* If a version with this value already exists and that version's SecretString
or
* SecretBinary
values are the same as those in the request then the request is ignored (the
* operation is idempotent).
*
*
* -
*
* If a version with this value already exists and the version of the SecretString
and
* SecretBinary
values are different from those in the request then the request fails because
* you cannot modify an existing secret version. You can only create new versions to store new secret values.
*
*
*
*
* This value becomes the VersionId
of the new version.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PutSecretValueRequest withClientRequestToken(String clientRequestToken) {
setClientRequestToken(clientRequestToken);
return this;
}
/**
*
* (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To use this
* parameter in the command-line tools, we recommend that you store your binary data in a file and then use the
* appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both be
* empty.
*
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
*
*
* The AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service.
* Users of the SDK should not perform Base64 encoding on this field.
*
*
* Warning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will
* be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or
* ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future
* major version of the SDK.
*
*
* @param secretBinary
* (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To
* use this parameter in the command-line tools, we recommend that you store your binary data in a file and
* then use the appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both
* be empty.
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
*/
public void setSecretBinary(java.nio.ByteBuffer secretBinary) {
this.secretBinary = secretBinary;
}
/**
*
* (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To use this
* parameter in the command-line tools, we recommend that you store your binary data in a file and then use the
* appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both be
* empty.
*
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
*
*
* {@code ByteBuffer}s are stateful. Calling their {@code get} methods changes their {@code position}. We recommend
* using {@link java.nio.ByteBuffer#asReadOnlyBuffer()} to create a read-only view of the buffer with an independent
* {@code position}, and calling {@code get} methods on this rather than directly on the returned {@code ByteBuffer}.
* Doing so will ensure that anyone else using the {@code ByteBuffer} will not be affected by changes to the
* {@code position}.
*
*
* @return (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To
* use this parameter in the command-line tools, we recommend that you store your binary data in a file and
* then use the appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both
* be empty.
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
*/
public java.nio.ByteBuffer getSecretBinary() {
return this.secretBinary;
}
/**
*
* (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To use this
* parameter in the command-line tools, we recommend that you store your binary data in a file and then use the
* appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both be
* empty.
*
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
*
*
* The AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service.
* Users of the SDK should not perform Base64 encoding on this field.
*
*
* Warning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will
* be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or
* ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future
* major version of the SDK.
*
*
* @param secretBinary
* (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To
* use this parameter in the command-line tools, we recommend that you store your binary data in a file and
* then use the appropriate technique for your tool to pass the contents of the file as a parameter. Either
* SecretBinary
or SecretString
must have a value, but not both. They cannot both
* be empty.
*
* This parameter is not accessible if the secret using the Secrets Manager console.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PutSecretValueRequest withSecretBinary(java.nio.ByteBuffer secretBinary) {
setSecretBinary(secretBinary);
return this;
}
/**
*
* (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. Either
* SecretString
or SecretBinary
must have a value, but not both. They cannot both be
* empty.
*
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected secret
* text in only the SecretString
parameter. The Secrets Manager console stores the information as a
* JSON structure of key/value pairs that the default Lambda rotation function knows how to parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs.
* For information on how to format a JSON parameter for the various command line tool environments, see Using JSON for
* Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to
* avoid confusion with the double quotes required in the JSON text.
*
*
* @param secretString
* (Optional) Specifies text data that you want to encrypt and store in this new version of the secret.
* Either SecretString
or SecretBinary
must have a value, but not both. They cannot
* both be empty.
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected
* secret text in only the SecretString
parameter. The Secrets Manager console stores the
* information as a JSON structure of key/value pairs that the default Lambda rotation function knows how to
* parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value
* pairs. For information on how to format a JSON parameter for the various command line tool environments,
* see Using
* JSON for Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single
* quotes to avoid confusion with the double quotes required in the JSON text.
*/
public void setSecretString(String secretString) {
this.secretString = secretString;
}
/**
*
* (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. Either
* SecretString
or SecretBinary
must have a value, but not both. They cannot both be
* empty.
*
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected secret
* text in only the SecretString
parameter. The Secrets Manager console stores the information as a
* JSON structure of key/value pairs that the default Lambda rotation function knows how to parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs.
* For information on how to format a JSON parameter for the various command line tool environments, see Using JSON for
* Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to
* avoid confusion with the double quotes required in the JSON text.
*
*
* @return (Optional) Specifies text data that you want to encrypt and store in this new version of the secret.
* Either SecretString
or SecretBinary
must have a value, but not both. They
* cannot both be empty.
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected
* secret text in only the SecretString
parameter. The Secrets Manager console stores the
* information as a JSON structure of key/value pairs that the default Lambda rotation function knows how to
* parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value
* pairs. For information on how to format a JSON parameter for the various command line tool environments,
* see Using
* JSON for Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single
* quotes to avoid confusion with the double quotes required in the JSON text.
*/
public String getSecretString() {
return this.secretString;
}
/**
*
* (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. Either
* SecretString
or SecretBinary
must have a value, but not both. They cannot both be
* empty.
*
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected secret
* text in only the SecretString
parameter. The Secrets Manager console stores the information as a
* JSON structure of key/value pairs that the default Lambda rotation function knows how to parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs.
* For information on how to format a JSON parameter for the various command line tool environments, see Using JSON for
* Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to
* avoid confusion with the double quotes required in the JSON text.
*
*
* @param secretString
* (Optional) Specifies text data that you want to encrypt and store in this new version of the secret.
* Either SecretString
or SecretBinary
must have a value, but not both. They cannot
* both be empty.
*
* If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected
* secret text in only the SecretString
parameter. The Secrets Manager console stores the
* information as a JSON structure of key/value pairs that the default Lambda rotation function knows how to
* parse.
*
*
* For storing multiple values, we recommend that you use a JSON text string argument and specify key/value
* pairs. For information on how to format a JSON parameter for the various command line tool environments,
* see Using
* JSON for Parameters in the AWS CLI User Guide.
*
*
* For example:
*
*
* [{"username":"bob"},{"password":"abc123xyz456"}]
*
*
* If your command-line tool or SDK requires quotation marks around the parameter, you should use single
* quotes to avoid confusion with the double quotes required in the JSON text.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PutSecretValueRequest withSecretString(String secretString) {
setSecretString(secretString);
return this;
}
/**
*
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These staging
* labels are used to track the versions through the rotation process by the Lambda rotation function.
*
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's already
* associated with a different version of the same secret then that staging label is automatically removed from the
* other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the staging
* label AWSCURRENT
to this new version.
*
*
* @return (Optional) Specifies a list of staging labels that are attached to this version of the secret. These
* staging labels are used to track the versions through the rotation process by the Lambda rotation
* function.
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's
* already associated with a different version of the same secret then that staging label is automatically
* removed from the other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the
* staging label AWSCURRENT
to this new version.
*/
public java.util.List getVersionStages() {
return versionStages;
}
/**
*
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These staging
* labels are used to track the versions through the rotation process by the Lambda rotation function.
*
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's already
* associated with a different version of the same secret then that staging label is automatically removed from the
* other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the staging
* label AWSCURRENT
to this new version.
*
*
* @param versionStages
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These
* staging labels are used to track the versions through the rotation process by the Lambda rotation
* function.
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's
* already associated with a different version of the same secret then that staging label is automatically
* removed from the other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the
* staging label AWSCURRENT
to this new version.
*/
public void setVersionStages(java.util.Collection versionStages) {
if (versionStages == null) {
this.versionStages = null;
return;
}
this.versionStages = new java.util.ArrayList(versionStages);
}
/**
*
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These staging
* labels are used to track the versions through the rotation process by the Lambda rotation function.
*
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's already
* associated with a different version of the same secret then that staging label is automatically removed from the
* other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the staging
* label AWSCURRENT
to this new version.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setVersionStages(java.util.Collection)} or {@link #withVersionStages(java.util.Collection)} if you want
* to override the existing values.
*
*
* @param versionStages
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These
* staging labels are used to track the versions through the rotation process by the Lambda rotation
* function.
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's
* already associated with a different version of the same secret then that staging label is automatically
* removed from the other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the
* staging label AWSCURRENT
to this new version.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PutSecretValueRequest withVersionStages(String... versionStages) {
if (this.versionStages == null) {
setVersionStages(new java.util.ArrayList(versionStages.length));
}
for (String ele : versionStages) {
this.versionStages.add(ele);
}
return this;
}
/**
*
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These staging
* labels are used to track the versions through the rotation process by the Lambda rotation function.
*
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's already
* associated with a different version of the same secret then that staging label is automatically removed from the
* other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the staging
* label AWSCURRENT
to this new version.
*
*
* @param versionStages
* (Optional) Specifies a list of staging labels that are attached to this version of the secret. These
* staging labels are used to track the versions through the rotation process by the Lambda rotation
* function.
*
* A staging label must be unique to a single version of the secret. If you specify a staging label that's
* already associated with a different version of the same secret then that staging label is automatically
* removed from the other version and attached to this version.
*
*
* If you do not specify a value for VersionStages
then Secrets Manager automatically moves the
* staging label AWSCURRENT
to this new version.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PutSecretValueRequest withVersionStages(java.util.Collection versionStages) {
setVersionStages(versionStages);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getSecretId() != null)
sb.append("SecretId: ").append(getSecretId()).append(",");
if (getClientRequestToken() != null)
sb.append("ClientRequestToken: ").append(getClientRequestToken()).append(",");
if (getSecretBinary() != null)
sb.append("SecretBinary: ").append("***Sensitive Data Redacted***").append(",");
if (getSecretString() != null)
sb.append("SecretString: ").append("***Sensitive Data Redacted***").append(",");
if (getVersionStages() != null)
sb.append("VersionStages: ").append(getVersionStages());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof PutSecretValueRequest == false)
return false;
PutSecretValueRequest other = (PutSecretValueRequest) obj;
if (other.getSecretId() == null ^ this.getSecretId() == null)
return false;
if (other.getSecretId() != null && other.getSecretId().equals(this.getSecretId()) == false)
return false;
if (other.getClientRequestToken() == null ^ this.getClientRequestToken() == null)
return false;
if (other.getClientRequestToken() != null && other.getClientRequestToken().equals(this.getClientRequestToken()) == false)
return false;
if (other.getSecretBinary() == null ^ this.getSecretBinary() == null)
return false;
if (other.getSecretBinary() != null && other.getSecretBinary().equals(this.getSecretBinary()) == false)
return false;
if (other.getSecretString() == null ^ this.getSecretString() == null)
return false;
if (other.getSecretString() != null && other.getSecretString().equals(this.getSecretString()) == false)
return false;
if (other.getVersionStages() == null ^ this.getVersionStages() == null)
return false;
if (other.getVersionStages() != null && other.getVersionStages().equals(this.getVersionStages()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getSecretId() == null) ? 0 : getSecretId().hashCode());
hashCode = prime * hashCode + ((getClientRequestToken() == null) ? 0 : getClientRequestToken().hashCode());
hashCode = prime * hashCode + ((getSecretBinary() == null) ? 0 : getSecretBinary().hashCode());
hashCode = prime * hashCode + ((getSecretString() == null) ? 0 : getSecretString().hashCode());
hashCode = prime * hashCode + ((getVersionStages() == null) ? 0 : getVersionStages().hashCode());
return hashCode;
}
@Override
public PutSecretValueRequest clone() {
return (PutSecretValueRequest) super.clone();
}
}