/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the secretsmanager-2017-10-17.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SecretsManager.Model { /// /// Container for the parameters to the RotateSecret operation. /// Configures and starts the asynchronous process of rotating the secret. For information /// about rotation, see Rotate /// secrets in the Secrets Manager User Guide. If you include the configuration /// parameters, the operation sets the values for the secret and then immediately starts /// a rotation. If you don't include the configuration parameters, the operation starts /// a rotation with the values already stored in the secret. /// /// /// /// When rotation is successful, the AWSPENDING staging label might be attached /// to the same version as the AWSCURRENT version, or it might not be attached /// to any version. If the AWSPENDING staging label is present but not attached /// to the same version as AWSCURRENT, then any later invocation of RotateSecret /// assumes that a previous rotation request is still in progress and returns an error. /// When rotation is unsuccessful, the AWSPENDING staging label might be /// attached to an empty secret version. For more information, see Troubleshoot /// rotation in the Secrets Manager User Guide. /// /// /// /// Secrets Manager generates a CloudTrail log entry when you call this action. Do not /// include sensitive information in request parameters because it might be logged. For /// more information, see Logging /// Secrets Manager events with CloudTrail. /// /// /// /// Required permissions: secretsmanager:RotateSecret. For more /// information, see /// IAM policy actions for Secrets Manager and Authentication /// and access control in Secrets Manager. You also need lambda:InvokeFunction /// permissions on the rotation function. For more information, see /// Permissions for rotation. /// /// public partial class RotateSecretRequest : AmazonSecretsManagerRequest { private string _clientRequestToken; private bool? _rotateImmediately; private string _rotationLambdaARN; private RotationRulesType _rotationRules; private string _secretId; /// /// Gets and sets the property ClientRequestToken. /// /// A unique identifier for the new version of the secret that helps ensure idempotency. /// Secrets Manager uses this value to prevent the accidental creation of duplicate versions /// if there are failures and retries during rotation. This value becomes the VersionId /// of the new version. /// /// /// /// If you use the Amazon Web Services CLI or one of the Amazon Web Services 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 for this parameter. 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. /// /// /// /// You only need to specify this value if you implement your own retry logic and you /// want to ensure that Secrets Manager doesn't attempt to create a secret version twice. /// We recommend that you generate a UUID-type /// value to ensure uniqueness within the specified secret. /// /// [AWSProperty(Min=32, Max=64)] public string ClientRequestToken { get { return this._clientRequestToken; } set { this._clientRequestToken = value; } } // Check to see if ClientRequestToken property is set internal bool IsSetClientRequestToken() { return this._clientRequestToken != null; } /// /// Gets and sets the property RotateImmediately. /// /// Specifies whether to rotate the secret immediately or wait until the next scheduled /// rotation window. The rotation schedule is defined in RotateSecretRequest$RotationRules. /// /// /// /// For secrets that use a Lambda rotation function to rotate, if you don't immediately /// rotate the secret, Secrets Manager tests the rotation configuration by running the /// /// testSecret step of the Lambda rotation function. The test creates /// an AWSPENDING version of the secret and then removes it. /// /// /// /// By default, Secrets Manager rotates the secret immediately. /// /// public bool RotateImmediately { get { return this._rotateImmediately.GetValueOrDefault(); } set { this._rotateImmediately = value; } } // Check to see if RotateImmediately property is set internal bool IsSetRotateImmediately() { return this._rotateImmediately.HasValue; } /// /// Gets and sets the property RotationLambdaARN. /// /// For secrets that use a Lambda rotation function to rotate, the ARN of the Lambda rotation /// function. /// /// /// /// For secrets that use managed rotation, omit this field. For more information, /// see Managed /// rotation in the Secrets Manager User Guide. /// /// [AWSProperty(Min=0, Max=2048)] public string RotationLambdaARN { get { return this._rotationLambdaARN; } set { this._rotationLambdaARN = value; } } // Check to see if RotationLambdaARN property is set internal bool IsSetRotationLambdaARN() { return this._rotationLambdaARN != null; } /// /// Gets and sets the property RotationRules. /// /// A structure that defines the rotation configuration for this secret. /// /// public RotationRulesType RotationRules { get { return this._rotationRules; } set { this._rotationRules = value; } } // Check to see if RotationRules property is set internal bool IsSetRotationRules() { return this._rotationRules != null; } /// /// Gets and sets the property SecretId. /// /// The ARN or name of the secret to rotate. /// /// /// /// For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. /// See Finding /// a secret from a partial ARN. /// /// [AWSProperty(Required=true, Min=1, Max=2048)] public string SecretId { get { return this._secretId; } set { this._secretId = value; } } // Check to see if SecretId property is set internal bool IsSetSecretId() { return this._secretId != null; } } }