UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

92 lines (91 loc) 3.49 kB
export declare enum FlagType { /** * Change the default behavior of the API * * The old behavior is still valid, and possible to achieve with source * code changes, but we recommend the new behavior instead. * * Also valid for changes that don't affect CloudFormation, but the CXAPI * contract. */ ApiDefault = 0, /** * Address a bug in a way that requires contract breaking or has availability implications for existing infrastructure * * The old behavior is not recommended, and shouldn't have been possible in the first place. * We only have this flag because we can't roll out the fix to everyone * automatically for fear of breakage. */ BugFix = 1, /** * Advertise the presence of this context option in `cdk.json` */ VisibleContext = 2, /** * Use this type for flags that are to be removed on a set date */ Temporary = 3 } export interface FlagInfoBase { /** Single-line description for the flag */ readonly summary: string; /** Detailed description for the flag (Markdown) */ readonly detailsMd: string; /** * Version number the flag was introduced in each version line. * * `undefined` means flag is not configurable in that line; but if * `unconfiguredBehavesLike` is set for that line, we will document the default * behavior (even though it's not configurable). */ readonly introducedIn: { v1?: string; v2?: string; }; /** What you would like new users to set this flag to (default in new projects) */ readonly recommendedValue: any; /** * If this flag is not set, the CLI library will behave as if the flag was set to <this>. * * If this flag is not set, we will assume you meant `false`, and the `recommendedValue` is `true`. * * This value is most useful for flags that allow opting out of undesirable behavior. To avoid having * to word our flag name like `skipUndesirableBehavior` and people having to do boolean gymnastics in * their head, we will name the flag `doUndesirableBehavior`, set * `unconfiguredBehavesLike: true`, and `recommendedValue: false`. * * Again: the value you put here should describe whatever value gets us the * legacy behavior, from before this flag was introduced. */ readonly unconfiguredBehavesLike?: { v1?: any; v2?: any; }; } /** Flag information, adding required fields if present */ export type FlagInfo = FlagInfoBase & ({ readonly type: FlagType.ApiDefault; /** Describe how to use the API to achieve pre-flag behavior, if the flag is set (Markdown) */ readonly compatibilityWithOldBehaviorMd: string; } | { readonly type: FlagType.BugFix; /** Describe how to deal with the change if the flag is set (Markdown) */ readonly compatibilityWithOldBehaviorMd?: string; } | { readonly type: FlagType.VisibleContext; } | { readonly type: FlagType.Temporary; readonly compatibilityWithOldBehaviorMd?: string; }); /** * The magic value that will be substituted at version bump time with the actual * new V2 version. * * Do not import this constant in the `features.ts` file, or the substitution * process won't work. */ export declare const MAGIC_V2NEXT = "V2NEXT"; /** * Compare two versions, returning -1, 0, or 1. */ export declare function compareVersions(a: string | undefined, b: string | undefined): number;