harness.platform.FeatureFlag
Explore with Pulumi AI
Resource for managing Feature Flags.
Create FeatureFlag Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new FeatureFlag(name: string, args: FeatureFlagArgs, opts?: CustomResourceOptions);@overload
def FeatureFlag(resource_name: str,
                args: FeatureFlagArgs,
                opts: Optional[ResourceOptions] = None)
@overload
def FeatureFlag(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                org_id: Optional[str] = None,
                default_off_variation: Optional[str] = None,
                default_on_variation: Optional[str] = None,
                variations: Optional[Sequence[FeatureFlagVariationArgs]] = None,
                project_id: Optional[str] = None,
                identifier: Optional[str] = None,
                kind: Optional[str] = None,
                permanent: Optional[bool] = None,
                description: Optional[str] = None,
                owner: Optional[str] = None,
                name: Optional[str] = None,
                environments: Optional[Sequence[FeatureFlagEnvironmentArgs]] = None,
                tags: Optional[Sequence[FeatureFlagTagArgs]] = None,
                archived: Optional[bool] = 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.
Parameters
- 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.
Constructor example
The following reference example uses placeholder values for all input properties.
var featureFlagResource = new Harness.Platform.FeatureFlag("featureFlagResource", new()
{
    OrgId = "string",
    DefaultOffVariation = "string",
    DefaultOnVariation = "string",
    Variations = new[]
    {
        new Harness.Platform.Inputs.FeatureFlagVariationArgs
        {
            Description = "string",
            Identifier = "string",
            Name = "string",
            Value = "string",
        },
    },
    ProjectId = "string",
    Identifier = "string",
    Kind = "string",
    Permanent = false,
    Description = "string",
    Owner = "string",
    Name = "string",
    Environments = new[]
    {
        new Harness.Platform.Inputs.FeatureFlagEnvironmentArgs
        {
            Identifier = "string",
            AddTargetRules = new[]
            {
                new Harness.Platform.Inputs.FeatureFlagEnvironmentAddTargetRuleArgs
                {
                    Targets = new[]
                    {
                        "string",
                    },
                    Variation = "string",
                },
            },
            DefaultOffVariation = "string",
            DefaultOnVariation = "string",
            State = "string",
        },
    },
    Tags = new[]
    {
        new Harness.Platform.Inputs.FeatureFlagTagArgs
        {
            Identifier = "string",
        },
    },
    Archived = false,
});
example, err := platform.NewFeatureFlag(ctx, "featureFlagResource", &platform.FeatureFlagArgs{
	OrgId:               pulumi.String("string"),
	DefaultOffVariation: pulumi.String("string"),
	DefaultOnVariation:  pulumi.String("string"),
	Variations: platform.FeatureFlagVariationArray{
		&platform.FeatureFlagVariationArgs{
			Description: pulumi.String("string"),
			Identifier:  pulumi.String("string"),
			Name:        pulumi.String("string"),
			Value:       pulumi.String("string"),
		},
	},
	ProjectId:   pulumi.String("string"),
	Identifier:  pulumi.String("string"),
	Kind:        pulumi.String("string"),
	Permanent:   pulumi.Bool(false),
	Description: pulumi.String("string"),
	Owner:       pulumi.String("string"),
	Name:        pulumi.String("string"),
	Environments: platform.FeatureFlagEnvironmentArray{
		&platform.FeatureFlagEnvironmentArgs{
			Identifier: pulumi.String("string"),
			AddTargetRules: platform.FeatureFlagEnvironmentAddTargetRuleArray{
				&platform.FeatureFlagEnvironmentAddTargetRuleArgs{
					Targets: pulumi.StringArray{
						pulumi.String("string"),
					},
					Variation: pulumi.String("string"),
				},
			},
			DefaultOffVariation: pulumi.String("string"),
			DefaultOnVariation:  pulumi.String("string"),
			State:               pulumi.String("string"),
		},
	},
	Tags: platform.FeatureFlagTagArray{
		&platform.FeatureFlagTagArgs{
			Identifier: pulumi.String("string"),
		},
	},
	Archived: pulumi.Bool(false),
})
var featureFlagResource = new FeatureFlag("featureFlagResource", FeatureFlagArgs.builder()
    .orgId("string")
    .defaultOffVariation("string")
    .defaultOnVariation("string")
    .variations(FeatureFlagVariationArgs.builder()
        .description("string")
        .identifier("string")
        .name("string")
        .value("string")
        .build())
    .projectId("string")
    .identifier("string")
    .kind("string")
    .permanent(false)
    .description("string")
    .owner("string")
    .name("string")
    .environments(FeatureFlagEnvironmentArgs.builder()
        .identifier("string")
        .addTargetRules(FeatureFlagEnvironmentAddTargetRuleArgs.builder()
            .targets("string")
            .variation("string")
            .build())
        .defaultOffVariation("string")
        .defaultOnVariation("string")
        .state("string")
        .build())
    .tags(FeatureFlagTagArgs.builder()
        .identifier("string")
        .build())
    .archived(false)
    .build());
feature_flag_resource = harness.platform.FeatureFlag("featureFlagResource",
    org_id="string",
    default_off_variation="string",
    default_on_variation="string",
    variations=[{
        "description": "string",
        "identifier": "string",
        "name": "string",
        "value": "string",
    }],
    project_id="string",
    identifier="string",
    kind="string",
    permanent=False,
    description="string",
    owner="string",
    name="string",
    environments=[{
        "identifier": "string",
        "add_target_rules": [{
            "targets": ["string"],
            "variation": "string",
        }],
        "default_off_variation": "string",
        "default_on_variation": "string",
        "state": "string",
    }],
    tags=[{
        "identifier": "string",
    }],
    archived=False)
const featureFlagResource = new harness.platform.FeatureFlag("featureFlagResource", {
    orgId: "string",
    defaultOffVariation: "string",
    defaultOnVariation: "string",
    variations: [{
        description: "string",
        identifier: "string",
        name: "string",
        value: "string",
    }],
    projectId: "string",
    identifier: "string",
    kind: "string",
    permanent: false,
    description: "string",
    owner: "string",
    name: "string",
    environments: [{
        identifier: "string",
        addTargetRules: [{
            targets: ["string"],
            variation: "string",
        }],
        defaultOffVariation: "string",
        defaultOnVariation: "string",
        state: "string",
    }],
    tags: [{
        identifier: "string",
    }],
    archived: false,
});
type: harness:platform:FeatureFlag
properties:
    archived: false
    defaultOffVariation: string
    defaultOnVariation: string
    description: string
    environments:
        - addTargetRules:
            - targets:
                - string
              variation: string
          defaultOffVariation: string
          defaultOnVariation: string
          identifier: string
          state: string
    identifier: string
    kind: string
    name: string
    orgId: string
    owner: string
    permanent: false
    projectId: string
    tags:
        - identifier: string
    variations:
        - description: string
          identifier: string
          name: string
          value: string
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
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The FeatureFlag resource accepts the following input properties:
- DefaultOff stringVariation 
- Which of the variations to use when the flag is toggled to off state
- DefaultOn 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
- OrgId string
- Organization Identifier
- Permanent bool
- Whether or not the flag is permanent. If it is, it will never be flagged as stale
- ProjectId string
- Project Identifier
- Variations
List<FeatureFlag Variation> 
- The options available for your flag
- Archived bool
- Whether or not the flag is archived.
- Description string
- Description of the Feature Flag
- Environments
List<FeatureFlag Environment> 
- Environment Identifier
- Name string
- Name of the Feature Flag
- Owner string
- The owner of the flag
- 
List<FeatureFlag Tag> 
- The tags for the flag
- DefaultOff stringVariation 
- Which of the variations to use when the flag is toggled to off state
- DefaultOn 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
- OrgId string
- Organization Identifier
- Permanent bool
- Whether or not the flag is permanent. If it is, it will never be flagged as stale
- ProjectId string
- Project Identifier
- Variations
[]FeatureFlag Variation Args 
- The options available for your flag
- Archived bool
- Whether or not the flag is archived.
- Description string
- Description of the Feature Flag
- Environments
[]FeatureFlag Environment Args 
- Environment Identifier
- Name string
- Name of the Feature Flag
- Owner string
- The owner of the flag
- 
[]FeatureFlag Tag Args 
- The tags for the flag
- defaultOff StringVariation 
- Which of the variations to use when the flag is toggled to off state
- defaultOn 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
- orgId String
- Organization Identifier
- permanent Boolean
- Whether or not the flag is permanent. If it is, it will never be flagged as stale
- projectId String
- Project Identifier
- variations
List<FeatureFlag Variation> 
- The options available for your flag
- archived Boolean
- Whether or not the flag is archived.
- description String
- Description of the Feature Flag
- environments
List<FeatureFlag Environment> 
- Environment Identifier
- name String
- Name of the Feature Flag
- owner String
- The owner of the flag
- 
List<FeatureFlag Tag> 
- The tags for the flag
- defaultOff stringVariation 
- Which of the variations to use when the flag is toggled to off state
- defaultOn 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
- orgId string
- Organization Identifier
- permanent boolean
- Whether or not the flag is permanent. If it is, it will never be flagged as stale
- projectId string
- Project Identifier
- variations
FeatureFlag Variation[] 
- The options available for your flag
- archived boolean
- Whether or not the flag is archived.
- description string
- Description of the Feature Flag
- environments
FeatureFlag Environment[] 
- Environment Identifier
- name string
- Name of the Feature Flag
- owner string
- The owner of the flag
- 
FeatureFlag Tag[] 
- The tags for 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[FeatureFlag Variation Args] 
- The options available for your flag
- archived bool
- Whether or not the flag is archived.
- description str
- Description of the Feature Flag
- environments
Sequence[FeatureFlag Environment Args] 
- Environment Identifier
- name str
- Name of the Feature Flag
- owner str
- The owner of the flag
- 
Sequence[FeatureFlag Tag Args] 
- The tags for the flag
- defaultOff StringVariation 
- Which of the variations to use when the flag is toggled to off state
- defaultOn 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
- orgId String
- Organization Identifier
- permanent Boolean
- Whether or not the flag is permanent. If it is, it will never be flagged as stale
- projectId String
- Project Identifier
- variations List<Property Map>
- The options available for your flag
- archived Boolean
- Whether or not the flag is archived.
- description String
- Description of the Feature Flag
- environments List<Property Map>
- Environment Identifier
- name String
- Name of the Feature Flag
- owner String
- The owner of the flag
- List<Property Map>
- The tags for 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,
        description: Optional[str] = None,
        environments: Optional[Sequence[FeatureFlagEnvironmentArgs]] = 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,
        tags: Optional[Sequence[FeatureFlagTagArgs]] = None,
        variations: Optional[Sequence[FeatureFlagVariationArgs]] = None) -> FeatureFlagfunc 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)resources:  _:    type: harness:platform:FeatureFlag    get:      id: ${id}- 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.
