import { DefaultPoliciesTypeValues, DefaultPolicyTypeValues, EventSourceValues, EventTypeValues, ExecutionHandlerServiceValues, GettablePolicyStateValues, IntervalUnitValues, LocationValues, PolicyLanguageValues, PolicyTypeValues, ResourceLocationValues, ResourceTypeValues, RetentionIntervalUnitValues, SettablePolicyStateValues, StageValues, } from "./enums"; export interface EncryptionConfiguration { Encrypted: boolean | undefined; CmkArn?: string | undefined; } export interface CrossRegionCopyRetainRule { Interval?: number | undefined; IntervalUnit?: RetentionIntervalUnitValues | undefined; } export interface CrossRegionCopyAction { Target: string | undefined; EncryptionConfiguration: EncryptionConfiguration | undefined; RetainRule?: CrossRegionCopyRetainRule | undefined; } export interface Action { Name: string | undefined; CrossRegionCopy: CrossRegionCopyAction[] | undefined; } export interface RetentionArchiveTier { Count?: number | undefined; Interval?: number | undefined; IntervalUnit?: RetentionIntervalUnitValues | undefined; } export interface ArchiveRetainRule { RetentionArchiveTier: RetentionArchiveTier | undefined; } export interface ArchiveRule { RetainRule: ArchiveRetainRule | undefined; } export interface CrossRegionCopyTarget { TargetRegion?: string | undefined; } export interface Tag { Key: string | undefined; Value: string | undefined; } export interface Exclusions { ExcludeBootVolumes?: boolean | undefined; ExcludeVolumeTypes?: string[] | undefined; ExcludeTags?: Tag[] | undefined; } export interface EventParameters { EventType: EventTypeValues | undefined; SnapshotOwner: string[] | undefined; DescriptionRegex: string | undefined; } export interface EventSource { Type: EventSourceValues | undefined; Parameters?: EventParameters | undefined; } export interface _Parameters { ExcludeBootVolume?: boolean | undefined; NoReboot?: boolean | undefined; ExcludeDataVolumeTags?: Tag[] | undefined; } export interface Script { Stages?: StageValues[] | undefined; ExecutionHandlerService?: ExecutionHandlerServiceValues | undefined; ExecutionHandler: string | undefined; ExecuteOperationOnScriptFailure?: boolean | undefined; ExecutionTimeout?: number | undefined; MaximumRetryCount?: number | undefined; } export interface CreateRule { Location?: LocationValues | undefined; Interval?: number | undefined; IntervalUnit?: IntervalUnitValues | undefined; Times?: string[] | undefined; CronExpression?: string | undefined; Scripts?: Script[] | undefined; } export interface CrossRegionCopyDeprecateRule { Interval?: number | undefined; IntervalUnit?: RetentionIntervalUnitValues | undefined; } export interface CrossRegionCopyRule { TargetRegion?: string | undefined; Target?: string | undefined; Encrypted: boolean | undefined; CmkArn?: string | undefined; CopyTags?: boolean | undefined; RetainRule?: CrossRegionCopyRetainRule | undefined; DeprecateRule?: CrossRegionCopyDeprecateRule | undefined; } export interface DeprecateRule { Count?: number | undefined; Interval?: number | undefined; IntervalUnit?: RetentionIntervalUnitValues | undefined; } export interface FastRestoreRule { Count?: number | undefined; Interval?: number | undefined; IntervalUnit?: RetentionIntervalUnitValues | undefined; AvailabilityZones?: string[] | undefined; AvailabilityZoneIds?: string[] | undefined; } export interface RetainRule { Count?: number | undefined; Interval?: number | undefined; IntervalUnit?: RetentionIntervalUnitValues | undefined; } export interface ShareRule { TargetAccounts: string[] | undefined; UnshareInterval?: number | undefined; UnshareIntervalUnit?: RetentionIntervalUnitValues | undefined; } export interface Schedule { Name?: string | undefined; CopyTags?: boolean | undefined; TagsToAdd?: Tag[] | undefined; VariableTags?: Tag[] | undefined; CreateRule?: CreateRule | undefined; RetainRule?: RetainRule | undefined; FastRestoreRule?: FastRestoreRule | undefined; CrossRegionCopyRules?: CrossRegionCopyRule[] | undefined; ShareRules?: ShareRule[] | undefined; DeprecateRule?: DeprecateRule | undefined; ArchiveRule?: ArchiveRule | undefined; } export interface PolicyDetails { PolicyType?: PolicyTypeValues | undefined; ResourceTypes?: ResourceTypeValues[] | undefined; ResourceLocations?: ResourceLocationValues[] | undefined; TargetTags?: Tag[] | undefined; Schedules?: Schedule[] | undefined; Parameters?: _Parameters | undefined; EventSource?: EventSource | undefined; Actions?: Action[] | undefined; PolicyLanguage?: PolicyLanguageValues | undefined; ResourceType?: ResourceTypeValues | undefined; CreateInterval?: number | undefined; RetainInterval?: number | undefined; CopyTags?: boolean | undefined; CrossRegionCopyTargets?: CrossRegionCopyTarget[] | undefined; ExtendDeletion?: boolean | undefined; Exclusions?: Exclusions | undefined; } export interface CreateLifecyclePolicyRequest { ExecutionRoleArn: string | undefined; Description: string | undefined; State: SettablePolicyStateValues | undefined; PolicyDetails?: PolicyDetails | undefined; Tags?: Record | undefined; DefaultPolicy?: DefaultPolicyTypeValues | undefined; CreateInterval?: number | undefined; RetainInterval?: number | undefined; CopyTags?: boolean | undefined; ExtendDeletion?: boolean | undefined; CrossRegionCopyTargets?: CrossRegionCopyTarget[] | undefined; Exclusions?: Exclusions | undefined; } export interface CreateLifecyclePolicyResponse { PolicyId?: string | undefined; } export interface DeleteLifecyclePolicyRequest { PolicyId: string | undefined; } export interface DeleteLifecyclePolicyResponse {} export interface GetLifecyclePoliciesRequest { PolicyIds?: string[] | undefined; State?: GettablePolicyStateValues | undefined; ResourceTypes?: ResourceTypeValues[] | undefined; TargetTags?: string[] | undefined; TagsToAdd?: string[] | undefined; DefaultPolicyType?: DefaultPoliciesTypeValues | undefined; } export interface LifecyclePolicySummary { PolicyId?: string | undefined; Description?: string | undefined; State?: GettablePolicyStateValues | undefined; Tags?: Record | undefined; PolicyType?: PolicyTypeValues | undefined; DefaultPolicy?: boolean | undefined; } export interface GetLifecyclePoliciesResponse { Policies?: LifecyclePolicySummary[] | undefined; } export interface GetLifecyclePolicyRequest { PolicyId: string | undefined; } export interface LifecyclePolicy { PolicyId?: string | undefined; Description?: string | undefined; State?: GettablePolicyStateValues | undefined; StatusMessage?: string | undefined; ExecutionRoleArn?: string | undefined; DateCreated?: Date | undefined; DateModified?: Date | undefined; PolicyDetails?: PolicyDetails | undefined; Tags?: Record | undefined; PolicyArn?: string | undefined; DefaultPolicy?: boolean | undefined; } export interface GetLifecyclePolicyResponse { Policy?: LifecyclePolicy | undefined; } export interface ListTagsForResourceRequest { ResourceArn: string | undefined; } export interface ListTagsForResourceResponse { Tags?: Record | undefined; } export interface TagResourceRequest { ResourceArn: string | undefined; Tags: Record | undefined; } export interface TagResourceResponse {} export interface UntagResourceRequest { ResourceArn: string | undefined; TagKeys: string[] | undefined; } export interface UntagResourceResponse {} export interface UpdateLifecyclePolicyRequest { PolicyId: string | undefined; ExecutionRoleArn?: string | undefined; State?: SettablePolicyStateValues | undefined; Description?: string | undefined; PolicyDetails?: PolicyDetails | undefined; CreateInterval?: number | undefined; RetainInterval?: number | undefined; CopyTags?: boolean | undefined; ExtendDeletion?: boolean | undefined; CrossRegionCopyTargets?: CrossRegionCopyTarget[] | undefined; Exclusions?: Exclusions | undefined; } export interface UpdateLifecyclePolicyResponse {}