# RotationScheduleProps

Construction properties for a RotationSchedule.

Extends: RotationScheduleProps
Extends: RotationScheduleOptions
Used as props by: RotationSchedule

- Source: [`aws-secretsmanager/lib/rotation-schedule.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-secretsmanager/lib/rotation-schedule.ts#L66)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_lambda as lambda } from 'aws-cdk-lib';
import { aws_secretsmanager as secretsmanager } from 'aws-cdk-lib';

declare const function_: lambda.Function;
declare const hostedRotation: secretsmanager.HostedRotation;
declare const secret: secretsmanager.Secret;
const rotationScheduleProps: secretsmanager.RotationScheduleProps = {
  secret: secret,

  // the properties below are optional
  automaticallyAfter: cdk.Duration.minutes(30),
  hostedRotation: hostedRotation,
  rotateImmediatelyOnUpdate: false,
  rotationLambda: function_,
};
```

## Properties

- `automaticallyAfter`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.days(30) — Specifies the number of days after the previous rotation before Secrets Manager triggers the next automatic rotation.

  The minimum value is 4 hours.
  The maximum value is 1000 days.

  A value of zero (`Duration.days(0)`) will not create RotationRules.

- `hostedRotation`: [HostedRotation](/cdk/api/v2/docs/aws-cdk-lib.aws_secretsmanager.HostedRotation.html) — Hosted rotation.

  **Default:** either `rotationLambda` or `hostedRotation` must be specified

- `rotateImmediatelyOnUpdate`: boolean = true — Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window.

- `rotationLambda`: [IFunction](/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.IFunction.html) — A Lambda function that can rotate the secret.

  **Default:** either `rotationLambda` or `hostedRotation` must be specified

- `secret`: [ISecret](/cdk/api/v2/docs/aws-cdk-lib.aws_secretsmanager.ISecret.html) (required) — The secret to rotate.

  If hosted rotation is used, this must be a JSON string with the following format:

  ```
  {
    "engine": <required: database engine>,
    "host": <required: instance host name>,
    "username": <required: username>,
    "password": <required: password>,
    "dbname": <optional: database name>,
    "port": <optional: if not specified, default port will be used>,
    "masterarn": <required for multi user rotation: the arn of the master secret which will be used to create users/change passwords>
  }
  ```

  This is typically the case for a secret referenced from an `AWS::SecretsManager::SecretTargetAttachment`
  or an `ISecret` returned by the `attach()` method of `Secret`.