- DefaultOff stringVariation 
- Which of the variations to use when the flag is toggled to off state
- DefaultOn stringVariation 
- Which of the variations to use when the flag is toggled to on state
- Description string
- Description of the Feature Flag
- Environments
List<FeatureFlag Environment> 
- Environment Identifier
- 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
- OrgId 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
- ProjectId string
- Project Identifier
- 
List<FeatureFlag Tag> 
- The tags for the flag
- Variations
List<FeatureFlag Variation> 
- The options available for your flag
- Archived bool
- Whether or not the flag is archived.
- DefaultOff stringVariation 
- Which of the variations to use when the flag is toggled to off state
- DefaultOn stringVariation 
- Which of the variations to use when the flag is toggled to on state
- Description string
- Description of the Feature Flag
- Environments
[]FeatureFlag Environment Args 
- Environment Identifier
- 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
- OrgId 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
- ProjectId string
- Project Identifier
- 
[]FeatureFlag Tag Args 
- The tags for the flag
- Variations
[]FeatureFlag Variation Args 
- The options available for your flag
- archived Boolean
- Whether or not the flag is archived.
- defaultOff StringVariation 
- Which of the variations to use when the flag is toggled to off state
- defaultOn StringVariation 
- Which of the variations to use when the flag is toggled to on state
- description String
- Description of the Feature Flag
- environments
List<FeatureFlag Environment> 
- Environment Identifier
- 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
- orgId 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
- projectId String
- Project Identifier
- 
List<FeatureFlag Tag> 
- The tags for the flag
- variations
List<FeatureFlag Variation> 
- The options available for your flag
- archived boolean
- Whether or not the flag is archived.
- defaultOff stringVariation 
- Which of the variations to use when the flag is toggled to off state
- defaultOn stringVariation 
- Which of the variations to use when the flag is toggled to on state
- description string
- Description of the Feature Flag
- environments
FeatureFlag Environment[] 
- Environment Identifier
- 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
- orgId 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
- projectId string
- Project Identifier
- 
FeatureFlag Tag[] 
- The tags for the flag
- variations
FeatureFlag 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
- description str
- Description of the Feature Flag
- environments
Sequence[FeatureFlag Environment Args] 
- Environment Identifier
- 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
- 
Sequence[FeatureFlag Tag Args] 
- The tags for the flag
- variations
Sequence[FeatureFlag Variation Args] 
- The options available for your flag
- archived Boolean
- Whether or not the flag is archived.
- defaultOff StringVariation 
- Which of the variations to use when the flag is toggled to off state
- defaultOn StringVariation 
- Which of the variations to use when the flag is toggled to on state
- description String
- Description of the Feature Flag
- environments List<Property Map>
- Environment Identifier
- 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
- orgId 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
- projectId String
- Project Identifier
- List<Property Map>
- The tags for the flag
- variations List<Property Map>
- The options available for your flag
Supporting Types
FeatureFlagEnvironment, FeatureFlagEnvironmentArgs      
- Identifier string
- Identifier of the Environment
- AddTarget List<FeatureRules Flag Environment Add Target Rule> 
- The targeting rules for the flag
- DefaultOff stringVariation 
- Default variation to be served when flag is 'off'
- DefaultOn stringVariation 
- Default variation to be served when flag is 'on'
- State string
- State of the flag in this environment. Possible values are 'on' and 'off'
- Identifier string
- Identifier of the Environment
- AddTarget []FeatureRules Flag Environment Add Target Rule 
- The targeting rules for the flag
- DefaultOff stringVariation 
- Default variation to be served when flag is 'off'
- DefaultOn stringVariation 
- Default variation to be served when flag is 'on'
- State string
- State of the flag in this environment. Possible values are 'on' and 'off'
- identifier String
- Identifier of the Environment
- addTarget List<FeatureRules Flag Environment Add Target Rule> 
- The targeting rules for the flag
- defaultOff StringVariation 
- Default variation to be served when flag is 'off'
- defaultOn StringVariation 
- Default variation to be served when flag is 'on'
- state String
- State of the flag in this environment. Possible values are 'on' and 'off'
- identifier string
- Identifier of the Environment
- addTarget FeatureRules Flag Environment Add Target Rule[] 
- The targeting rules for the flag
- defaultOff stringVariation 
- Default variation to be served when flag is 'off'
- defaultOn stringVariation 
- Default variation to be served when flag is 'on'
- state string
- State of the flag in this environment. Possible values are 'on' and 'off'
- identifier str
- Identifier of the Environment
- add_target_ Sequence[Featurerules Flag Environment Add Target Rule] 
- The targeting rules for the flag
- default_off_ strvariation 
- Default variation to be served when flag is 'off'
- default_on_ strvariation 
- Default variation to be served when flag is 'on'
- state str
- State of the flag in this environment. Possible values are 'on' and 'off'
- identifier String
- Identifier of the Environment
- addTarget List<Property Map>Rules 
- The targeting rules for the flag
- defaultOff StringVariation 
- Default variation to be served when flag is 'off'
- defaultOn StringVariation 
- Default variation to be served when flag is 'on'
- state String
- State of the flag in this environment. Possible values are 'on' and 'off'
FeatureFlagEnvironmentAddTargetRule, FeatureFlagEnvironmentAddTargetRuleArgs            
FeatureFlagTag, FeatureFlagTagArgs      
- Identifier string
- The identifier of the tag
- Identifier string
- The identifier of the tag
- identifier String
- The identifier of the tag
- identifier string
- The identifier of the tag
- identifier str
- The identifier of the tag
- identifier String
- The identifier of the tag
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 pulumi/pulumi-harness
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the harnessTerraform Provider.
