import * as pulumi from "@pulumi/pulumi"; /** * Manages a Resource Group Template Deployment. * * > **Note:** This resource will automatically attempt to delete resources deployed by the ARM Template when it is deleted. This behavior can be disabled in the provider `features` block by setting the `deleteNestedItemsDuringDeletion` field to `false` within the `templateDeployment` block. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * import * as std from "@pulumi/std"; * * const vnetName = "example-vnet"; * const example = new azure.core.ResourceGroupTemplateDeployment("example", { * name: "example-deploy", * resourceGroupName: "example-group", * deploymentMode: "Incremental", * parametersContent: JSON.stringify({ * vnetName: { * value: vnetName, * }, * }), * templateContent: `{ * \\"schema\\": \\"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#\\", * \\"contentVersion\\": \\"1.0.0.0\\", * \\"parameters\\": { * \\"vnetName\\": { * \\"type\\": \\"string\\", * \\"metadata\\": { * \\"description\\": \\"Name of the VNET\\" * } * } * }, * \\"variables\\": {}, * \\"resources\\": [ * { * \\"type\\": \\"Microsoft.Network/virtualNetworks\\", * \\"apiVersion\\": \\"2020-05-01\\", * \\"name\\": \\"[parameters('vnetName')]\\", * \\"location\\": \\"[resourceGroup().location]\\", * \\"properties\\": { * \\"addressSpace\\": { * \\"addressPrefixes\\": [ * \\"10.0.0.0/16\\" * ] * } * } * } * ], * \\"outputs\\": { * \\"exampleOutput\\": { * \\"type\\": \\"string\\", * \\"value\\": \\"someoutput\\" * } * } * } * `, * }); * export const armExampleOutput = std.jsondecodeOutput({ * input: example.outputContent, * }).apply(invoke => invoke.result?.exampleOutput?.value); * ``` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = azure.core.getTemplateSpecVersion({ * name: "myTemplateForResourceGroup", * resourceGroupName: "myResourceGroup", * version: "v3.4.0", * }); * const exampleResourceGroupTemplateDeployment = new azure.core.ResourceGroupTemplateDeployment("example", { * name: "example-deploy", * resourceGroupName: "example-group", * deploymentMode: "Incremental", * templateSpecVersionId: example.then(example => example.id), * }); * ``` * * ## Import * * Resource Group Template Deployments can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:core/resourceGroupTemplateDeployment:ResourceGroupTemplateDeployment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Resources/deployments/template1 * ``` */ export declare class ResourceGroupTemplateDeployment extends pulumi.CustomResource { /** * Get an existing ResourceGroupTemplateDeployment 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?: ResourceGroupTemplateDeploymentState, opts?: pulumi.CustomResourceOptions): ResourceGroupTemplateDeployment; /** * Returns true if the given object is an instance of ResourceGroupTemplateDeployment. 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 ResourceGroupTemplateDeployment; /** * The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`. */ readonly debugLevel: pulumi.Output; /** * The Deployment Mode for this Resource Group Template Deployment. Possible values are `Complete` (where resources in the Resource Group not specified in the ARM Template will be destroyed) and `Incremental` (where resources are additive only). * * > **Note:** If `deploymentMode` is set to `Complete` then resources within this Resource Group which are not defined in the ARM Template will be deleted. */ readonly deploymentMode: pulumi.Output; /** * The name which should be used for this Resource Group Template Deployment. Changing this forces a new Resource Group Template Deployment to be created. */ readonly name: pulumi.Output; /** * The JSON Content of the Outputs of the ARM Template Deployment. */ readonly outputContent: pulumi.Output; /** * The contents of the ARM Template parameters file - containing a JSON list of parameters. * * > An example of how to pass variables into an ARM Template can be seen in the example. */ readonly parametersContent: pulumi.Output; /** * The name of the Resource Group where the Resource Group Template Deployment should exist. Changing this forces a new Resource Group Template Deployment to be created. */ readonly resourceGroupName: pulumi.Output; /** * A mapping of tags which should be assigned to the Resource Group Template Deployment. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `templateSpecVersionId`. */ readonly templateContent: pulumi.Output; /** * The ID of the Template Spec Version to deploy. Cannot be specified with `templateContent`. */ readonly templateSpecVersionId: pulumi.Output; /** * Create a ResourceGroupTemplateDeployment 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: ResourceGroupTemplateDeploymentArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ResourceGroupTemplateDeployment resources. */ export interface ResourceGroupTemplateDeploymentState { /** * The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`. */ debugLevel?: pulumi.Input; /** * The Deployment Mode for this Resource Group Template Deployment. Possible values are `Complete` (where resources in the Resource Group not specified in the ARM Template will be destroyed) and `Incremental` (where resources are additive only). * * > **Note:** If `deploymentMode` is set to `Complete` then resources within this Resource Group which are not defined in the ARM Template will be deleted. */ deploymentMode?: pulumi.Input; /** * The name which should be used for this Resource Group Template Deployment. Changing this forces a new Resource Group Template Deployment to be created. */ name?: pulumi.Input; /** * The JSON Content of the Outputs of the ARM Template Deployment. */ outputContent?: pulumi.Input; /** * The contents of the ARM Template parameters file - containing a JSON list of parameters. * * > An example of how to pass variables into an ARM Template can be seen in the example. */ parametersContent?: pulumi.Input; /** * The name of the Resource Group where the Resource Group Template Deployment should exist. Changing this forces a new Resource Group Template Deployment to be created. */ resourceGroupName?: pulumi.Input; /** * A mapping of tags which should be assigned to the Resource Group Template Deployment. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `templateSpecVersionId`. */ templateContent?: pulumi.Input; /** * The ID of the Template Spec Version to deploy. Cannot be specified with `templateContent`. */ templateSpecVersionId?: pulumi.Input; } /** * The set of arguments for constructing a ResourceGroupTemplateDeployment resource. */ export interface ResourceGroupTemplateDeploymentArgs { /** * The Debug Level which should be used for this Resource Group Template Deployment. Possible values are `none`, `requestContent`, `responseContent` and `requestContent, responseContent`. */ debugLevel?: pulumi.Input; /** * The Deployment Mode for this Resource Group Template Deployment. Possible values are `Complete` (where resources in the Resource Group not specified in the ARM Template will be destroyed) and `Incremental` (where resources are additive only). * * > **Note:** If `deploymentMode` is set to `Complete` then resources within this Resource Group which are not defined in the ARM Template will be deleted. */ deploymentMode: pulumi.Input; /** * The name which should be used for this Resource Group Template Deployment. Changing this forces a new Resource Group Template Deployment to be created. */ name?: pulumi.Input; /** * The contents of the ARM Template parameters file - containing a JSON list of parameters. * * > An example of how to pass variables into an ARM Template can be seen in the example. */ parametersContent?: pulumi.Input; /** * The name of the Resource Group where the Resource Group Template Deployment should exist. Changing this forces a new Resource Group Template Deployment to be created. */ resourceGroupName: pulumi.Input; /** * A mapping of tags which should be assigned to the Resource Group Template Deployment. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The contents of the ARM Template which should be deployed into this Resource Group. Cannot be specified with `templateSpecVersionId`. */ templateContent?: pulumi.Input; /** * The ID of the Template Spec Version to deploy. Cannot be specified with `templateContent`. */ templateSpecVersionId?: pulumi.Input; }