1. Packages
  2. Vra Provider
  3. API Docs
  4. Project
vra 0.12.0 published on Monday, Apr 14, 2025 by vmware

vra.Project

Explore with Pulumi AI

vra logo
vra 0.12.0 published on Monday, Apr 14, 2025 by vmware

    Example Usage

    S

    This is an example of how to create a project resource.

    import * as pulumi from "@pulumi/pulumi";
    import * as vra from "@pulumi/vra";
    
    const _this = new vra.Project("this", {
        description: "terraform test project",
        zoneAssignments: [{
            zoneId: data.vra_zone["this"].id,
            priority: 1,
            maxInstances: 2,
            cpuLimit: 1024,
            memoryLimitMb: 8192,
            storageLimitGb: 65536,
        }],
        customProperties: {
            foo: "bar",
            foo2: "bar2",
        },
        sharedResources: false,
        administratorRoles: [
            {
                email: "jason@vra.local",
                type: "user",
            },
            {
                email: "jason-group@vra.local",
                type: "group",
            },
        ],
        memberRoles: [
            {
                email: "tony@vra.local",
                type: "user",
            },
            {
                email: "tony-group@vra.local",
                type: "group",
            },
        ],
        supervisorRoles: [
            {
                email: "ethan@vra.local",
                type: "user",
            },
            {
                email: "ethan-group@vra.local",
                type: "group",
            },
        ],
        viewerRoles: [
            {
                email: "shauna@vra.local",
                type: "user",
            },
            {
                email: "shauna-group@vra.local",
                type: "group",
            },
        ],
        operationTimeout: 6000,
        machineNamingTemplate: "${resource.name}-${####}",
        placementPolicy: "SPREAD",
        constraints: {
            extensibilities: [
                {
                    expression: "foo:bar",
                    mandatory: false,
                },
                {
                    expression: "environment:test",
                    mandatory: true,
                },
            ],
            networks: [
                {
                    expression: "foo:bar",
                    mandatory: false,
                },
                {
                    expression: "environment:test",
                    mandatory: true,
                },
            ],
            storages: [
                {
                    expression: "foo:bar",
                    mandatory: false,
                },
                {
                    expression: "environment:test",
                    mandatory: true,
                },
            ],
        },
    });
    
    import pulumi
    import pulumi_vra as vra
    
    this = vra.Project("this",
        description="terraform test project",
        zone_assignments=[{
            "zone_id": data["vra_zone"]["this"]["id"],
            "priority": 1,
            "max_instances": 2,
            "cpu_limit": 1024,
            "memory_limit_mb": 8192,
            "storage_limit_gb": 65536,
        }],
        custom_properties={
            "foo": "bar",
            "foo2": "bar2",
        },
        shared_resources=False,
        administrator_roles=[
            {
                "email": "jason@vra.local",
                "type": "user",
            },
            {
                "email": "jason-group@vra.local",
                "type": "group",
            },
        ],
        member_roles=[
            {
                "email": "tony@vra.local",
                "type": "user",
            },
            {
                "email": "tony-group@vra.local",
                "type": "group",
            },
        ],
        supervisor_roles=[
            {
                "email": "ethan@vra.local",
                "type": "user",
            },
            {
                "email": "ethan-group@vra.local",
                "type": "group",
            },
        ],
        viewer_roles=[
            {
                "email": "shauna@vra.local",
                "type": "user",
            },
            {
                "email": "shauna-group@vra.local",
                "type": "group",
            },
        ],
        operation_timeout=6000,
        machine_naming_template="${resource.name}-${####}",
        placement_policy="SPREAD",
        constraints={
            "extensibilities": [
                {
                    "expression": "foo:bar",
                    "mandatory": False,
                },
                {
                    "expression": "environment:test",
                    "mandatory": True,
                },
            ],
            "networks": [
                {
                    "expression": "foo:bar",
                    "mandatory": False,
                },
                {
                    "expression": "environment:test",
                    "mandatory": True,
                },
            ],
            "storages": [
                {
                    "expression": "foo:bar",
                    "mandatory": False,
                },
                {
                    "expression": "environment:test",
                    "mandatory": True,
                },
            ],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/vra/vra"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := vra.NewProject(ctx, "this", &vra.ProjectArgs{
    			Description: pulumi.String("terraform test project"),
    			ZoneAssignments: vra.ProjectZoneAssignmentArray{
    				&vra.ProjectZoneAssignmentArgs{
    					ZoneId:         pulumi.Any(data.Vra_zone.This.Id),
    					Priority:       pulumi.Float64(1),
    					MaxInstances:   pulumi.Float64(2),
    					CpuLimit:       pulumi.Float64(1024),
    					MemoryLimitMb:  pulumi.Float64(8192),
    					StorageLimitGb: pulumi.Float64(65536),
    				},
    			},
    			CustomProperties: pulumi.StringMap{
    				"foo":  pulumi.String("bar"),
    				"foo2": pulumi.String("bar2"),
    			},
    			SharedResources: pulumi.Bool(false),
    			AdministratorRoles: vra.ProjectAdministratorRoleArray{
    				&vra.ProjectAdministratorRoleArgs{
    					Email: pulumi.String("jason@vra.local"),
    					Type:  pulumi.String("user"),
    				},
    				&vra.ProjectAdministratorRoleArgs{
    					Email: pulumi.String("jason-group@vra.local"),
    					Type:  pulumi.String("group"),
    				},
    			},
    			MemberRoles: vra.ProjectMemberRoleArray{
    				&vra.ProjectMemberRoleArgs{
    					Email: pulumi.String("tony@vra.local"),
    					Type:  pulumi.String("user"),
    				},
    				&vra.ProjectMemberRoleArgs{
    					Email: pulumi.String("tony-group@vra.local"),
    					Type:  pulumi.String("group"),
    				},
    			},
    			SupervisorRoles: vra.ProjectSupervisorRoleArray{
    				&vra.ProjectSupervisorRoleArgs{
    					Email: pulumi.String("ethan@vra.local"),
    					Type:  pulumi.String("user"),
    				},
    				&vra.ProjectSupervisorRoleArgs{
    					Email: pulumi.String("ethan-group@vra.local"),
    					Type:  pulumi.String("group"),
    				},
    			},
    			ViewerRoles: vra.ProjectViewerRoleArray{
    				&vra.ProjectViewerRoleArgs{
    					Email: pulumi.String("shauna@vra.local"),
    					Type:  pulumi.String("user"),
    				},
    				&vra.ProjectViewerRoleArgs{
    					Email: pulumi.String("shauna-group@vra.local"),
    					Type:  pulumi.String("group"),
    				},
    			},
    			OperationTimeout:      pulumi.Float64(6000),
    			MachineNamingTemplate: pulumi.String("${resource.name}-${####}"),
    			PlacementPolicy:       pulumi.String("SPREAD"),
    			Constraints: &vra.ProjectConstraintsArgs{
    				Extensibilities: vra.ProjectConstraintsExtensibilityArray{
    					&vra.ProjectConstraintsExtensibilityArgs{
    						Expression: pulumi.String("foo:bar"),
    						Mandatory:  pulumi.Bool(false),
    					},
    					&vra.ProjectConstraintsExtensibilityArgs{
    						Expression: pulumi.String("environment:test"),
    						Mandatory:  pulumi.Bool(true),
    					},
    				},
    				Networks: vra.ProjectConstraintsNetworkArray{
    					&vra.ProjectConstraintsNetworkArgs{
    						Expression: pulumi.String("foo:bar"),
    						Mandatory:  pulumi.Bool(false),
    					},
    					&vra.ProjectConstraintsNetworkArgs{
    						Expression: pulumi.String("environment:test"),
    						Mandatory:  pulumi.Bool(true),
    					},
    				},
    				Storages: vra.ProjectConstraintsStorageArray{
    					&vra.ProjectConstraintsStorageArgs{
    						Expression: pulumi.String("foo:bar"),
    						Mandatory:  pulumi.Bool(false),
    					},
    					&vra.ProjectConstraintsStorageArgs{
    						Expression: pulumi.String("environment:test"),
    						Mandatory:  pulumi.Bool(true),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Vra = Pulumi.Vra;
    
    return await Deployment.RunAsync(() => 
    {
        var @this = new Vra.Project("this", new()
        {
            Description = "terraform test project",
            ZoneAssignments = new[]
            {
                new Vra.Inputs.ProjectZoneAssignmentArgs
                {
                    ZoneId = data.Vra_zone.This.Id,
                    Priority = 1,
                    MaxInstances = 2,
                    CpuLimit = 1024,
                    MemoryLimitMb = 8192,
                    StorageLimitGb = 65536,
                },
            },
            CustomProperties = 
            {
                { "foo", "bar" },
                { "foo2", "bar2" },
            },
            SharedResources = false,
            AdministratorRoles = new[]
            {
                new Vra.Inputs.ProjectAdministratorRoleArgs
                {
                    Email = "jason@vra.local",
                    Type = "user",
                },
                new Vra.Inputs.ProjectAdministratorRoleArgs
                {
                    Email = "jason-group@vra.local",
                    Type = "group",
                },
            },
            MemberRoles = new[]
            {
                new Vra.Inputs.ProjectMemberRoleArgs
                {
                    Email = "tony@vra.local",
                    Type = "user",
                },
                new Vra.Inputs.ProjectMemberRoleArgs
                {
                    Email = "tony-group@vra.local",
                    Type = "group",
                },
            },
            SupervisorRoles = new[]
            {
                new Vra.Inputs.ProjectSupervisorRoleArgs
                {
                    Email = "ethan@vra.local",
                    Type = "user",
                },
                new Vra.Inputs.ProjectSupervisorRoleArgs
                {
                    Email = "ethan-group@vra.local",
                    Type = "group",
                },
            },
            ViewerRoles = new[]
            {
                new Vra.Inputs.ProjectViewerRoleArgs
                {
                    Email = "shauna@vra.local",
                    Type = "user",
                },
                new Vra.Inputs.ProjectViewerRoleArgs
                {
                    Email = "shauna-group@vra.local",
                    Type = "group",
                },
            },
            OperationTimeout = 6000,
            MachineNamingTemplate = "${resource.name}-${####}",
            PlacementPolicy = "SPREAD",
            Constraints = new Vra.Inputs.ProjectConstraintsArgs
            {
                Extensibilities = new[]
                {
                    new Vra.Inputs.ProjectConstraintsExtensibilityArgs
                    {
                        Expression = "foo:bar",
                        Mandatory = false,
                    },
                    new Vra.Inputs.ProjectConstraintsExtensibilityArgs
                    {
                        Expression = "environment:test",
                        Mandatory = true,
                    },
                },
                Networks = new[]
                {
                    new Vra.Inputs.ProjectConstraintsNetworkArgs
                    {
                        Expression = "foo:bar",
                        Mandatory = false,
                    },
                    new Vra.Inputs.ProjectConstraintsNetworkArgs
                    {
                        Expression = "environment:test",
                        Mandatory = true,
                    },
                },
                Storages = new[]
                {
                    new Vra.Inputs.ProjectConstraintsStorageArgs
                    {
                        Expression = "foo:bar",
                        Mandatory = false,
                    },
                    new Vra.Inputs.ProjectConstraintsStorageArgs
                    {
                        Expression = "environment:test",
                        Mandatory = true,
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.vra.Project;
    import com.pulumi.vra.ProjectArgs;
    import com.pulumi.vra.inputs.ProjectZoneAssignmentArgs;
    import com.pulumi.vra.inputs.ProjectAdministratorRoleArgs;
    import com.pulumi.vra.inputs.ProjectMemberRoleArgs;
    import com.pulumi.vra.inputs.ProjectSupervisorRoleArgs;
    import com.pulumi.vra.inputs.ProjectViewerRoleArgs;
    import com.pulumi.vra.inputs.ProjectConstraintsArgs;
    import java.util.List;
    import java.util.ArrayList;
    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 this_ = new Project("this", ProjectArgs.builder()
                .description("terraform test project")
                .zoneAssignments(ProjectZoneAssignmentArgs.builder()
                    .zoneId(data.vra_zone().this().id())
                    .priority(1)
                    .maxInstances(2)
                    .cpuLimit(1024)
                    .memoryLimitMb(8192)
                    .storageLimitGb(65536)
                    .build())
                .customProperties(Map.ofEntries(
                    Map.entry("foo", "bar"),
                    Map.entry("foo2", "bar2")
                ))
                .sharedResources(false)
                .administratorRoles(            
                    ProjectAdministratorRoleArgs.builder()
                        .email("jason@vra.local")
                        .type("user")
                        .build(),
                    ProjectAdministratorRoleArgs.builder()
                        .email("jason-group@vra.local")
                        .type("group")
                        .build())
                .memberRoles(            
                    ProjectMemberRoleArgs.builder()
                        .email("tony@vra.local")
                        .type("user")
                        .build(),
                    ProjectMemberRoleArgs.builder()
                        .email("tony-group@vra.local")
                        .type("group")
                        .build())
                .supervisorRoles(            
                    ProjectSupervisorRoleArgs.builder()
                        .email("ethan@vra.local")
                        .type("user")
                        .build(),
                    ProjectSupervisorRoleArgs.builder()
                        .email("ethan-group@vra.local")
                        .type("group")
                        .build())
                .viewerRoles(            
                    ProjectViewerRoleArgs.builder()
                        .email("shauna@vra.local")
                        .type("user")
                        .build(),
                    ProjectViewerRoleArgs.builder()
                        .email("shauna-group@vra.local")
                        .type("group")
                        .build())
                .operationTimeout(6000)
                .machineNamingTemplate("${resource.name}-${####}")
                .placementPolicy("SPREAD")
                .constraints(ProjectConstraintsArgs.builder()
                    .extensibilities(                
                        ProjectConstraintsExtensibilityArgs.builder()
                            .expression("foo:bar")
                            .mandatory(false)
                            .build(),
                        ProjectConstraintsExtensibilityArgs.builder()
                            .expression("environment:test")
                            .mandatory(true)
                            .build())
                    .networks(                
                        ProjectConstraintsNetworkArgs.builder()
                            .expression("foo:bar")
                            .mandatory(false)
                            .build(),
                        ProjectConstraintsNetworkArgs.builder()
                            .expression("environment:test")
                            .mandatory(true)
                            .build())
                    .storages(                
                        ProjectConstraintsStorageArgs.builder()
                            .expression("foo:bar")
                            .mandatory(false)
                            .build(),
                        ProjectConstraintsStorageArgs.builder()
                            .expression("environment:test")
                            .mandatory(true)
                            .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      this:
        type: vra:Project
        properties:
          description: terraform test project
          zoneAssignments:
            - zoneId: ${data.vra_zone.this.id}
              priority: 1
              maxInstances: 2
              cpuLimit: 1024
              memoryLimitMb: 8192
              storageLimitGb: 65536
          customProperties:
            foo: bar
            foo2: bar2
          sharedResources: false
          administratorRoles:
            - email: jason@vra.local
              type: user
            - email: jason-group@vra.local
              type: group
          memberRoles:
            - email: tony@vra.local
              type: user
            - email: tony-group@vra.local
              type: group
          supervisorRoles:
            - email: ethan@vra.local
              type: user
            - email: ethan-group@vra.local
              type: group
          viewerRoles:
            - email: shauna@vra.local
              type: user
            - email: shauna-group@vra.local
              type: group
          operationTimeout: 6000
          machineNamingTemplate: $${resource.name}-$${####}
          placementPolicy: SPREAD
          constraints:
            extensibilities:
              - expression: foo:bar
                mandatory: false
              - expression: environment:test
                mandatory: true
            networks:
              - expression: foo:bar
                mandatory: false
              - expression: environment:test
                mandatory: true
            storages:
              - expression: foo:bar
                mandatory: false
              - expression: environment:test
                mandatory: true
    

    A project resource supports the following arguments:

    Create Project Resource

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

    Constructor syntax

    new Project(name: string, args?: ProjectArgs, opts?: CustomResourceOptions);
    @overload
    def Project(resource_name: str,
                args: Optional[ProjectArgs] = None,
                opts: Optional[ResourceOptions] = None)
    
    @overload
    def Project(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                administrator_roles: Optional[Sequence[ProjectAdministratorRoleArgs]] = None,
                administrators: Optional[Sequence[str]] = None,
                constraints: Optional[ProjectConstraintsArgs] = None,
                custom_properties: Optional[Mapping[str, str]] = None,
                description: Optional[str] = None,
                machine_naming_template: Optional[str] = None,
                member_roles: Optional[Sequence[ProjectMemberRoleArgs]] = None,
                members: Optional[Sequence[str]] = None,
                name: Optional[str] = None,
                operation_timeout: Optional[float] = None,
                placement_policy: Optional[str] = None,
                project_id: Optional[str] = None,
                shared_resources: Optional[bool] = None,
                supervisor_roles: Optional[Sequence[ProjectSupervisorRoleArgs]] = None,
                viewer_roles: Optional[Sequence[ProjectViewerRoleArgs]] = None,
                viewers: Optional[Sequence[str]] = None,
                zone_assignments: Optional[Sequence[ProjectZoneAssignmentArgs]] = None)
    func NewProject(ctx *Context, name string, args *ProjectArgs, opts ...ResourceOption) (*Project, error)
    public Project(string name, ProjectArgs? args = null, CustomResourceOptions? opts = null)
    public Project(String name, ProjectArgs args)
    public Project(String name, ProjectArgs args, CustomResourceOptions options)
    
    type: vra:Project
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ProjectArgs
    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 ProjectArgs
    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 ProjectArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ProjectArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ProjectArgs
    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 projectResource = new Vra.Project("projectResource", new()
    {
        AdministratorRoles = new[]
        {
            new Vra.Inputs.ProjectAdministratorRoleArgs
            {
                Email = "string",
                Type = "string",
            },
        },
        Constraints = new Vra.Inputs.ProjectConstraintsArgs
        {
            Extensibilities = new[]
            {
                new Vra.Inputs.ProjectConstraintsExtensibilityArgs
                {
                    Expression = "string",
                    Mandatory = false,
                },
            },
            Networks = new[]
            {
                new Vra.Inputs.ProjectConstraintsNetworkArgs
                {
                    Expression = "string",
                    Mandatory = false,
                },
            },
            Storages = new[]
            {
                new Vra.Inputs.ProjectConstraintsStorageArgs
                {
                    Expression = "string",
                    Mandatory = false,
                },
            },
        },
        CustomProperties = 
        {
            { "string", "string" },
        },
        Description = "string",
        MachineNamingTemplate = "string",
        MemberRoles = new[]
        {
            new Vra.Inputs.ProjectMemberRoleArgs
            {
                Email = "string",
                Type = "string",
            },
        },
        Name = "string",
        OperationTimeout = 0,
        PlacementPolicy = "string",
        ProjectId = "string",
        SharedResources = false,
        SupervisorRoles = new[]
        {
            new Vra.Inputs.ProjectSupervisorRoleArgs
            {
                Email = "string",
                Type = "string",
            },
        },
        ViewerRoles = new[]
        {
            new Vra.Inputs.ProjectViewerRoleArgs
            {
                Email = "string",
                Type = "string",
            },
        },
        ZoneAssignments = new[]
        {
            new Vra.Inputs.ProjectZoneAssignmentArgs
            {
                ZoneId = "string",
                CpuLimit = 0,
                MaxInstances = 0,
                MemoryLimitMb = 0,
                Priority = 0,
                StorageLimitGb = 0,
            },
        },
    });
    
    example, err := vra.NewProject(ctx, "projectResource", &vra.ProjectArgs{
    	AdministratorRoles: vra.ProjectAdministratorRoleArray{
    		&vra.ProjectAdministratorRoleArgs{
    			Email: pulumi.String("string"),
    			Type:  pulumi.String("string"),
    		},
    	},
    	Constraints: &vra.ProjectConstraintsArgs{
    		Extensibilities: vra.ProjectConstraintsExtensibilityArray{
    			&vra.ProjectConstraintsExtensibilityArgs{
    				Expression: pulumi.String("string"),
    				Mandatory:  pulumi.Bool(false),
    			},
    		},
    		Networks: vra.ProjectConstraintsNetworkArray{
    			&vra.ProjectConstraintsNetworkArgs{
    				Expression: pulumi.String("string"),
    				Mandatory:  pulumi.Bool(false),
    			},
    		},
    		Storages: vra.ProjectConstraintsStorageArray{
    			&vra.ProjectConstraintsStorageArgs{
    				Expression: pulumi.String("string"),
    				Mandatory:  pulumi.Bool(false),
    			},
    		},
    	},
    	CustomProperties: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Description:           pulumi.String("string"),
    	MachineNamingTemplate: pulumi.String("string"),
    	MemberRoles: vra.ProjectMemberRoleArray{
    		&vra.ProjectMemberRoleArgs{
    			Email: pulumi.String("string"),
    			Type:  pulumi.String("string"),
    		},
    	},
    	Name:             pulumi.String("string"),
    	OperationTimeout: pulumi.Float64(0),
    	PlacementPolicy:  pulumi.String("string"),
    	ProjectId:        pulumi.String("string"),
    	SharedResources:  pulumi.Bool(false),
    	SupervisorRoles: vra.ProjectSupervisorRoleArray{
    		&vra.ProjectSupervisorRoleArgs{
    			Email: pulumi.String("string"),
    			Type:  pulumi.String("string"),
    		},
    	},
    	ViewerRoles: vra.ProjectViewerRoleArray{
    		&vra.ProjectViewerRoleArgs{
    			Email: pulumi.String("string"),
    			Type:  pulumi.String("string"),
    		},
    	},
    	ZoneAssignments: vra.ProjectZoneAssignmentArray{
    		&vra.ProjectZoneAssignmentArgs{
    			ZoneId:         pulumi.String("string"),
    			CpuLimit:       pulumi.Float64(0),
    			MaxInstances:   pulumi.Float64(0),
    			MemoryLimitMb:  pulumi.Float64(0),
    			Priority:       pulumi.Float64(0),
    			StorageLimitGb: pulumi.Float64(0),
    		},
    	},
    })
    
    var projectResource = new Project("projectResource", ProjectArgs.builder()
        .administratorRoles(ProjectAdministratorRoleArgs.builder()
            .email("string")
            .type("string")
            .build())
        .constraints(ProjectConstraintsArgs.builder()
            .extensibilities(ProjectConstraintsExtensibilityArgs.builder()
                .expression("string")
                .mandatory(false)
                .build())
            .networks(ProjectConstraintsNetworkArgs.builder()
                .expression("string")
                .mandatory(false)
                .build())
            .storages(ProjectConstraintsStorageArgs.builder()
                .expression("string")
                .mandatory(false)
                .build())
            .build())
        .customProperties(Map.of("string", "string"))
        .description("string")
        .machineNamingTemplate("string")
        .memberRoles(ProjectMemberRoleArgs.builder()
            .email("string")
            .type("string")
            .build())
        .name("string")
        .operationTimeout(0)
        .placementPolicy("string")
        .projectId("string")
        .sharedResources(false)
        .supervisorRoles(ProjectSupervisorRoleArgs.builder()
            .email("string")
            .type("string")
            .build())
        .viewerRoles(ProjectViewerRoleArgs.builder()
            .email("string")
            .type("string")
            .build())
        .zoneAssignments(ProjectZoneAssignmentArgs.builder()
            .zoneId("string")
            .cpuLimit(0)
            .maxInstances(0)
            .memoryLimitMb(0)
            .priority(0)
            .storageLimitGb(0)
            .build())
        .build());
    
    project_resource = vra.Project("projectResource",
        administrator_roles=[{
            "email": "string",
            "type": "string",
        }],
        constraints={
            "extensibilities": [{
                "expression": "string",
                "mandatory": False,
            }],
            "networks": [{
                "expression": "string",
                "mandatory": False,
            }],
            "storages": [{
                "expression": "string",
                "mandatory": False,
            }],
        },
        custom_properties={
            "string": "string",
        },
        description="string",
        machine_naming_template="string",
        member_roles=[{
            "email": "string",
            "type": "string",
        }],
        name="string",
        operation_timeout=0,
        placement_policy="string",
        project_id="string",
        shared_resources=False,
        supervisor_roles=[{
            "email": "string",
            "type": "string",
        }],
        viewer_roles=[{
            "email": "string",
            "type": "string",
        }],
        zone_assignments=[{
            "zone_id": "string",
            "cpu_limit": 0,
            "max_instances": 0,
            "memory_limit_mb": 0,
            "priority": 0,
            "storage_limit_gb": 0,
        }])
    
    const projectResource = new vra.Project("projectResource", {
        administratorRoles: [{
            email: "string",
            type: "string",
        }],
        constraints: {
            extensibilities: [{
                expression: "string",
                mandatory: false,
            }],
            networks: [{
                expression: "string",
                mandatory: false,
            }],
            storages: [{
                expression: "string",
                mandatory: false,
            }],
        },
        customProperties: {
            string: "string",
        },
        description: "string",
        machineNamingTemplate: "string",
        memberRoles: [{
            email: "string",
            type: "string",
        }],
        name: "string",
        operationTimeout: 0,
        placementPolicy: "string",
        projectId: "string",
        sharedResources: false,
        supervisorRoles: [{
            email: "string",
            type: "string",
        }],
        viewerRoles: [{
            email: "string",
            type: "string",
        }],
        zoneAssignments: [{
            zoneId: "string",
            cpuLimit: 0,
            maxInstances: 0,
            memoryLimitMb: 0,
            priority: 0,
            storageLimitGb: 0,
        }],
    });
    
    type: vra:Project
    properties:
        administratorRoles:
            - email: string
              type: string
        constraints:
            extensibilities:
                - expression: string
                  mandatory: false
            networks:
                - expression: string
                  mandatory: false
            storages:
                - expression: string
                  mandatory: false
        customProperties:
            string: string
        description: string
        machineNamingTemplate: string
        memberRoles:
            - email: string
              type: string
        name: string
        operationTimeout: 0
        placementPolicy: string
        projectId: string
        sharedResources: false
        supervisorRoles:
            - email: string
              type: string
        viewerRoles:
            - email: string
              type: string
        zoneAssignments:
            - cpuLimit: 0
              maxInstances: 0
              memoryLimitMb: 0
              priority: 0
              storageLimitGb: 0
              zoneId: string
    

    Project 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 Project resource accepts the following input properties:

    AdministratorRoles List<ProjectAdministratorRole>
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    Administrators List<string>

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    Constraints ProjectConstraints
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    CustomProperties Dictionary<string, string>
    The project custom properties which are added to all requests in this project.
    Description string
    A human-friendly description.
    MachineNamingTemplate string
    The naming template to be used for resources provisioned in this project.
    MemberRoles List<ProjectMemberRole>
    Member users or groups associated with the project.
    Members List<string>

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    Name string
    A human-friendly name used as an identifier in APIs that support this option.
    OperationTimeout double
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    PlacementPolicy string
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    ProjectId string
    SharedResources bool
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    SupervisorRoles List<ProjectSupervisorRole>
    Supervisor users or groups associated with the project.
    ViewerRoles List<ProjectViewerRole>
    Viewer users or groups associated with the project.
    Viewers List<string>

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    ZoneAssignments List<ProjectZoneAssignment>

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    AdministratorRoles []ProjectAdministratorRoleArgs
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    Administrators []string

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    Constraints ProjectConstraintsArgs
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    CustomProperties map[string]string
    The project custom properties which are added to all requests in this project.
    Description string
    A human-friendly description.
    MachineNamingTemplate string
    The naming template to be used for resources provisioned in this project.
    MemberRoles []ProjectMemberRoleArgs
    Member users or groups associated with the project.
    Members []string

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    Name string
    A human-friendly name used as an identifier in APIs that support this option.
    OperationTimeout float64
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    PlacementPolicy string
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    ProjectId string
    SharedResources bool
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    SupervisorRoles []ProjectSupervisorRoleArgs
    Supervisor users or groups associated with the project.
    ViewerRoles []ProjectViewerRoleArgs
    Viewer users or groups associated with the project.
    Viewers []string

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    ZoneAssignments []ProjectZoneAssignmentArgs

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administratorRoles List<ProjectAdministratorRole>
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators List<String>

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints ProjectConstraints
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    customProperties Map<String,String>
    The project custom properties which are added to all requests in this project.
    description String
    A human-friendly description.
    machineNamingTemplate String
    The naming template to be used for resources provisioned in this project.
    memberRoles List<ProjectMemberRole>
    Member users or groups associated with the project.
    members List<String>

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name String
    A human-friendly name used as an identifier in APIs that support this option.
    operationTimeout Double
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placementPolicy String
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    projectId String
    sharedResources Boolean
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisorRoles List<ProjectSupervisorRole>
    Supervisor users or groups associated with the project.
    viewerRoles List<ProjectViewerRole>
    Viewer users or groups associated with the project.
    viewers List<String>

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zoneAssignments List<ProjectZoneAssignment>

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administratorRoles ProjectAdministratorRole[]
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators string[]

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints ProjectConstraints
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    customProperties {[key: string]: string}
    The project custom properties which are added to all requests in this project.
    description string
    A human-friendly description.
    machineNamingTemplate string
    The naming template to be used for resources provisioned in this project.
    memberRoles ProjectMemberRole[]
    Member users or groups associated with the project.
    members string[]

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name string
    A human-friendly name used as an identifier in APIs that support this option.
    operationTimeout number
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placementPolicy string
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    projectId string
    sharedResources boolean
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisorRoles ProjectSupervisorRole[]
    Supervisor users or groups associated with the project.
    viewerRoles ProjectViewerRole[]
    Viewer users or groups associated with the project.
    viewers string[]

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zoneAssignments ProjectZoneAssignment[]

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administrator_roles Sequence[ProjectAdministratorRoleArgs]
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators Sequence[str]

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints ProjectConstraintsArgs
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    custom_properties Mapping[str, str]
    The project custom properties which are added to all requests in this project.
    description str
    A human-friendly description.
    machine_naming_template str
    The naming template to be used for resources provisioned in this project.
    member_roles Sequence[ProjectMemberRoleArgs]
    Member users or groups associated with the project.
    members Sequence[str]

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name str
    A human-friendly name used as an identifier in APIs that support this option.
    operation_timeout float
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placement_policy str
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    project_id str
    shared_resources bool
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisor_roles Sequence[ProjectSupervisorRoleArgs]
    Supervisor users or groups associated with the project.
    viewer_roles Sequence[ProjectViewerRoleArgs]
    Viewer users or groups associated with the project.
    viewers Sequence[str]

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zone_assignments Sequence[ProjectZoneAssignmentArgs]

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administratorRoles List<Property Map>
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators List<String>

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints Property Map
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    customProperties Map<String>
    The project custom properties which are added to all requests in this project.
    description String
    A human-friendly description.
    machineNamingTemplate String
    The naming template to be used for resources provisioned in this project.
    memberRoles List<Property Map>
    Member users or groups associated with the project.
    members List<String>

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name String
    A human-friendly name used as an identifier in APIs that support this option.
    operationTimeout Number
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placementPolicy String
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    projectId String
    sharedResources Boolean
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisorRoles List<Property Map>
    Supervisor users or groups associated with the project.
    viewerRoles List<Property Map>
    Viewer users or groups associated with the project.
    viewers List<String>

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zoneAssignments List<Property Map>

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing Project Resource

    Get an existing Project 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?: ProjectState, opts?: CustomResourceOptions): Project
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            administrator_roles: Optional[Sequence[ProjectAdministratorRoleArgs]] = None,
            administrators: Optional[Sequence[str]] = None,
            constraints: Optional[ProjectConstraintsArgs] = None,
            custom_properties: Optional[Mapping[str, str]] = None,
            description: Optional[str] = None,
            machine_naming_template: Optional[str] = None,
            member_roles: Optional[Sequence[ProjectMemberRoleArgs]] = None,
            members: Optional[Sequence[str]] = None,
            name: Optional[str] = None,
            operation_timeout: Optional[float] = None,
            placement_policy: Optional[str] = None,
            project_id: Optional[str] = None,
            shared_resources: Optional[bool] = None,
            supervisor_roles: Optional[Sequence[ProjectSupervisorRoleArgs]] = None,
            viewer_roles: Optional[Sequence[ProjectViewerRoleArgs]] = None,
            viewers: Optional[Sequence[str]] = None,
            zone_assignments: Optional[Sequence[ProjectZoneAssignmentArgs]] = None) -> Project
    func GetProject(ctx *Context, name string, id IDInput, state *ProjectState, opts ...ResourceOption) (*Project, error)
    public static Project Get(string name, Input<string> id, ProjectState? state, CustomResourceOptions? opts = null)
    public static Project get(String name, Output<String> id, ProjectState state, CustomResourceOptions options)
    resources:  _:    type: vra:Project    get:      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:
    AdministratorRoles List<ProjectAdministratorRole>
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    Administrators List<string>

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    Constraints ProjectConstraints
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    CustomProperties Dictionary<string, string>
    The project custom properties which are added to all requests in this project.
    Description string
    A human-friendly description.
    MachineNamingTemplate string
    The naming template to be used for resources provisioned in this project.
    MemberRoles List<ProjectMemberRole>
    Member users or groups associated with the project.
    Members List<string>

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    Name string
    A human-friendly name used as an identifier in APIs that support this option.
    OperationTimeout double
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    PlacementPolicy string
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    ProjectId string
    SharedResources bool
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    SupervisorRoles List<ProjectSupervisorRole>
    Supervisor users or groups associated with the project.
    ViewerRoles List<ProjectViewerRole>
    Viewer users or groups associated with the project.
    Viewers List<string>

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    ZoneAssignments List<ProjectZoneAssignment>

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    AdministratorRoles []ProjectAdministratorRoleArgs
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    Administrators []string

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    Constraints ProjectConstraintsArgs
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    CustomProperties map[string]string
    The project custom properties which are added to all requests in this project.
    Description string
    A human-friendly description.
    MachineNamingTemplate string
    The naming template to be used for resources provisioned in this project.
    MemberRoles []ProjectMemberRoleArgs
    Member users or groups associated with the project.
    Members []string

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    Name string
    A human-friendly name used as an identifier in APIs that support this option.
    OperationTimeout float64
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    PlacementPolicy string
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    ProjectId string
    SharedResources bool
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    SupervisorRoles []ProjectSupervisorRoleArgs
    Supervisor users or groups associated with the project.
    ViewerRoles []ProjectViewerRoleArgs
    Viewer users or groups associated with the project.
    Viewers []string

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    ZoneAssignments []ProjectZoneAssignmentArgs

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administratorRoles List<ProjectAdministratorRole>
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators List<String>

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints ProjectConstraints
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    customProperties Map<String,String>
    The project custom properties which are added to all requests in this project.
    description String
    A human-friendly description.
    machineNamingTemplate String
    The naming template to be used for resources provisioned in this project.
    memberRoles List<ProjectMemberRole>
    Member users or groups associated with the project.
    members List<String>

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name String
    A human-friendly name used as an identifier in APIs that support this option.
    operationTimeout Double
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placementPolicy String
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    projectId String
    sharedResources Boolean
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisorRoles List<ProjectSupervisorRole>
    Supervisor users or groups associated with the project.
    viewerRoles List<ProjectViewerRole>
    Viewer users or groups associated with the project.
    viewers List<String>

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zoneAssignments List<ProjectZoneAssignment>

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administratorRoles ProjectAdministratorRole[]
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators string[]

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints ProjectConstraints
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    customProperties {[key: string]: string}
    The project custom properties which are added to all requests in this project.
    description string
    A human-friendly description.
    machineNamingTemplate string
    The naming template to be used for resources provisioned in this project.
    memberRoles ProjectMemberRole[]
    Member users or groups associated with the project.
    members string[]

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name string
    A human-friendly name used as an identifier in APIs that support this option.
    operationTimeout number
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placementPolicy string
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    projectId string
    sharedResources boolean
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisorRoles ProjectSupervisorRole[]
    Supervisor users or groups associated with the project.
    viewerRoles ProjectViewerRole[]
    Viewer users or groups associated with the project.
    viewers string[]

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zoneAssignments ProjectZoneAssignment[]

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administrator_roles Sequence[ProjectAdministratorRoleArgs]
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators Sequence[str]

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints ProjectConstraintsArgs
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    custom_properties Mapping[str, str]
    The project custom properties which are added to all requests in this project.
    description str
    A human-friendly description.
    machine_naming_template str
    The naming template to be used for resources provisioned in this project.
    member_roles Sequence[ProjectMemberRoleArgs]
    Member users or groups associated with the project.
    members Sequence[str]

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name str
    A human-friendly name used as an identifier in APIs that support this option.
    operation_timeout float
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placement_policy str
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    project_id str
    shared_resources bool
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisor_roles Sequence[ProjectSupervisorRoleArgs]
    Supervisor users or groups associated with the project.
    viewer_roles Sequence[ProjectViewerRoleArgs]
    Viewer users or groups associated with the project.
    viewers Sequence[str]

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zone_assignments Sequence[ProjectZoneAssignmentArgs]

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    administratorRoles List<Property Map>
    Administrator users or groups associated with the project. Only administrators can manage project's configuration.
    administrators List<String>

    A list of administrator users associated with the project. Only administrators can manage project's configuration.

    Note: Deprecated - please use administrator_roles instead.

    Deprecated: Deprecated

    constraints Property Map
    A list of storage, network, and extensibility constraints to be applied when provisioning through this project.
    customProperties Map<String>
    The project custom properties which are added to all requests in this project.
    description String
    A human-friendly description.
    machineNamingTemplate String
    The naming template to be used for resources provisioned in this project.
    memberRoles List<Property Map>
    Member users or groups associated with the project.
    members List<String>

    A list of member users associated with the project.

    Note: Deprecated - please use member_roles instead.

    Deprecated: Deprecated

    name String
    A human-friendly name used as an identifier in APIs that support this option.
    operationTimeout Number
    The timeout that should be used for cloud template operations and provisioning tasks. The timeout is measured in seconds.
    placementPolicy String
    The placement policy that will be applied when selecting a cloud zone for provisioning. Must be one of DEFAULT or SPREAD.
    projectId String
    sharedResources Boolean
    Specifies whether the resources in this projects are shared or not. If not set default will be used.
    supervisorRoles List<Property Map>
    Supervisor users or groups associated with the project.
    viewerRoles List<Property Map>
    Viewer users or groups associated with the project.
    viewers List<String>

    A list of viewer users associated with the project.

    Note: Deprecated - please use viewer_roles instead.

    Deprecated: Deprecated

    zoneAssignments List<Property Map>

    A list of configurations for zone assignment to a project.

    Due to the design of the vRealize Automation IaaS API to update a project, it's not able to add and remove user or group at the same time. Please execute pulumi up twice.

    Initially, we have jason and tony configured as administrator. The initial the configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    Next, we want to add bob as a new administrator and remove jason. The modified configuration:

    import * as pulumi from "@pulumi/pulumi";
    
    import pulumi
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    

    return await Deployment.RunAsync(() => { });

    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    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) {
        }
    }
    
    {}
    

    To complete the whole operation, it requires running pulumi up twice.

    Supporting Types

    ProjectAdministratorRole, ProjectAdministratorRoleArgs

    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email string
    The email of the user or name of the group.
    type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email str
    The email of the user or name of the group.
    type str
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.

    ProjectConstraints, ProjectConstraintsArgs

    Extensibilities List<ProjectConstraintsExtensibility>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    Networks List<ProjectConstraintsNetwork>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    Storages List<ProjectConstraintsStorage>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    Extensibilities []ProjectConstraintsExtensibility
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    Networks []ProjectConstraintsNetwork
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    Storages []ProjectConstraintsStorage
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    extensibilities List<ProjectConstraintsExtensibility>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    networks List<ProjectConstraintsNetwork>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    storages List<ProjectConstraintsStorage>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    extensibilities ProjectConstraintsExtensibility[]
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    networks ProjectConstraintsNetwork[]
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    storages ProjectConstraintsStorage[]
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    extensibilities Sequence[ProjectConstraintsExtensibility]
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    networks Sequence[ProjectConstraintsNetwork]
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    storages Sequence[ProjectConstraintsStorage]
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    extensibilities List<Property Map>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    networks List<Property Map>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.
    storages List<Property Map>
    Constraints that are used to drive placement policies for entities such as image, network, storage, etc. Constraint expressions are matched against tags on existing placement targets.

    ProjectConstraintsExtensibility, ProjectConstraintsExtensibilityArgs

    Expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    Mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    Expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    Mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    expression String
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory Boolean
    Indicates whether this constraint should be strictly enforced or not.
    expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory boolean
    Indicates whether this constraint should be strictly enforced or not.
    expression str
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    expression String
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory Boolean
    Indicates whether this constraint should be strictly enforced or not.

    ProjectConstraintsNetwork, ProjectConstraintsNetworkArgs

    Expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    Mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    Expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    Mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    expression String
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory Boolean
    Indicates whether this constraint should be strictly enforced or not.
    expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory boolean
    Indicates whether this constraint should be strictly enforced or not.
    expression str
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    expression String
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory Boolean
    Indicates whether this constraint should be strictly enforced or not.

    ProjectConstraintsStorage, ProjectConstraintsStorageArgs

    Expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    Mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    Expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    Mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    expression String
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory Boolean
    Indicates whether this constraint should be strictly enforced or not.
    expression string
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory boolean
    Indicates whether this constraint should be strictly enforced or not.
    expression str
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory bool
    Indicates whether this constraint should be strictly enforced or not.
    expression String
    An expression of the form "[!]tag-key[:[tag-value]]", used to indicate a constraint match on keys and values of tags.
    mandatory Boolean
    Indicates whether this constraint should be strictly enforced or not.

    ProjectMemberRole, ProjectMemberRoleArgs

    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email string
    The email of the user or name of the group.
    type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email str
    The email of the user or name of the group.
    type str
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.

    ProjectSupervisorRole, ProjectSupervisorRoleArgs

    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email string
    The email of the user or name of the group.
    type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email str
    The email of the user or name of the group.
    type str
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.

    ProjectViewerRole, ProjectViewerRoleArgs

    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    Email string
    The email of the user or name of the group.
    Type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email string
    The email of the user or name of the group.
    type string
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email str
    The email of the user or name of the group.
    type str
    Type of the principal. Currently supported ‘user’ (default) and 'group’.
    email String
    The email of the user or name of the group.
    type String
    Type of the principal. Currently supported ‘user’ (default) and 'group’.

    ProjectZoneAssignment, ProjectZoneAssignmentArgs

    ZoneId string
    The Cloud Zone Id
    CpuLimit double
    The maximum amount of cpus that can be used by this cloud zone. Default is 0 (unlimited cpu).
    MaxInstances double
    The maximum number of instances that can be provisioned in this cloud zone. Default is 0 (unlimited instances)
    MemoryLimitMb double
    The maximum amount of memory that can be used by this cloud zone. Default is 0 (unlimited memory).
    Priority double
    The priority of this zone in the current project. Lower numbers mean higher priority. Default is 0 (highest)
    StorageLimitGb double
    Upper limit on storage that can be requested from a cloud zone which is part of this project. Default is 0 (unlimited storage). Supported only for vSphere cloud zones.
    ZoneId string
    The Cloud Zone Id
    CpuLimit float64
    The maximum amount of cpus that can be used by this cloud zone. Default is 0 (unlimited cpu).
    MaxInstances float64
    The maximum number of instances that can be provisioned in this cloud zone. Default is 0 (unlimited instances)
    MemoryLimitMb float64
    The maximum amount of memory that can be used by this cloud zone. Default is 0 (unlimited memory).
    Priority float64
    The priority of this zone in the current project. Lower numbers mean higher priority. Default is 0 (highest)
    StorageLimitGb float64
    Upper limit on storage that can be requested from a cloud zone which is part of this project. Default is 0 (unlimited storage). Supported only for vSphere cloud zones.
    zoneId String
    The Cloud Zone Id
    cpuLimit Double
    The maximum amount of cpus that can be used by this cloud zone. Default is 0 (unlimited cpu).
    maxInstances Double
    The maximum number of instances that can be provisioned in this cloud zone. Default is 0 (unlimited instances)
    memoryLimitMb Double
    The maximum amount of memory that can be used by this cloud zone. Default is 0 (unlimited memory).
    priority Double
    The priority of this zone in the current project. Lower numbers mean higher priority. Default is 0 (highest)
    storageLimitGb Double
    Upper limit on storage that can be requested from a cloud zone which is part of this project. Default is 0 (unlimited storage). Supported only for vSphere cloud zones.
    zoneId string
    The Cloud Zone Id
    cpuLimit number
    The maximum amount of cpus that can be used by this cloud zone. Default is 0 (unlimited cpu).
    maxInstances number
    The maximum number of instances that can be provisioned in this cloud zone. Default is 0 (unlimited instances)
    memoryLimitMb number
    The maximum amount of memory that can be used by this cloud zone. Default is 0 (unlimited memory).
    priority number
    The priority of this zone in the current project. Lower numbers mean higher priority. Default is 0 (highest)
    storageLimitGb number
    Upper limit on storage that can be requested from a cloud zone which is part of this project. Default is 0 (unlimited storage). Supported only for vSphere cloud zones.
    zone_id str
    The Cloud Zone Id
    cpu_limit float
    The maximum amount of cpus that can be used by this cloud zone. Default is 0 (unlimited cpu).
    max_instances float
    The maximum number of instances that can be provisioned in this cloud zone. Default is 0 (unlimited instances)
    memory_limit_mb float
    The maximum amount of memory that can be used by this cloud zone. Default is 0 (unlimited memory).
    priority float
    The priority of this zone in the current project. Lower numbers mean higher priority. Default is 0 (highest)
    storage_limit_gb float
    Upper limit on storage that can be requested from a cloud zone which is part of this project. Default is 0 (unlimited storage). Supported only for vSphere cloud zones.
    zoneId String
    The Cloud Zone Id
    cpuLimit Number
    The maximum amount of cpus that can be used by this cloud zone. Default is 0 (unlimited cpu).
    maxInstances Number
    The maximum number of instances that can be provisioned in this cloud zone. Default is 0 (unlimited instances)
    memoryLimitMb Number
    The maximum amount of memory that can be used by this cloud zone. Default is 0 (unlimited memory).
    priority Number
    The priority of this zone in the current project. Lower numbers mean higher priority. Default is 0 (highest)
    storageLimitGb Number
    Upper limit on storage that can be requested from a cloud zone which is part of this project. Default is 0 (unlimited storage). Supported only for vSphere cloud zones.

    Package Details

    Repository
    vra vmware/terraform-provider-vra
    License
    Notes
    This Pulumi package is based on the vra Terraform Provider.
    vra logo
    vra 0.12.0 published on Monday, Apr 14, 2025 by vmware