ProjectArgs

data class ProjectArgs(val autoCreateNetwork: Output<Boolean>? = null, val billingAccount: Output<String>? = null, val deletionPolicy: Output<String>? = null, val folderId: Output<String>? = null, val labels: Output<Map<String, String>>? = null, val name: Output<String>? = null, val orgId: Output<String>? = null, val projectId: Output<String>? = null, val skipDelete: Output<Boolean>? = null) : ConvertibleToJava<ProjectArgs>

Allows creation and management of a Google Cloud Platform project. Projects created with this resource must be associated with an Organization. See the Organization documentation for more details. The user or service account that is running this provider when creating a gcp.organizations.Project resource must have roles/resourcemanager.projectCreator on the specified organization. See the Access Control for Organizations Using IAM doc for more information.

This resource reads the specified billing account on every pulumi up and plan operation so you must have permissions on the specified billing account. To get more information about projects, see:

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const myProject = new gcp.organizations.Project("my_project", {
name: "My Project",
projectId: "your-project-id",
orgId: "1234567",
});
import pulumi
import pulumi_gcp as gcp
my_project = gcp.organizations.Project("my_project",
name="My Project",
project_id="your-project-id",
org_id="1234567")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var myProject = new Gcp.Organizations.Project("my_project", new()
{
Name = "My Project",
ProjectId = "your-project-id",
OrgId = "1234567",
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := organizations.NewProject(ctx, "my_project", &organizations.ProjectArgs{
Name: pulumi.String("My Project"),
ProjectId: pulumi.String("your-project-id"),
OrgId: pulumi.String("1234567"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
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 myProject = new Project("myProject", ProjectArgs.builder()
.name("My Project")
.projectId("your-project-id")
.orgId("1234567")
.build());
}
}
resources:
myProject:
type: gcp:organizations:Project
name: my_project
properties:
name: My Project
projectId: your-project-id
orgId: '1234567'

To create a project under a specific folder

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const department1 = new gcp.organizations.Folder("department1", {
displayName: "Department 1",
parent: "organizations/1234567",
});
const myProject_in_a_folder = new gcp.organizations.Project("my_project-in-a-folder", {
name: "My Project",
projectId: "your-project-id",
folderId: department1.name,
});
import pulumi
import pulumi_gcp as gcp
department1 = gcp.organizations.Folder("department1",
display_name="Department 1",
parent="organizations/1234567")
my_project_in_a_folder = gcp.organizations.Project("my_project-in-a-folder",
name="My Project",
project_id="your-project-id",
folder_id=department1.name)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var department1 = new Gcp.Organizations.Folder("department1", new()
{
DisplayName = "Department 1",
Parent = "organizations/1234567",
});
var myProject_in_a_folder = new Gcp.Organizations.Project("my_project-in-a-folder", new()
{
Name = "My Project",
ProjectId = "your-project-id",
FolderId = department1.Name,
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
department1, err := organizations.NewFolder(ctx, "department1", &organizations.FolderArgs{
DisplayName: pulumi.String("Department 1"),
Parent: pulumi.String("organizations/1234567"),
})
if err != nil {
return err
}
_, err = organizations.NewProject(ctx, "my_project-in-a-folder", &organizations.ProjectArgs{
Name: pulumi.String("My Project"),
ProjectId: pulumi.String("your-project-id"),
FolderId: department1.Name,
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Folder;
import com.pulumi.gcp.organizations.FolderArgs;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
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 department1 = new Folder("department1", FolderArgs.builder()
.displayName("Department 1")
.parent("organizations/1234567")
.build());
var myProject_in_a_folder = new Project("myProject-in-a-folder", ProjectArgs.builder()
.name("My Project")
.projectId("your-project-id")
.folderId(department1.name())
.build());
}
}
resources:
myProject-in-a-folder:
type: gcp:organizations:Project
name: my_project-in-a-folder
properties:
name: My Project
projectId: your-project-id
folderId: ${department1.name}
department1:
type: gcp:organizations:Folder
properties:
displayName: Department 1
parent: organizations/1234567

Import

Projects can be imported using the project_id, e.g.

  • {{project_id}} When using the pulumi import command, Projects can be imported using one of the formats above. For example:

$ pulumi import gcp:organizations/project:Project default {{project_id}}

Constructors

Link copied to clipboard
constructor(autoCreateNetwork: Output<Boolean>? = null, billingAccount: Output<String>? = null, deletionPolicy: Output<String>? = null, folderId: Output<String>? = null, labels: Output<Map<String, String>>? = null, name: Output<String>? = null, orgId: Output<String>? = null, projectId: Output<String>? = null, skipDelete: Output<Boolean>? = null)

Properties

Link copied to clipboard
val autoCreateNetwork: Output<Boolean>? = null

Create the 'default' network automatically. Default true. If set to false, the default network will be deleted. Note that, for quota purposes, you will still need to have 1 network slot available to create the project successfully, even if you set auto_create_network to false, since the network will exist momentarily.

Link copied to clipboard
val billingAccount: Output<String>? = null

The alphanumeric ID of the billing account this project belongs to. The user or service account performing this operation with the provider must have at mininum Billing Account User privileges (roles/billing.user) on the billing account. See Google Cloud Billing API Access Control for more details.

Link copied to clipboard
val deletionPolicy: Output<String>? = null
Link copied to clipboard
val folderId: Output<String>? = null

The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified. If the folder_id is specified, then the project is created under the specified folder. Changing this forces the project to be migrated to the newly specified folder.

Link copied to clipboard
val labels: Output<Map<String, String>>? = null

A set of key/value label pairs to assign to the project. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

Link copied to clipboard
val name: Output<String>? = null

The display name of the project.

Link copied to clipboard
val orgId: Output<String>? = null

The numeric ID of the organization this project belongs to. Changing this forces a new project to be created. Only one of org_id or folder_id may be specified. If the org_id is specified then the project is created at the top level. Changing this forces the project to be migrated to the newly specified organization.

Link copied to clipboard
val projectId: Output<String>? = null

The project ID. Changing this forces a new project to be created.

Link copied to clipboard
val skipDelete: Output<Boolean>? = null

If true, the resource can be deleted without deleting the Project via the Google API. skip_delete is deprecated and will be removed in 6.0.0. Please use deletion_policy instead. A skip_delete value of false can be changed to a deletion_policy value of DELETE and a skip_delete value of true to a deletion_policy value of ABANDON for equivalent behavior.

Functions

Link copied to clipboard
open override fun toJava(): ProjectArgs