UNPKG

@lbrlabs/pulumi-harness

Version:

A Pulumi package for creating and managing Harness resources.

239 lines (238 loc) 7.51 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Resource for managing Feature Flags. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as harness from "@lbrlabs/pulumi-harness"; * * // Boolean Flag * const mybooleanflag = new harness.platform.FeatureFlag("mybooleanflag", { * defaultOffVariation: "Disabled", * defaultOnVariation: "Enabled", * identifier: "MY_FEATURE", * kind: "boolean", * orgId: "test", * permanent: false, * projectId: "testff", * variations: [ * { * description: "The feature is enabled", * identifier: "Enabled", * name: "Enabled", * value: "true", * }, * { * description: "The feature is disabled", * identifier: "Disabled", * name: "Disabled", * value: "false", * }, * ], * }); * // Multivariate flag * const mymultivariateflag = new harness.platform.FeatureFlag("mymultivariateflag", { * defaultOffVariation: "trial20", * defaultOnVariation: "trial7", * identifier: "FREE_TRIAL_DURATION", * kind: "int", * orgId: "test", * permanent: false, * projectId: "testff", * variations: [ * { * description: "Free trial period 7 days", * identifier: "trial7", * name: "7 days trial", * value: "7", * }, * { * description: "Free trial period 14 days", * identifier: "trial14", * name: "14 days trial", * value: "14", * }, * { * description: "Free trial period 20 days", * identifier: "trial20", * name: "20 days trial", * value: "20", * }, * ], * }); * ``` */ export declare class FeatureFlag extends pulumi.CustomResource { /** * Get an existing FeatureFlag resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: FeatureFlagState, opts?: pulumi.CustomResourceOptions): FeatureFlag; /** * Returns true if the given object is an instance of FeatureFlag. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is FeatureFlag; /** * Whether or not the flag is archived */ readonly archived: pulumi.Output<boolean | undefined>; /** * Which of the variations to use when the flag is toggled to off state */ readonly defaultOffVariation: pulumi.Output<string>; /** * Which of the variations to use when the flag is toggled to on state */ readonly defaultOnVariation: pulumi.Output<string>; readonly gitDetails: pulumi.Output<outputs.platform.FeatureFlagGitDetails | undefined>; /** * Identifier of the Feature Flag */ readonly identifier: pulumi.Output<string>; /** * The type of data the flag represents. Valid values are `boolean`, `int`, `string`, `json` */ readonly kind: pulumi.Output<string>; /** * Name of the Feature Flag */ readonly name: pulumi.Output<string>; /** * Organization Identifier */ readonly orgId: pulumi.Output<string>; /** * The owner of the flag */ readonly owner: pulumi.Output<string | undefined>; /** * Whether or not the flag is permanent. If it is, it will never be flagged as stale */ readonly permanent: pulumi.Output<boolean>; /** * Project Identifier */ readonly projectId: pulumi.Output<string>; /** * The options available for your flag */ readonly variations: pulumi.Output<outputs.platform.FeatureFlagVariation[]>; /** * Create a FeatureFlag resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: FeatureFlagArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FeatureFlag resources. */ export interface FeatureFlagState { /** * Whether or not the flag is archived */ archived?: pulumi.Input<boolean>; /** * Which of the variations to use when the flag is toggled to off state */ defaultOffVariation?: pulumi.Input<string>; /** * Which of the variations to use when the flag is toggled to on state */ defaultOnVariation?: pulumi.Input<string>; gitDetails?: pulumi.Input<inputs.platform.FeatureFlagGitDetails>; /** * Identifier of the Feature Flag */ identifier?: pulumi.Input<string>; /** * The type of data the flag represents. Valid values are `boolean`, `int`, `string`, `json` */ kind?: pulumi.Input<string>; /** * Name of the Feature Flag */ name?: pulumi.Input<string>; /** * Organization Identifier */ orgId?: pulumi.Input<string>; /** * The owner of the flag */ owner?: pulumi.Input<string>; /** * Whether or not the flag is permanent. If it is, it will never be flagged as stale */ permanent?: pulumi.Input<boolean>; /** * Project Identifier */ projectId?: pulumi.Input<string>; /** * The options available for your flag */ variations?: pulumi.Input<pulumi.Input<inputs.platform.FeatureFlagVariation>[]>; } /** * The set of arguments for constructing a FeatureFlag resource. */ export interface FeatureFlagArgs { /** * Whether or not the flag is archived */ archived?: pulumi.Input<boolean>; /** * Which of the variations to use when the flag is toggled to off state */ defaultOffVariation: pulumi.Input<string>; /** * Which of the variations to use when the flag is toggled to on state */ defaultOnVariation: pulumi.Input<string>; gitDetails?: pulumi.Input<inputs.platform.FeatureFlagGitDetails>; /** * Identifier of the Feature Flag */ identifier: pulumi.Input<string>; /** * The type of data the flag represents. Valid values are `boolean`, `int`, `string`, `json` */ kind: pulumi.Input<string>; /** * Name of the Feature Flag */ name?: pulumi.Input<string>; /** * Organization Identifier */ orgId: pulumi.Input<string>; /** * The owner of the flag */ owner?: pulumi.Input<string>; /** * Whether or not the flag is permanent. If it is, it will never be flagged as stale */ permanent: pulumi.Input<boolean>; /** * Project Identifier */ projectId: pulumi.Input<string>; /** * The options available for your flag */ variations: pulumi.Input<pulumi.Input<inputs.platform.FeatureFlagVariation>[]>; }