import * as pulumi from "@pulumi/pulumi"; /** * Manages a Template Deployment at a Management Group Scope. * * > **Note:** Deleting a Deployment at the Management Group Scope will not delete any resources created by the deployment. * * > **Note:** Deployments to a Management Group are always Incrementally applied. Existing resources that are not part of the template will not be removed. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = azure.management.getGroup({ * name: "00000000-0000-0000-0000-000000000000", * }); * const exampleGroupTemplateDeployment = new azure.management.GroupTemplateDeployment("example", { * name: "example", * location: "West Europe", * managementGroupId: example.then(example => example.id), * templateContent: `{ * \\"schema\\": \\"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#\\", * \\"contentVersion\\": \\"1.0.0.0\\", * \\"parameters\\": { * \\"policyAssignmentName\\": { * \\"type\\": \\"string\\", * \\"defaultValue\\": \\"[guid(parameters('policyDefinitionID'), resourceGroup().name)]\\", * \\"metadata\\": { * \\"description\\": \\"Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides.\\" * } * }, * \\"policyDefinitionID\\": { * \\"type\\": \\"string\\", * \\"metadata\\": { * \\"description\\": \\"Specifies the ID of the policy definition or policy set definition being assigned.\\" * } * } * }, * \\"resources\\": [ * { * \\"type\\": \\"Microsoft.Authorization/policyAssignments\\", * \\"name\\": \\"[parameters('policyAssignmentName')]\\", * \\"apiVersion\\": \\"2019-09-01\\", * \\"properties\\": { * \\"scope\\": \\"[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]\\", * \\"policyDefinitionId\\": \\"[parameters('policyDefinitionID')]\\" * } * } * ] * } * `, * parametersContent: `{ * \\"schema\\": \\"https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#\\", * \\"contentVersion\\": \\"1.0.0.0\\", * \\"parameters\\": { * \\"policyDefinitionID\\": { * \\"value\\": \\"/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a\\" * } * } * } * `, * }); * ``` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * import * as std from "@pulumi/std"; * * const example = azure.management.getGroup({ * name: "00000000-0000-0000-0000-000000000000", * }); * const exampleGroupTemplateDeployment = new azure.management.GroupTemplateDeployment("example", { * name: "example", * location: "West Europe", * managementGroupId: example.then(example => example.id), * templateContent: std.file({ * input: "templates/example-deploy-template.json", * }).then(invoke => invoke.result), * parametersContent: std.file({ * input: "templates/example-deploy-params.json", * }).then(invoke => invoke.result), * }); * ``` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = azure.management.getGroup({ * name: "00000000-0000-0000-0000-000000000000", * }); * const exampleGetTemplateSpecVersion = azure.core.getTemplateSpecVersion({ * name: "exampleTemplateForManagementGroup", * resourceGroupName: "exampleResourceGroup", * version: "v1.0.9", * }); * const exampleGroupTemplateDeployment = new azure.management.GroupTemplateDeployment("example", { * name: "example", * location: "West Europe", * managementGroupId: example.then(example => example.id), * templateSpecVersionId: exampleGetTemplateSpecVersion.then(exampleGetTemplateSpecVersion => exampleGetTemplateSpecVersion.id), * }); * ``` * * ## Import * * Management Group Template Deployments can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:management/groupTemplateDeployment:GroupTemplateDeployment example /providers/Microsoft.Management/managementGroups/my-management-group-id/providers/Microsoft.Resources/deployments/deploy1 * ``` */ export declare class GroupTemplateDeployment extends pulumi.CustomResource { /** * Get an existing GroupTemplateDeployment 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?: GroupTemplateDeploymentState, opts?: pulumi.CustomResourceOptions): GroupTemplateDeployment; /** * Returns true if the given object is an instance of GroupTemplateDeployment. 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 GroupTemplateDeployment; /** * 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 Azure Region where the Template should exist. Changing this forces a new Template to be created. */ readonly location: pulumi.Output; /** * The ID of the Management Group to apply the Deployment Template to. Changing this forces a new resource to be created. */ readonly managementGroupId: pulumi.Output; /** * The name which should be used for this Template Deployment. Changing this forces a new 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. */ readonly parametersContent: pulumi.Output; /** * A mapping of tags which should be assigned to the Template. */ 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 GroupTemplateDeployment 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: GroupTemplateDeploymentArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering GroupTemplateDeployment resources. */ export interface GroupTemplateDeploymentState { /** * 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 Azure Region where the Template should exist. Changing this forces a new Template to be created. */ location?: pulumi.Input; /** * The ID of the Management Group to apply the Deployment Template to. Changing this forces a new resource to be created. */ managementGroupId?: pulumi.Input; /** * The name which should be used for this Template Deployment. Changing this forces a new 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. */ parametersContent?: pulumi.Input; /** * A mapping of tags which should be assigned to the Template. */ 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 GroupTemplateDeployment resource. */ export interface GroupTemplateDeploymentArgs { /** * 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 Azure Region where the Template should exist. Changing this forces a new Template to be created. */ location?: pulumi.Input; /** * The ID of the Management Group to apply the Deployment Template to. Changing this forces a new resource to be created. */ managementGroupId: pulumi.Input; /** * The name which should be used for this Template Deployment. Changing this forces a new Template Deployment to be created. */ name?: pulumi.Input; /** * The contents of the ARM Template parameters file - containing a JSON list of parameters. */ parametersContent?: pulumi.Input; /** * A mapping of tags which should be assigned to the Template. */ 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; }