/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace SecretsManager { namespace Model { /** */ class AWS_SECRETSMANAGER_API PutSecretValueRequest : public SecretsManagerRequest { public: PutSecretValueRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PutSecretValue"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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.

*/ inline const Aws::String& GetSecretId() const{ return m_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.

*/ inline bool SecretIdHasBeenSet() const { return m_secretIdHasBeenSet; } /** *

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.

*/ inline void SetSecretId(const Aws::String& value) { m_secretIdHasBeenSet = true; m_secretId = value; } /** *

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.

*/ inline void SetSecretId(Aws::String&& value) { m_secretIdHasBeenSet = true; m_secretId = std::move(value); } /** *

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.

*/ inline void SetSecretId(const char* value) { m_secretIdHasBeenSet = true; m_secretId.assign(value); } /** *

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.

*/ inline PutSecretValueRequest& WithSecretId(const Aws::String& value) { SetSecretId(value); return *this;} /** *

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.

*/ inline PutSecretValueRequest& WithSecretId(Aws::String&& value) { SetSecretId(std::move(value)); return *this;} /** *

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.

*/ inline PutSecretValueRequest& WithSecretId(const char* value) { SetSecretId(value); 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.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_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.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

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

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

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

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

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

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

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

*/ inline PutSecretValueRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); 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.

*/ inline PutSecretValueRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); 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.

*/ inline PutSecretValueRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); 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.

*/ inline const Aws::Utils::CryptoBuffer& GetSecretBinary() const{ return m_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.

*/ inline bool SecretBinaryHasBeenSet() const { return m_secretBinaryHasBeenSet; } /** *

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

*/ inline void SetSecretBinary(const Aws::Utils::CryptoBuffer& value) { m_secretBinaryHasBeenSet = true; m_secretBinary = value; } /** *

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

*/ inline void SetSecretBinary(Aws::Utils::CryptoBuffer&& value) { m_secretBinaryHasBeenSet = true; m_secretBinary = std::move(value); } /** *

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

*/ inline PutSecretValueRequest& WithSecretBinary(const Aws::Utils::CryptoBuffer& value) { SetSecretBinary(value); 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.

*/ inline PutSecretValueRequest& WithSecretBinary(Aws::Utils::CryptoBuffer&& value) { SetSecretBinary(std::move(value)); 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.

*/ inline const Aws::String& GetSecretString() const{ return m_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.

*/ inline bool SecretStringHasBeenSet() const { return m_secretStringHasBeenSet; } /** *

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

*/ inline void SetSecretString(const Aws::String& value) { m_secretStringHasBeenSet = true; m_secretString = value; } /** *

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

*/ inline void SetSecretString(Aws::String&& value) { m_secretStringHasBeenSet = true; m_secretString = std::move(value); } /** *

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

*/ inline void SetSecretString(const char* value) { m_secretStringHasBeenSet = true; m_secretString.assign(value); } /** *

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

*/ inline PutSecretValueRequest& WithSecretString(const Aws::String& value) { SetSecretString(value); 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.

*/ inline PutSecretValueRequest& WithSecretString(Aws::String&& value) { SetSecretString(std::move(value)); 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.

*/ inline PutSecretValueRequest& WithSecretString(const char* value) { SetSecretString(value); 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.

*/ inline const Aws::Vector& GetVersionStages() const{ return m_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.

*/ inline bool VersionStagesHasBeenSet() const { return m_versionStagesHasBeenSet; } /** *

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

*/ inline void SetVersionStages(const Aws::Vector& value) { m_versionStagesHasBeenSet = true; m_versionStages = value; } /** *

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

*/ inline void SetVersionStages(Aws::Vector&& value) { m_versionStagesHasBeenSet = true; m_versionStages = std::move(value); } /** *

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

*/ inline PutSecretValueRequest& WithVersionStages(const Aws::Vector& value) { SetVersionStages(value); 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.

*/ inline PutSecretValueRequest& WithVersionStages(Aws::Vector&& value) { SetVersionStages(std::move(value)); 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.

*/ inline PutSecretValueRequest& AddVersionStages(const Aws::String& value) { m_versionStagesHasBeenSet = true; m_versionStages.push_back(value); 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.

*/ inline PutSecretValueRequest& AddVersionStages(Aws::String&& value) { m_versionStagesHasBeenSet = true; m_versionStages.push_back(std::move(value)); 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.

*/ inline PutSecretValueRequest& AddVersionStages(const char* value) { m_versionStagesHasBeenSet = true; m_versionStages.push_back(value); return *this; } private: Aws::String m_secretId; bool m_secretIdHasBeenSet; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet; Aws::Utils::CryptoBuffer m_secretBinary; bool m_secretBinaryHasBeenSet; Aws::String m_secretString; bool m_secretStringHasBeenSet; Aws::Vector m_versionStages; bool m_versionStagesHasBeenSet; }; } // namespace Model } // namespace SecretsManager } // namespace Aws