import * as pulumi from "@pulumi/pulumi"; /** * Manages a Function App Active Slot. * * ## Example Usage * * ### Windows Function App * * ```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 exampleAccount = new azure.storage.Account("example", { * name: "windowsfunctionappsa", * resourceGroupName: example.name, * location: example.location, * accountTier: "Standard", * accountReplicationType: "LRS", * }); * const exampleServicePlan = new azure.appservice.ServicePlan("example", { * name: "example-app-service-plan", * resourceGroupName: example.name, * location: example.location, * osType: "Windows", * skuName: "Y1", * }); * const exampleWindowsFunctionApp = new azure.appservice.WindowsFunctionApp("example", { * name: "example-windows-function-app", * resourceGroupName: example.name, * location: example.location, * storageAccountName: exampleAccount.name, * servicePlanId: exampleServicePlan.id, * siteConfig: {}, * }); * const exampleWindowsFunctionAppSlot = new azure.appservice.WindowsFunctionAppSlot("example", { * name: "example-windows-function-app-slot", * functionAppId: exampleWindowsFunctionApp.id, * storageAccountName: exampleAccount.name, * siteConfig: {}, * }); * const exampleFunctionAppActiveSlot = new azure.appservice.FunctionAppActiveSlot("example", {slotId: exampleWindowsFunctionAppSlot.id}); * ``` * * ### Linux Function App * * ```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 exampleAccount = new azure.storage.Account("example", { * name: "linuxfunctionappsa", * resourceGroupName: example.name, * location: example.location, * accountTier: "Standard", * accountReplicationType: "LRS", * }); * const exampleServicePlan = new azure.appservice.ServicePlan("example", { * name: "example-app-service-plan", * resourceGroupName: example.name, * location: example.location, * osType: "Linux", * skuName: "Y1", * }); * const exampleLinuxFunctionApp = new azure.appservice.LinuxFunctionApp("example", { * name: "example-linux-function-app", * resourceGroupName: example.name, * location: example.location, * servicePlanId: exampleServicePlan.id, * storageAccountName: exampleAccount.name, * siteConfig: {}, * }); * const exampleLinuxFunctionAppSlot = new azure.appservice.LinuxFunctionAppSlot("example", { * name: "example-linux-function-app-slot", * functionAppId: exampleLinuxFunctionApp.name, * storageAccountName: exampleAccount.name, * siteConfig: {}, * }); * const exampleFunctionAppActiveSlot = new azure.appservice.FunctionAppActiveSlot("example", {slotId: exampleLinuxFunctionAppSlot.id}); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Web` - 2023-12-01 * * ## Import * * a Function App Active Slot can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:appservice/functionAppActiveSlot:FunctionAppActiveSlot example "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Web/sites/site1" * ``` */ export declare class FunctionAppActiveSlot extends pulumi.CustomResource { /** * Get an existing FunctionAppActiveSlot 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?: FunctionAppActiveSlotState, opts?: pulumi.CustomResourceOptions): FunctionAppActiveSlot; /** * Returns true if the given object is an instance of FunctionAppActiveSlot. 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 FunctionAppActiveSlot; /** * The timestamp of the last successful swap with `Production` */ readonly lastSuccessfulSwap: pulumi.Output; /** * The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`. Changing this forces a new resource to be created. */ readonly overwriteNetworkConfig: pulumi.Output; /** * The ID of the Slot to swap with `Production`. */ readonly slotId: pulumi.Output; /** * Create a FunctionAppActiveSlot 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: FunctionAppActiveSlotArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FunctionAppActiveSlot resources. */ export interface FunctionAppActiveSlotState { /** * The timestamp of the last successful swap with `Production` */ lastSuccessfulSwap?: pulumi.Input; /** * The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`. Changing this forces a new resource to be created. */ overwriteNetworkConfig?: pulumi.Input; /** * The ID of the Slot to swap with `Production`. */ slotId?: pulumi.Input; } /** * The set of arguments for constructing a FunctionAppActiveSlot resource. */ export interface FunctionAppActiveSlotArgs { /** * The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`. Changing this forces a new resource to be created. */ overwriteNetworkConfig?: pulumi.Input; /** * The ID of the Slot to swap with `Production`. */ slotId: pulumi.Input; }