import { Value } from '../../cloudformation/Value';
import { HostedRotationLambdaProps } from './rotationschedule/HostedRotationLambdaProps';
import { RotationRulesProps } from './rotationschedule/RotationRulesProps';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Sets the rotation schedule and Lambda rotation function for a secret. For more information, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html">How rotation works</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html">the AWS Docs</a>
*/
export type RotationSchedule = AwsResource<'AWS::SecretsManager::RotationSchedule', RotationScheduleProperties>;
export declare function rotationSchedule(rotationScheduleProps: RotationScheduleProperties): RotationSchedule;
/**
  Sets the rotation schedule and Lambda rotation function for a secret. For more information, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html">How rotation works</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-rotationschedule.html">the AWS Docs</a>
*/
export interface RotationScheduleProperties {
    /** <code>SecretId</code>  <a name="cfn-secretsmanager-rotationschedule-secretid"></a>
  The ARN or name of the secret to rotate.<br />
  To reference a secret also created in this template, use the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html">Ref</a> function with the secret’s logical ID.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    secretId: Value<string>;
    /** <code>HostedRotationLambda</code>  <a name="cfn-secretsmanager-rotationschedule-hostedrotationlambda"></a>
  Creates a new Lambda rotation function based on one of the <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html"> Secrets Manager rotation function templates</a>. To use a rotation function that already exists, specify <code>RotationLambdaARN</code> instead.<br />
  For Amazon RDS master user credentials, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html">AWS::RDS::DBCluster MasterUserSecret</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    hostedRotationLambda?: HostedRotationLambdaProps;
    /** <code>RotationLambdaARN</code>  <a name="cfn-secretsmanager-rotationschedule-rotationlambdaarn"></a>
  The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html">Ref</a> function.<br />
  For Amazon RDS master user credentials, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html">AWS::RDS::DBCluster MasterUserSecret</a>.<br />
  To create a new rotation function based on one of the <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html"> Secrets Manager rotation function templates</a>, specify <code>HostedRotationLambda</code> instead.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    rotationLambdaARN?: Value<string>;
    /** <code>RotationRules</code>  <a name="cfn-secretsmanager-rotationschedule-rotationrules"></a>
  A structure that defines the rotation configuration for this secret.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    rotationRules?: RotationRulesProps;
    /** <code>RotateImmediatelyOnUpdate</code>  <a name="cfn-secretsmanager-rotationschedule-rotateimmediatelyonupdate"></a>
  Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. The rotation schedule is defined in <code>RotationRules</code>.<br />
  If you don’t immediately rotate the secret, Secrets Manager tests the rotation configuration by running the <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html"><code>testSecret</code> step</a> of the Lambda rotation function. The test creates an <code>AWSPENDING</code> version of the secret and then removes it.<br />
  If you don’t specify this value, then by default, Secrets Manager rotates the secret immediately.<br />
  Rotation is an asynchronous process. For more information, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html">How rotation works</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    rotateImmediatelyOnUpdate?: Value<boolean>;
}
