import * as pulumi from "@pulumi/pulumi"; /** * Manages a Management Lock which is scoped to a Subscription, Resource Group or Resource. * * ## Example Usage * * ### Subscription Level Lock) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const current = azure.core.getSubscription({}); * const subscription_level = new azure.management.Lock("subscription-level", { * name: "subscription-level", * scope: current.then(current => current.id), * lockLevel: "CanNotDelete", * notes: "Items can't be deleted in this subscription!", * }); * ``` * * ### Resource Group Level Lock) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "locked-resource-group", * location: "West Europe", * }); * const resource_group_level = new azure.management.Lock("resource-group-level", { * name: "resource-group-level", * scope: example.id, * lockLevel: "ReadOnly", * notes: "This Resource Group is Read-Only", * }); * ``` * * ### Resource Level Lock) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "locked-resource-group", * location: "West Europe", * }); * const examplePublicIp = new azure.network.PublicIp("example", { * name: "locked-publicip", * location: example.location, * resourceGroupName: example.name, * allocationMethod: "Static", * idleTimeoutInMinutes: 30, * }); * const public_ip = new azure.management.Lock("public-ip", { * name: "resource-ip", * scope: examplePublicIp.id, * lockLevel: "CanNotDelete", * notes: "Locked because it's needed by a third-party", * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Authorization` - 2020-05-01 * * ## Import * * Management Locks can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:management/lock:Lock lock1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Authorization/locks/lock1 * ``` */ export declare class Lock extends pulumi.CustomResource { /** * Get an existing Lock 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?: LockState, opts?: pulumi.CustomResourceOptions): Lock; /** * Returns true if the given object is an instance of Lock. 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 Lock; /** * Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created. * * > **Note:** `CanNotDelete` means authorized users are able to read and modify the resources, but not delete. `ReadOnly` means authorized users can only read from a resource, but they can't modify or delete it. */ readonly lockLevel: pulumi.Output; /** * Specifies the name of the Management Lock. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created. */ readonly notes: pulumi.Output; /** * Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created. */ readonly scope: pulumi.Output; /** * Create a Lock 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: LockArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Lock resources. */ export interface LockState { /** * Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created. * * > **Note:** `CanNotDelete` means authorized users are able to read and modify the resources, but not delete. `ReadOnly` means authorized users can only read from a resource, but they can't modify or delete it. */ lockLevel?: pulumi.Input; /** * Specifies the name of the Management Lock. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created. */ notes?: pulumi.Input; /** * Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created. */ scope?: pulumi.Input; } /** * The set of arguments for constructing a Lock resource. */ export interface LockArgs { /** * Specifies the Level to be used for this Lock. Possible values are `CanNotDelete` and `ReadOnly`. Changing this forces a new resource to be created. * * > **Note:** `CanNotDelete` means authorized users are able to read and modify the resources, but not delete. `ReadOnly` means authorized users can only read from a resource, but they can't modify or delete it. */ lockLevel: pulumi.Input; /** * Specifies the name of the Management Lock. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * Specifies some notes about the lock. Maximum of 512 characters. Changing this forces a new resource to be created. */ notes?: pulumi.Input; /** * Specifies the scope at which the Management Lock should be created. Changing this forces a new resource to be created. */ scope: pulumi.Input; }