import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a Dev Center. * * ## 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 exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity("example", { * name: "example", * resourceGroupName: example.name, * location: example.location, * }); * const exampleDevCenter = new azure.devcenter.DevCenter("example", { * location: example.location, * name: "example", * resourceGroupName: example.name, * }); * ``` * * ## Blocks Reference * * ### `identity` Block * * The `identity` block supports the following arguments: * * * `type` - (Required) Specifies the type of Managed Identity that should be assigned to this Dev Center. Possible values are `SystemAssigned`, `SystemAssigned, UserAssigned` and `UserAssigned`. * * `identityIds` - (Optional) A list of the User Assigned Identity IDs that should be assigned to this Dev Center. * * In addition to the arguments defined above, the `identity` block exports the following attributes: * * * `principalId` - The Principal ID for the System-Assigned Managed Identity assigned to this Dev Center. * * `tenantId` - The Tenant ID for the System-Assigned Managed Identity assigned to this Dev Center. * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.DevCenter` - 2025-02-01 * * ## Import * * An existing Dev Center can be imported into Pulumi using the `resource id`, e.g. * * ```sh * $ pulumi import azure:devcenter/devCenter:DevCenter example /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devCenters/{devCenterName} * ``` * * * Where `{subscriptionId}` is the ID of the Azure Subscription where the Dev Center exists. For example `12345678-1234-9876-4563-123456789012`. * * Where `{resourceGroupName}` is the name of Resource Group where this Dev Center exists. For example `example-resource-group`. * * Where `{devCenterName}` is the name of the Dev Center. For example `devCenterValue`. */ export declare class DevCenter extends pulumi.CustomResource { /** * Get an existing DevCenter 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?: DevCenterState, opts?: pulumi.CustomResourceOptions): DevCenter; /** * Returns true if the given object is an instance of DevCenter. 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 DevCenter; /** * The URI of the Dev Center. */ readonly devCenterUri: pulumi.Output; /** * An `identity` block as defined below. Specifies the Managed Identity which should be assigned to this Dev Center. */ readonly identity: pulumi.Output; /** * The Azure Region where the Dev Center should exist. Changing this forces a new Dev Center to be created. */ readonly location: pulumi.Output; /** * Specifies the name of this Dev Center. Changing this forces a new Dev Center to be created. */ readonly name: pulumi.Output; /** * Whether the project catalogs associated with projects in this Dev Center are allowed to sync catalog items. Defaults to `false`. */ readonly projectCatalogItemSyncEnabled: pulumi.Output; /** * Specifies the name of the Resource Group within which this Dev Center should exist. Changing this forces a new Dev Center to be created. */ readonly resourceGroupName: pulumi.Output; /** * A mapping of tags which should be assigned to the Dev Center. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Create a DevCenter 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: DevCenterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering DevCenter resources. */ export interface DevCenterState { /** * The URI of the Dev Center. */ devCenterUri?: pulumi.Input; /** * An `identity` block as defined below. Specifies the Managed Identity which should be assigned to this Dev Center. */ identity?: pulumi.Input; /** * The Azure Region where the Dev Center should exist. Changing this forces a new Dev Center to be created. */ location?: pulumi.Input; /** * Specifies the name of this Dev Center. Changing this forces a new Dev Center to be created. */ name?: pulumi.Input; /** * Whether the project catalogs associated with projects in this Dev Center are allowed to sync catalog items. Defaults to `false`. */ projectCatalogItemSyncEnabled?: pulumi.Input; /** * Specifies the name of the Resource Group within which this Dev Center should exist. Changing this forces a new Dev Center to be created. */ resourceGroupName?: pulumi.Input; /** * A mapping of tags which should be assigned to the Dev Center. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; } /** * The set of arguments for constructing a DevCenter resource. */ export interface DevCenterArgs { /** * An `identity` block as defined below. Specifies the Managed Identity which should be assigned to this Dev Center. */ identity?: pulumi.Input; /** * The Azure Region where the Dev Center should exist. Changing this forces a new Dev Center to be created. */ location?: pulumi.Input; /** * Specifies the name of this Dev Center. Changing this forces a new Dev Center to be created. */ name?: pulumi.Input; /** * Whether the project catalogs associated with projects in this Dev Center are allowed to sync catalog items. Defaults to `false`. */ projectCatalogItemSyncEnabled?: pulumi.Input; /** * Specifies the name of the Resource Group within which this Dev Center should exist. Changing this forces a new Dev Center to be created. */ resourceGroupName: pulumi.Input; /** * A mapping of tags which should be assigned to the Dev Center. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }