UNPKG

@nolanrigo/cloudformation

Version:

TypeScript-based imperative way to define AWS CloudFormation templates

74 lines (73 loc) 2.19 kB
import { List, Value } from "./data-types"; export interface CreationPolicy { AutoScalingCreationPolicy?: { MinSuccessfulInstancesPercent?: Value<number>; }; ResourceSignal?: { Count?: Value<number>; Timeout?: Value<string>; }; } export declare enum DeletionPolicy { Delete = "Delete", Retain = "Retain", Snapshot = "Snapshot" } export interface UpdatePolicy { AutoScalingReplacingUpdate?: { WillReplace?: Value<boolean>; }; AutoScalingRollingUpdate?: { MaxBatchSize?: Value<number>; MinInstancesInService?: Value<number>; MinSuccessfulInstancesPercent?: Value<number>; PauseTime?: Value<string>; SuspendProcesses?: List<string>; WaitOnResourceSignals?: Value<boolean>; }; AutoScalingScheduledAction?: { IgnoreUnmodifiedGroupSizeProperties?: Value<boolean>; }; } export default interface Resource { Type: string; DependsOn?: Value<string> | List<string>; Properties?: { [key: string]: any; }; Metadata?: { [key: string]: any; }; CreationPolicy?: CreationPolicy; DeletionPolicy?: DeletionPolicy; UpdatePolicy?: UpdatePolicy; Condition?: Value<string>; } export declare abstract class ResourceBase<TProperties extends object = { [key: string]: any; }> implements Resource { Type: string; DependsOn?: Value<string> | List<string>; Properties: TProperties; Metadata?: { [key: string]: any; }; CreationPolicy?: CreationPolicy; DeletionPolicy?: DeletionPolicy; UpdatePolicy?: UpdatePolicy; Condition?: Value<string>; protected constructor(type: string, properties: TProperties); dependsOn(dependencies: Value<string> | List<string>): this; metadata(metadata: { [key: string]: any; }): this; creationPolicy(policy: CreationPolicy): this; deletionPolicy(policy: DeletionPolicy): this; updatePolicy(policy: UpdatePolicy): this; condition(condition: Value<string>): this; } export declare class ResourceTag { Key: Value<string>; Value: Value<string>; constructor(Key: Value<string>, Value: Value<string>); }