/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Resource Type definition for AWS::DLM::LifecyclePolicy */ export interface AwsDlmLifecyclepolicy { ExecutionRoleArn?: string; Description?: string; State?: string; PolicyDetails?: PolicyDetails; Id?: string; Arn?: string; Tags?: Tag[]; } export interface PolicyDetails { ResourceTypes?: string[]; Schedules?: Schedule[]; PolicyType?: string; EventSource?: EventSource; Parameters?: Parameters; Actions?: Action[]; TargetTags?: Tag[]; ResourceLocations?: string[]; } export interface Schedule { ShareRules?: ShareRule[]; DeprecateRule?: DeprecateRule; TagsToAdd?: Tag[]; CreateRule?: CreateRule; VariableTags?: Tag[]; FastRestoreRule?: FastRestoreRule; ArchiveRule?: ArchiveRule; RetainRule?: RetainRule; CrossRegionCopyRules?: CrossRegionCopyRule[]; Name?: string; CopyTags?: boolean; } export interface ShareRule { TargetAccounts?: string[]; UnshareIntervalUnit?: string; UnshareInterval?: number; } export interface DeprecateRule { IntervalUnit?: string; Count?: number; Interval?: number; } export interface Tag { Value: string; Key: string; } export interface CreateRule { IntervalUnit?: string; CronExpression?: string; Times?: string[]; Interval?: number; Location?: string; } export interface FastRestoreRule { IntervalUnit?: string; Count?: number; AvailabilityZones?: string[]; Interval?: number; } export interface ArchiveRule { RetainRule: ArchiveRetainRule; } export interface ArchiveRetainRule { RetentionArchiveTier: RetentionArchiveTier; } export interface RetentionArchiveTier { IntervalUnit?: string; Count?: number; Interval?: number; } export interface RetainRule { IntervalUnit?: string; Count?: number; Interval?: number; } export interface CrossRegionCopyRule { TargetRegion?: string; Target?: string; DeprecateRule?: CrossRegionCopyDeprecateRule; Encrypted: boolean; CmkArn?: string; RetainRule?: CrossRegionCopyRetainRule; CopyTags?: boolean; } export interface CrossRegionCopyDeprecateRule { IntervalUnit: string; Interval: number; } export interface CrossRegionCopyRetainRule { IntervalUnit: string; Interval: number; } export interface EventSource { Type: string; Parameters?: EventParameters; } export interface EventParameters { DescriptionRegex?: string; EventType: string; SnapshotOwner: string[]; } export interface Parameters { ExcludeBootVolume?: boolean; NoReboot?: boolean; ExcludeDataVolumeTags?: Tag[]; } export interface Action { CrossRegionCopy: CrossRegionCopyAction[]; Name: string; } export interface CrossRegionCopyAction { Target: string; EncryptionConfiguration: EncryptionConfiguration; RetainRule?: CrossRegionCopyRetainRule; } export interface EncryptionConfiguration { Encrypted: boolean; CmkArn?: string; }