harness.platform.FeatureFlag
Explore with Pulumi AI
Resource for managing Feature Flags.
Example Usage
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Harness = Lbrlabs.PulumiPackage.Harness;
return await Deployment.RunAsync(() =>
{
// Boolean Flag
var mybooleanflag = new Harness.Platform.FeatureFlag("mybooleanflag", new()
{
DefaultOffVariation = "Disabled",
DefaultOnVariation = "Enabled",
Identifier = "MY_FEATURE",
Kind = "boolean",
OrgId = "test",
Permanent = false,
ProjectId = "testff",
Variations = new[]
{
new Harness.Platform.Inputs.FeatureFlagVariationArgs
{
Description = "The feature is enabled",
Identifier = "Enabled",
Name = "Enabled",
Value = "true",
},
new Harness.Platform.Inputs.FeatureFlagVariationArgs
{
Description = "The feature is disabled",
Identifier = "Disabled",
Name = "Disabled",
Value = "false",
},
},
});
// Multivariate flag
var mymultivariateflag = new Harness.Platform.FeatureFlag("mymultivariateflag", new()
{
DefaultOffVariation = "trial20",
DefaultOnVariation = "trial7",
Identifier = "FREE_TRIAL_DURATION",
Kind = "int",
OrgId = "test",
Permanent = false,
ProjectId = "testff",
Variations = new[]
{
new Harness.Platform.Inputs.FeatureFlagVariationArgs
{
Description = "Free trial period 7 days",
Identifier = "trial7",
Name = "7 days trial",
Value = "7",
},
new Harness.Platform.Inputs.FeatureFlagVariationArgs
{
Description = "Free trial period 14 days",
Identifier = "trial14",
Name = "14 days trial",
Value = "14",
},
new Harness.Platform.Inputs.FeatureFlagVariationArgs
{
Description = "Free trial period 20 days",
Identifier = "trial20",
Name = "20 days trial",
Value = "20",
},
},
});
});
package main
import (
"github.com/lbrlabs/pulumi-harness/sdk/go/harness/platform"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := platform.NewFeatureFlag(ctx, "mybooleanflag", &platform.FeatureFlagArgs{
DefaultOffVariation: pulumi.String("Disabled"),
DefaultOnVariation: pulumi.String("Enabled"),
Identifier: pulumi.String("MY_FEATURE"),
Kind: pulumi.String("boolean"),
OrgId: pulumi.String("test"),
Permanent: pulumi.Bool(false),
ProjectId: pulumi.String("testff"),
Variations: platform.FeatureFlagVariationArray{
&platform.FeatureFlagVariationArgs{
Description: pulumi.String("The feature is enabled"),
Identifier: pulumi.String("Enabled"),
Name: pulumi.String("Enabled"),
Value: pulumi.String("true"),
},
&platform.FeatureFlagVariationArgs{
Description: pulumi.String("The feature is disabled"),
Identifier: pulumi.String("Disabled"),
Name: pulumi.String("Disabled"),
Value: pulumi.String("false"),
},
},
})
if err != nil {
return err
}
_, err = platform.NewFeatureFlag(ctx, "mymultivariateflag", &platform.FeatureFlagArgs{
DefaultOffVariation: pulumi.String("trial20"),
DefaultOnVariation: pulumi.String("trial7"),
Identifier: pulumi.String("FREE_TRIAL_DURATION"),
Kind: pulumi.String("int"),
OrgId: pulumi.String("test"),
Permanent: pulumi.Bool(false),
ProjectId: pulumi.String("testff"),
Variations: platform.FeatureFlagVariationArray{
&platform.FeatureFlagVariationArgs{
Description: pulumi.String("Free trial period 7 days"),
Identifier: pulumi.String("trial7"),
Name: pulumi.String("7 days trial"),
Value: pulumi.String("7"),
},
&platform.FeatureFlagVariationArgs{
Description: pulumi.String("Free trial period 14 days"),
Identifier: pulumi.String("trial14"),
Name: pulumi.String("14 days trial"),
Value: pulumi.String("14"),
},
&platform.FeatureFlagVariationArgs{
Description: pulumi.String("Free trial period 20 days"),
Identifier: pulumi.String("trial20"),
Name: pulumi.String("20 days trial"),
Value: pulumi.String("20"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.harness.platform.FeatureFlag;
import com.pulumi.harness.platform.FeatureFlagArgs;
import com.pulumi.harness.platform.inputs.FeatureFlagVariationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var mybooleanflag = new FeatureFlag("mybooleanflag", FeatureFlagArgs.builder()
.defaultOffVariation("Disabled")
.defaultOnVariation("Enabled")
.identifier("MY_FEATURE")
.kind("boolean")
.orgId("test")
.permanent(false)
.projectId("testff")
.variations(
FeatureFlagVariationArgs.builder()
.description("The feature is enabled")
.identifier("Enabled")
.name("Enabled")
.value("true")
.build(),
FeatureFlagVariationArgs.builder()
.description("The feature is disabled")
.identifier("Disabled")
.name("Disabled")
.value("false")
.build())
.build());
var mymultivariateflag = new FeatureFlag("mymultivariateflag", FeatureFlagArgs.builder()
.defaultOffVariation("trial20")
.defaultOnVariation("trial7")
.identifier("FREE_TRIAL_DURATION")
.kind("int")
.orgId("test")
.permanent(false)
.projectId("testff")
.variations(
FeatureFlagVariationArgs.builder()
.description("Free trial period 7 days")
.identifier("trial7")
.name("7 days trial")
.value("7")
.build(),
FeatureFlagVariationArgs.builder()
.description("Free trial period 14 days")
.identifier("trial14")
.name("14 days trial")
.value("14")
.build(),
FeatureFlagVariationArgs.builder()
.description("Free trial period 20 days")
.identifier("trial20")
.name("20 days trial")
.value("20")
.build())
.build());
}
}
import pulumi
import lbrlabs_pulumi_harness as harness
# Boolean Flag
mybooleanflag = harness.platform.FeatureFlag("mybooleanflag",
default_off_variation="Disabled",
default_on_variation="Enabled",
identifier="MY_FEATURE",
kind="boolean",
org_id="test",
permanent=False,
project_id="testff",
variations=[
harness.platform.FeatureFlagVariationArgs(
description="The feature is enabled",
identifier="Enabled",
name="Enabled",
value="true",
),
harness.platform.FeatureFlagVariationArgs(
description="The feature is disabled",
identifier="Disabled",
name="Disabled",
value="false",
),
])
# Multivariate flag
mymultivariateflag = harness.platform.FeatureFlag("mymultivariateflag",
default_off_variation="trial20",
default_on_variation="trial7",
identifier="FREE_TRIAL_DURATION",
kind="int",
org_id="test",
permanent=False,
project_id="testff",
variations=[
harness.platform.FeatureFlagVariationArgs(
description="Free trial period 7 days",
identifier="trial7",
name="7 days trial",
value="7",
),
harness.platform.FeatureFlagVariationArgs(
description="Free trial period 14 days",
identifier="trial14",
name="14 days trial",
value="14",
),
harness.platform.FeatureFlagVariationArgs(
description="Free trial period 20 days",
identifier="trial20",
name="20 days trial",
value="20",
),
])
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",
},
],
});
resources:
# Boolean Flag
mybooleanflag:
type: harness:platform:FeatureFlag
properties:
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
mymultivariateflag:
type: harness:platform:FeatureFlag
properties:
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'
Create FeatureFlag Resource
new FeatureFlag(name: string, args: FeatureFlagArgs, opts?: CustomResourceOptions);
@overload
def FeatureFlag(resource_name: str,
opts: Optional[ResourceOptions] = None,
archived: Optional[bool] = None,
default_off_variation: Optional[str] = None,
default_on_variation: Optional[str] = None,
git_details: Optional[FeatureFlagGitDetailsArgs] = None,
identifier: Optional[str] = None,
kind: Optional[str] = None,
name: Optional[str] = None,
org_id: Optional[str] = None,
owner: Optional[str] = None,
permanent: Optional[bool] = None,
project_id: Optional[str] = None,
variations: Optional[Sequence[FeatureFlagVariationArgs]] = None)
@overload
def FeatureFlag(resource_name: str,
args: FeatureFlagArgs,
opts: Optional[ResourceOptions] = None)
func NewFeatureFlag(ctx *Context, name string, args FeatureFlagArgs, opts ...ResourceOption) (*FeatureFlag, error)
public FeatureFlag(string name, FeatureFlagArgs args, CustomResourceOptions? opts = null)
public FeatureFlag(String name, FeatureFlagArgs args)
public FeatureFlag(String name, FeatureFlagArgs args, CustomResourceOptions options)
type: harness:platform:FeatureFlag
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args FeatureFlagArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args FeatureFlagArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args FeatureFlagArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args FeatureFlagArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args FeatureFlagArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
FeatureFlag Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The FeatureFlag resource accepts the following input properties:
- Default
Off stringVariation Which of the variations to use when the flag is toggled to off state
- Default
On stringVariation Which of the variations to use when the flag is toggled to on state
- Identifier string
Identifier of the Feature Flag
- Kind string
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- Org
Id string Organization Identifier
- Permanent bool
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- Project
Id string Project Identifier
- Variations
List<Lbrlabs.
Pulumi Package. Harness. Platform. Inputs. Feature Flag Variation> The options available for your flag
- Archived bool
Whether or not the flag is archived
- Git
Details Lbrlabs.Pulumi Package. Harness. Platform. Inputs. Feature Flag Git Details - Name string
Name of the Feature Flag
- Owner string
The owner of the flag
- Default
Off stringVariation Which of the variations to use when the flag is toggled to off state
- Default
On stringVariation Which of the variations to use when the flag is toggled to on state
- Identifier string
Identifier of the Feature Flag
- Kind string
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- Org
Id string Organization Identifier
- Permanent bool
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- Project
Id string Project Identifier
- Variations
[]Feature
Flag Variation Args The options available for your flag
- Archived bool
Whether or not the flag is archived
- Git
Details FeatureFlag Git Details Args - Name string
Name of the Feature Flag
- Owner string
The owner of the flag
- default
Off StringVariation Which of the variations to use when the flag is toggled to off state
- default
On StringVariation Which of the variations to use when the flag is toggled to on state
- identifier String
Identifier of the Feature Flag
- kind String
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- org
Id String Organization Identifier
- permanent Boolean
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project
Id String Project Identifier
- variations
List<Feature
Flag Variation> The options available for your flag
- archived Boolean
Whether or not the flag is archived
- git
Details FeatureFlag Git Details - name String
Name of the Feature Flag
- owner String
The owner of the flag
- default
Off stringVariation Which of the variations to use when the flag is toggled to off state
- default
On stringVariation Which of the variations to use when the flag is toggled to on state
- identifier string
Identifier of the Feature Flag
- kind string
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- org
Id string Organization Identifier
- permanent boolean
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project
Id string Project Identifier
- variations
Feature
Flag Variation[] The options available for your flag
- archived boolean
Whether or not the flag is archived
- git
Details FeatureFlag Git Details - name string
Name of the Feature Flag
- owner string
The owner of the flag
- default_
off_ strvariation Which of the variations to use when the flag is toggled to off state
- default_
on_ strvariation Which of the variations to use when the flag is toggled to on state
- identifier str
Identifier of the Feature Flag
- kind str
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- org_
id str Organization Identifier
- permanent bool
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project_
id str Project Identifier
- variations
Sequence[Feature
Flag Variation Args] The options available for your flag
- archived bool
Whether or not the flag is archived
- git_
details FeatureFlag Git Details Args - name str
Name of the Feature Flag
- owner str
The owner of the flag
- default
Off StringVariation Which of the variations to use when the flag is toggled to off state
- default
On StringVariation Which of the variations to use when the flag is toggled to on state
- identifier String
Identifier of the Feature Flag
- kind String
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- org
Id String Organization Identifier
- permanent Boolean
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project
Id String Project Identifier
- variations List<Property Map>
The options available for your flag
- archived Boolean
Whether or not the flag is archived
- git
Details Property Map - name String
Name of the Feature Flag
- owner String
The owner of the flag
Outputs
All input properties are implicitly available as output properties. Additionally, the FeatureFlag resource produces the following output properties:
- Id string
The provider-assigned unique ID for this managed resource.
- Id string
The provider-assigned unique ID for this managed resource.
- id String
The provider-assigned unique ID for this managed resource.
- id string
The provider-assigned unique ID for this managed resource.
- id str
The provider-assigned unique ID for this managed resource.
- id String
The provider-assigned unique ID for this managed resource.
Look up Existing FeatureFlag Resource
Get an existing FeatureFlag resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: FeatureFlagState, opts?: CustomResourceOptions): FeatureFlag
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
archived: Optional[bool] = None,
default_off_variation: Optional[str] = None,
default_on_variation: Optional[str] = None,
git_details: Optional[FeatureFlagGitDetailsArgs] = None,
identifier: Optional[str] = None,
kind: Optional[str] = None,
name: Optional[str] = None,
org_id: Optional[str] = None,
owner: Optional[str] = None,
permanent: Optional[bool] = None,
project_id: Optional[str] = None,
variations: Optional[Sequence[FeatureFlagVariationArgs]] = None) -> FeatureFlag
func GetFeatureFlag(ctx *Context, name string, id IDInput, state *FeatureFlagState, opts ...ResourceOption) (*FeatureFlag, error)
public static FeatureFlag Get(string name, Input<string> id, FeatureFlagState? state, CustomResourceOptions? opts = null)
public static FeatureFlag get(String name, Output<String> id, FeatureFlagState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Archived bool
Whether or not the flag is archived
- Default
Off stringVariation Which of the variations to use when the flag is toggled to off state
- Default
On stringVariation Which of the variations to use when the flag is toggled to on state
- Git
Details Lbrlabs.Pulumi Package. Harness. Platform. Inputs. Feature Flag Git Details - Identifier string
Identifier of the Feature Flag
- Kind string
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- Name string
Name of the Feature Flag
- Org
Id string Organization Identifier
- Owner string
The owner of the flag
- Permanent bool
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- Project
Id string Project Identifier
- Variations
List<Lbrlabs.
Pulumi Package. Harness. Platform. Inputs. Feature Flag Variation> The options available for your flag
- Archived bool
Whether or not the flag is archived
- Default
Off stringVariation Which of the variations to use when the flag is toggled to off state
- Default
On stringVariation Which of the variations to use when the flag is toggled to on state
- Git
Details FeatureFlag Git Details Args - Identifier string
Identifier of the Feature Flag
- Kind string
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- Name string
Name of the Feature Flag
- Org
Id string Organization Identifier
- Owner string
The owner of the flag
- Permanent bool
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- Project
Id string Project Identifier
- Variations
[]Feature
Flag Variation Args The options available for your flag
- archived Boolean
Whether or not the flag is archived
- default
Off StringVariation Which of the variations to use when the flag is toggled to off state
- default
On StringVariation Which of the variations to use when the flag is toggled to on state
- git
Details FeatureFlag Git Details - identifier String
Identifier of the Feature Flag
- kind String
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- name String
Name of the Feature Flag
- org
Id String Organization Identifier
- owner String
The owner of the flag
- permanent Boolean
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project
Id String Project Identifier
- variations
List<Feature
Flag Variation> The options available for your flag
- archived boolean
Whether or not the flag is archived
- default
Off stringVariation Which of the variations to use when the flag is toggled to off state
- default
On stringVariation Which of the variations to use when the flag is toggled to on state
- git
Details FeatureFlag Git Details - identifier string
Identifier of the Feature Flag
- kind string
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- name string
Name of the Feature Flag
- org
Id string Organization Identifier
- owner string
The owner of the flag
- permanent boolean
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project
Id string Project Identifier
- variations
Feature
Flag Variation[] The options available for your flag
- archived bool
Whether or not the flag is archived
- default_
off_ strvariation Which of the variations to use when the flag is toggled to off state
- default_
on_ strvariation Which of the variations to use when the flag is toggled to on state
- git_
details FeatureFlag Git Details Args - identifier str
Identifier of the Feature Flag
- kind str
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- name str
Name of the Feature Flag
- org_
id str Organization Identifier
- owner str
The owner of the flag
- permanent bool
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project_
id str Project Identifier
- variations
Sequence[Feature
Flag Variation Args] The options available for your flag
- archived Boolean
Whether or not the flag is archived
- default
Off StringVariation Which of the variations to use when the flag is toggled to off state
- default
On StringVariation Which of the variations to use when the flag is toggled to on state
- git
Details Property Map - identifier String
Identifier of the Feature Flag
- kind String
The type of data the flag represents. Valid values are
boolean
,int
,string
,json
- name String
Name of the Feature Flag
- org
Id String Organization Identifier
- owner String
The owner of the flag
- permanent Boolean
Whether or not the flag is permanent. If it is, it will never be flagged as stale
- project
Id String Project Identifier
- variations List<Property Map>
The options available for your flag
Supporting Types
FeatureFlagGitDetails, FeatureFlagGitDetailsArgs
- Commit
Msg string The commit message to use as part of a gitsync operation
- Commit
Msg string The commit message to use as part of a gitsync operation
- commit
Msg String The commit message to use as part of a gitsync operation
- commit
Msg string The commit message to use as part of a gitsync operation
- commit_
msg str The commit message to use as part of a gitsync operation
- commit
Msg String The commit message to use as part of a gitsync operation
FeatureFlagVariation, FeatureFlagVariationArgs
- Description string
The description of the variation
- Identifier string
The identifier of the variation
- Name string
The user friendly name of the variation
- Value string
The value of the variation
- Description string
The description of the variation
- Identifier string
The identifier of the variation
- Name string
The user friendly name of the variation
- Value string
The value of the variation
- description String
The description of the variation
- identifier String
The identifier of the variation
- name String
The user friendly name of the variation
- value String
The value of the variation
- description string
The description of the variation
- identifier string
The identifier of the variation
- name string
The user friendly name of the variation
- value string
The value of the variation
- description str
The description of the variation
- identifier str
The identifier of the variation
- name str
The user friendly name of the variation
- value str
The value of the variation
- description String
The description of the variation
- identifier String
The identifier of the variation
- name String
The user friendly name of the variation
- value String
The value of the variation
Package Details
- Repository
- harness lbrlabs/pulumi-harness
- License
- Apache-2.0
- Notes
This Pulumi package is based on the
harness
Terraform Provider.