import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages an Azure App Configuration Feature. * * > **Note:** App Configuration Features are provisioned using a Data Plane API which requires the role `App Configuration Data Owner` on either the App Configuration or a parent scope (such as the Resource Group/Subscription). [More information can be found in the Azure Documentation for App Configuration](https://docs.microsoft.com/azure/azure-app-configuration/concept-enable-rbac#azure-built-in-roles-for-azure-app-configuration). This is similar to providing App Configuration Keys. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const appconf = new azure.appconfiguration.ConfigurationStore("appconf", { * name: "appConf1", * resourceGroupName: example.name, * location: example.location, * }); * const current = azure.core.getClientConfig({}); * const appconfDataowner = new azure.authorization.Assignment("appconf_dataowner", { * scope: appconf.id, * roleDefinitionName: "App Configuration Data Owner", * principalId: current.then(current => current.objectId), * }); * const test = new azure.appconfiguration.ConfigurationFeature("test", { * configurationStoreId: appconf.id, * description: "test description", * name: "test-ackey", * label: "test-ackeylabel", * enabled: true, * }); * ``` * * ## Import * * App Configuration Features can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:appconfiguration/configurationFeature:ConfigurationFeature test https://appconfname1.azconfig.io/kv/.appconfig.featureflag%2FkeyName?label=labelName * ``` * * If you wish to import with an empty label then simply leave the label's name blank: * * ```sh * $ pulumi import azure:appconfiguration/configurationFeature:ConfigurationFeature test https://appconfname1.azconfig.io/kv/.appconfig.featureflag%2FkeyName?label= * ``` */ export declare class ConfigurationFeature extends pulumi.CustomResource { /** * Get an existing ConfigurationFeature 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, state?: ConfigurationFeatureState, opts?: pulumi.CustomResourceOptions): ConfigurationFeature; /** * Returns true if the given object is an instance of ConfigurationFeature. 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 ConfigurationFeature; /** * Specifies the id of the App Configuration. Changing this forces a new resource to be created. */ readonly configurationStoreId: pulumi.Output; /** * A `customFilter` block as defined below. */ readonly customFilters: pulumi.Output; /** * The description of the App Configuration Feature. */ readonly description: pulumi.Output; /** * The status of the App Configuration Feature. By default, this is set to false. */ readonly enabled: pulumi.Output; readonly etag: pulumi.Output; /** * The key of the App Configuration Feature. The value for `name` will be used if this is unspecified. Changing this forces a new resource to be created. */ readonly key: pulumi.Output; /** * The label of the App Configuration Feature. Changing this forces a new resource to be created. */ readonly label: pulumi.Output; /** * Should this App Configuration Feature be Locked to prevent changes? */ readonly locked: pulumi.Output; /** * The name of the App Configuration Feature. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * A number representing the value of the percentage required to enable this feature. */ readonly percentageFilterValue: pulumi.Output; /** * A mapping of tags to assign to the resource. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * A `targetingFilter` block as defined below. */ readonly targetingFilters: pulumi.Output; /** * A `timewindowFilter` block as defined below. */ readonly timewindowFilters: pulumi.Output; /** * Create a ConfigurationFeature 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: ConfigurationFeatureArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ConfigurationFeature resources. */ export interface ConfigurationFeatureState { /** * Specifies the id of the App Configuration. Changing this forces a new resource to be created. */ configurationStoreId?: pulumi.Input; /** * A `customFilter` block as defined below. */ customFilters?: pulumi.Input[]>; /** * The description of the App Configuration Feature. */ description?: pulumi.Input; /** * The status of the App Configuration Feature. By default, this is set to false. */ enabled?: pulumi.Input; etag?: pulumi.Input; /** * The key of the App Configuration Feature. The value for `name` will be used if this is unspecified. Changing this forces a new resource to be created. */ key?: pulumi.Input; /** * The label of the App Configuration Feature. Changing this forces a new resource to be created. */ label?: pulumi.Input; /** * Should this App Configuration Feature be Locked to prevent changes? */ locked?: pulumi.Input; /** * The name of the App Configuration Feature. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * A number representing the value of the percentage required to enable this feature. */ percentageFilterValue?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * A `targetingFilter` block as defined below. */ targetingFilters?: pulumi.Input[]>; /** * A `timewindowFilter` block as defined below. */ timewindowFilters?: pulumi.Input[]>; } /** * The set of arguments for constructing a ConfigurationFeature resource. */ export interface ConfigurationFeatureArgs { /** * Specifies the id of the App Configuration. Changing this forces a new resource to be created. */ configurationStoreId: pulumi.Input; /** * A `customFilter` block as defined below. */ customFilters?: pulumi.Input[]>; /** * The description of the App Configuration Feature. */ description?: pulumi.Input; /** * The status of the App Configuration Feature. By default, this is set to false. */ enabled?: pulumi.Input; etag?: pulumi.Input; /** * The key of the App Configuration Feature. The value for `name` will be used if this is unspecified. Changing this forces a new resource to be created. */ key?: pulumi.Input; /** * The label of the App Configuration Feature. Changing this forces a new resource to be created. */ label?: pulumi.Input; /** * Should this App Configuration Feature be Locked to prevent changes? */ locked?: pulumi.Input; /** * The name of the App Configuration Feature. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * A number representing the value of the percentage required to enable this feature. */ percentageFilterValue?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * A `targetingFilter` block as defined below. */ targetingFilters?: pulumi.Input[]>; /** * A `timewindowFilter` block as defined below. */ timewindowFilters?: pulumi.Input[]>; }