1. Packages
  2. Packages
  3. Azure DevOps Provider
  4. API Docs
  5. Area
Viewing docs for Azure DevOps v3.16.0
published on Friday, Jul 17, 2026 by Pulumi
azuredevops logo azuredevops logo
Viewing docs for Azure DevOps v3.16.0
published on Friday, Jul 17, 2026 by Pulumi

    Manages an Area Path (classification node) in Azure DevOps.

    Area paths allow you to group work items by team or product area. They form a hierarchy under the project’s root area node.

    Example Usage

    Basic area at root level

    import * as pulumi from "@pulumi/pulumi";
    import * as azuredevops from "@pulumi/azuredevops";
    
    const example = new azuredevops.Project("example", {
        name: "Example Project",
        workItemTemplate: "Agile",
        versionControl: "Git",
        visibility: "private",
        description: "Managed by Pulumi",
    });
    const exampleArea = new azuredevops.Area("example", {
        projectId: example.id,
        name: "Frontend",
    });
    
    import pulumi
    import pulumi_azuredevops as azuredevops
    
    example = azuredevops.Project("example",
        name="Example Project",
        work_item_template="Agile",
        version_control="Git",
        visibility="private",
        description="Managed by Pulumi")
    example_area = azuredevops.Area("example",
        project_id=example.id,
        name="Frontend")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := azuredevops.NewProject(ctx, "example", &azuredevops.ProjectArgs{
    			Name:             pulumi.String("Example Project"),
    			WorkItemTemplate: pulumi.String("Agile"),
    			VersionControl:   pulumi.String("Git"),
    			Visibility:       pulumi.String("private"),
    			Description:      pulumi.String("Managed by Pulumi"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = azuredevops.NewArea(ctx, "example", &azuredevops.AreaArgs{
    			ProjectId: example.ID(),
    			Name:      pulumi.String("Frontend"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureDevOps = Pulumi.AzureDevOps;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new AzureDevOps.Project("example", new()
        {
            Name = "Example Project",
            WorkItemTemplate = "Agile",
            VersionControl = "Git",
            Visibility = "private",
            Description = "Managed by Pulumi",
        });
    
        var exampleArea = new AzureDevOps.Area("example", new()
        {
            ProjectId = example.Id,
            Name = "Frontend",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azuredevops.Project;
    import com.pulumi.azuredevops.ProjectArgs;
    import com.pulumi.azuredevops.Area;
    import com.pulumi.azuredevops.AreaArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Project("example", ProjectArgs.builder()
                .name("Example Project")
                .workItemTemplate("Agile")
                .versionControl("Git")
                .visibility("private")
                .description("Managed by Pulumi")
                .build());
    
            var exampleArea = new Area("exampleArea", AreaArgs.builder()
                .projectId(example.id())
                .name("Frontend")
                .build());
    
        }
    }
    
    resources:
      example:
        type: azuredevops:Project
        properties:
          name: Example Project
          workItemTemplate: Agile
          versionControl: Git
          visibility: private
          description: Managed by Pulumi
      exampleArea:
        type: azuredevops:Area
        name: example
        properties:
          projectId: ${example.id}
          name: Frontend
    
    pulumi {
      required_providers {
        azuredevops = {
          source = "pulumi/azuredevops"
        }
      }
    }
    
    resource "azuredevops_project" "example" {
      name               = "Example Project"
      work_item_template = "Agile"
      version_control    = "Git"
      visibility         = "private"
      description        = "Managed by Pulumi"
    }
    resource "azuredevops_area" "example" {
      project_id = azuredevops_project.example.id
      name       = "Frontend"
    }
    

    Nested area paths

    import * as pulumi from "@pulumi/pulumi";
    import * as azuredevops from "@pulumi/azuredevops";
    
    const parent = new azuredevops.Area("parent", {
        projectId: example.id,
        name: "Engineering",
    });
    const child = new azuredevops.Area("child", {
        projectId: example.id,
        name: "Frontend",
        parentAreaId: parent.id.apply(x =>Number(x)),
    });
    
    import pulumi
    import pulumi_azuredevops as azuredevops
    
    parent = azuredevops.Area("parent",
        project_id=example["id"],
        name="Engineering")
    child = azuredevops.Area("child",
        project_id=example["id"],
        name="Frontend",
        parent_area_id=parent.id.apply(lambda x: int(x)))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		parent, err := azuredevops.NewArea(ctx, "parent", &azuredevops.AreaArgs{
    			ProjectId: pulumi.Any(example.Id),
    			Name:      pulumi.String("Engineering"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = azuredevops.NewArea(ctx, "child", &azuredevops.AreaArgs{
    			ProjectId:    pulumi.Any(example.Id),
    			Name:         pulumi.String("Frontend"),
    			ParentAreaId: parent.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureDevOps = Pulumi.AzureDevOps;
    
    return await Deployment.RunAsync(() => 
    {
        var parent = new AzureDevOps.Area("parent", new()
        {
            ProjectId = example.Id,
            Name = "Engineering",
        });
    
        var child = new AzureDevOps.Area("child", new()
        {
            ProjectId = example.Id,
            Name = "Frontend",
            ParentAreaId = parent.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azuredevops.Area;
    import com.pulumi.azuredevops.AreaArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var parent = new Area("parent", AreaArgs.builder()
                .projectId(example.id())
                .name("Engineering")
                .build());
    
            var child = new Area("child", AreaArgs.builder()
                .projectId(example.id())
                .name("Frontend")
                .parentAreaId(parent.id())
                .build());
    
        }
    }
    
    resources:
      parent:
        type: azuredevops:Area
        properties:
          projectId: ${example.id}
          name: Engineering
      child:
        type: azuredevops:Area
        properties:
          projectId: ${example.id}
          name: Frontend
          parentAreaId: ${parent.id}
    
    pulumi {
      required_providers {
        azuredevops = {
          source = "pulumi/azuredevops"
        }
      }
    }
    
    resource "azuredevops_area" "parent" {
      project_id = example.id
      name       = "Engineering"
    }
    resource "azuredevops_area" "child" {
      project_id     = example.id
      name           = "Frontend"
      parent_area_id = azuredevops_area.parent.id
    }
    

    Create Area Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Area(name: string, args: AreaArgs, opts?: CustomResourceOptions);
    @overload
    def Area(resource_name: str,
             args: AreaArgs,
             opts: Optional[ResourceOptions] = None)
    
    @overload
    def Area(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             project_id: Optional[str] = None,
             name: Optional[str] = None,
             parent_area_id: Optional[int] = None)
    func NewArea(ctx *Context, name string, args AreaArgs, opts ...ResourceOption) (*Area, error)
    public Area(string name, AreaArgs args, CustomResourceOptions? opts = null)
    public Area(String name, AreaArgs args)
    public Area(String name, AreaArgs args, CustomResourceOptions options)
    
    type: azuredevops:Area
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "azuredevops_area" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args AreaArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args AreaArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args AreaArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AreaArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AreaArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var areaResource = new AzureDevOps.Area("areaResource", new()
    {
        ProjectId = "string",
        Name = "string",
        ParentAreaId = 0,
    });
    
    example, err := azuredevops.NewArea(ctx, "areaResource", &azuredevops.AreaArgs{
    	ProjectId:    pulumi.String("string"),
    	Name:         pulumi.String("string"),
    	ParentAreaId: pulumi.Int(0),
    })
    
    resource "azuredevops_area" "areaResource" {
      lifecycle {
        create_before_destroy = true
      }
      project_id     = "string"
      name           = "string"
      parent_area_id = 0
    }
    
    var areaResource = new Area("areaResource", AreaArgs.builder()
        .projectId("string")
        .name("string")
        .parentAreaId(0)
        .build());
    
    area_resource = azuredevops.Area("areaResource",
        project_id="string",
        name="string",
        parent_area_id=0)
    
    const areaResource = new azuredevops.Area("areaResource", {
        projectId: "string",
        name: "string",
        parentAreaId: 0,
    });
    
    type: azuredevops:Area
    properties:
        name: string
        parentAreaId: 0
        projectId: string
    

    Area Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Area resource accepts the following input properties:

    ProjectId string
    The ID of the project. Changing this forces a new resource to be created.
    Name string
    The name of the area path node. Must conform to naming restrictions.
    ParentAreaId int
    ProjectId string
    The ID of the project. Changing this forces a new resource to be created.
    Name string
    The name of the area path node. Must conform to naming restrictions.
    ParentAreaId int
    project_id string
    The ID of the project. Changing this forces a new resource to be created.
    name string
    The name of the area path node. Must conform to naming restrictions.
    parent_area_id number
    projectId String
    The ID of the project. Changing this forces a new resource to be created.
    name String
    The name of the area path node. Must conform to naming restrictions.
    parentAreaId Integer
    projectId string
    The ID of the project. Changing this forces a new resource to be created.
    name string
    The name of the area path node. Must conform to naming restrictions.
    parentAreaId number
    project_id str
    The ID of the project. Changing this forces a new resource to be created.
    name str
    The name of the area path node. Must conform to naming restrictions.
    parent_area_id int
    projectId String
    The ID of the project. Changing this forces a new resource to be created.
    name String
    The name of the area path node. Must conform to naming restrictions.
    parentAreaId Number

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Area resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    Id string
    The provider-assigned unique ID for this managed resource.
    Path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    id string
    The provider-assigned unique ID for this managed resource.
    path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    id String
    The provider-assigned unique ID for this managed resource.
    path String
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    id string
    The provider-assigned unique ID for this managed resource.
    path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    id str
    The provider-assigned unique ID for this managed resource.
    path str
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    id String
    The provider-assigned unique ID for this managed resource.
    path String
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).

    Look up Existing Area Resource

    Get an existing Area resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AreaState, opts?: CustomResourceOptions): Area
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            name: Optional[str] = None,
            parent_area_id: Optional[int] = None,
            path: Optional[str] = None,
            project_id: Optional[str] = None) -> Area
    func GetArea(ctx *Context, name string, id IDInput, state *AreaState, opts ...ResourceOption) (*Area, error)
    public static Area Get(string name, Input<string> id, AreaState? state, CustomResourceOptions? opts = null)
    public static Area get(String name, Output<String> id, AreaState state, CustomResourceOptions options)
    resources:  _:    type: azuredevops:Area    get:      id: ${id}
    import {
      to = azuredevops_area.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Name string
    The name of the area path node. Must conform to naming restrictions.
    ParentAreaId int
    Path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    ProjectId string
    The ID of the project. Changing this forces a new resource to be created.
    Name string
    The name of the area path node. Must conform to naming restrictions.
    ParentAreaId int
    Path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    ProjectId string
    The ID of the project. Changing this forces a new resource to be created.
    name string
    The name of the area path node. Must conform to naming restrictions.
    parent_area_id number
    path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    project_id string
    The ID of the project. Changing this forces a new resource to be created.
    name String
    The name of the area path node. Must conform to naming restrictions.
    parentAreaId Integer
    path String
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    projectId String
    The ID of the project. Changing this forces a new resource to be created.
    name string
    The name of the area path node. Must conform to naming restrictions.
    parentAreaId number
    path string
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    projectId string
    The ID of the project. Changing this forces a new resource to be created.
    name str
    The name of the area path node. Must conform to naming restrictions.
    parent_area_id int
    path str
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    project_id str
    The ID of the project. Changing this forces a new resource to be created.
    name String
    The name of the area path node. Must conform to naming restrictions.
    parentAreaId Number
    path String
    The path of the area, in backslash-separated format including the project name (e.g., Example Project\Frontend).
    projectId String
    The ID of the project. Changing this forces a new resource to be created.

    Import

    Area paths can be imported using the project ID and the area’s integer node ID, e.g.:

    $ pulumi import azuredevops:index/area:Area example 00000000-0000-0000-0000-000000000000/42
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Azure DevOps pulumi/pulumi-azuredevops
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the azuredevops Terraform Provider.
    azuredevops logo azuredevops logo
    Viewing docs for Azure DevOps v3.16.0
    published on Friday, Jul 17, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial