Creating and Managing Projects

Google Cloud Platform projects form the basis for creating, enabling, and using all Cloud Platform services including managing APIs, enabling billing, adding and removing collaborators, and managing permissions for Cloud Platform resources.

This page explains how to create and manage Cloud Platform projects using the Google Cloud Resource Manager API and the Google Cloud Platform Console.

Before you begin

Read the Cloud Platform Project Overview.

Creating a project

You can create a new project using the GCP Console or the projects.create() method.

Console

To create a new project:

  1. Go to the GCP Console Manage resources page.
    GO TO THE MANAGE RESOURCES PAGE
  2. On the drop-down at the top of the page, select the organization in which you want to create a project.
  3. Click Create Project
  4. In the New Project window that appears, enter a project name and select a billing account as applicable.
  5. If you want to add the project to a folder, enter the folder name in the Location box.
  6. When you're finished entering new project details, click Create.

API

You can't use certain words in the project ID when you create a new project with the projects.create() method. Some examples include ssl and google. When you use a restricted word, the request will return with an INVALID_ARGUMENT error.

Create Project Request:

POST https://cloudresourcemanager.googleapis.com/v1/projects/
Authorization: *************
Content-Type: application/json

{
    "projectId": "our-project-123",
    "name": "my project",
    "labels": {
      "mylabel": "prod"
    }
}

Create Project Response:

{
    "name": "operations/pc.123456789",
}

Get Operation Request:

GET https://cloudresourcemanager.googleapis.com/v1/operations/pc.123456789
Authorization: *************
Content-Type: application/json

Get Operation Response:

{
    "name": "operations/pc.123456789",
    "done": true,
    "response": {
        "@type": "type.googleapis.com/google.cloudresourcemanager.v1.Project",
        "projectNumber": "464036093014",
        "projectId": "our-project-123",
        "lifecycleState": "ACTIVE",
        "name": "my project",
        "labels": {
        "mylabel": "prod"
        },
    "createTime": "2016-01-07T21:59:43.314Z"
    }
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

operation = crm.projects().create(
body={
    'project_id': flags.projectId,
    'name': 'my project'
}).execute()

...

Managing project quotas

The number of projects left in your quota can be viewed when creating a new project, as in the Creating a Project steps above. When creating the project, this notification will be displayed with your number of remaining projects:

To request additional capacity for projects in your quota, see the Request Billing Quota Increase support page. More information about quotas and why they are used can be found at the Free Trial Project Quota Requests support page.

Identifying projects

To interact with Cloud Platform resources, you must provide the identifying project information for every request. A project can be identified in the following ways:

  • Project ID: the customized name you chose when you created the project, or when you activated an API that required you to create a project ID. Note that you can't reuse the project ID of a deleted project.
  • Project number: a number that's automatically generated by the server and assigned to your project.

To get the project ID and the project number:

  1. Go to Google Cloud Platform Console.
  2. Select your project.

Both the project ID and project number are displayed on the project Dashboard Project info card:

A project ID is different from a project name. The project name is a human-readable way to identify your projects, but it isn't used by any Google APIs. In the above example, the project name is My Sample Project and the project ID is my-sample-project-191923.

The project ID is generated from the project name you enter when you create the project in the Google Cloud Platform Console. Certain words are restricted from use in project IDs. If you use restricted words are included in the project name, such as google or ssl, the generated project ID will not include these words. This will not affect the project name.

The project number and project ID are unique across Google Cloud Platform. If another user owns a project ID for their project, you won't be able to use the same project ID.

When you choose your project ID (or any resource names), don't include any sensitive information in your names.

Getting an existing project

You can get an existing project using the GCP Console or the projects.get() method.

Console

To view a project via the GCP Console:

  • Go to the Google Cloud Platform Console.
  • Click the projects drop-down on the top bar. (The drop-down label will be be name of your project you're currently viewing).
  • Select the project you wish to view.

API

Request:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects/our-project-123

Response:

{
    "projectNumber": "464036093014",
    "projectId": "our-project-123",
    "lifecycleState": "ACTIVE",
    "name": "my project",
    "labels": {
        "mylabel": "prod"
    },
    "createTime": "2016-01-07T21:59:43.314Z"
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()

...

Listing projects

You can list all projects you own using the GCP Console or the projects.list() method.

Console

To list projects using the GCP Console:

  • Go to the Google Cloud Platform Console.
  • All your projects are listed in the projects drop-down on the top bar. Use the Search projects and folders textbox to filter projects.
  • To list all your projects, click Manage Resources. Use the Filter by name, ID, or label textbox to filter your projects.

API

Request:

GET https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "name": "project a"
}

Response:

{
    "projects": [
    {
        "projectNumber": "951040570662",
        "projectId": "google.com:api-project-951040570662",
        "lifecycleState": "ACTIVE",
        "name": "project a",
        "createTime": "2013-11-13T20:31:53.308Z"
    }
    ]
}

The following code snippet lists all projects with a red label:

Request:

GET
https://cloudresourcemanager.googleapis.com/v1beta1/projects

{
    "labels": {
    "color": "red"
    }
}

Response:

{
    "projects": [
    {
        "projectNumber": "350831539566",
        "projectId": "my-project-b",
        "lifecycleState": "ACTIVE",
        "name": "project b",
        "labels": {
            "color": "red"
        },
        "createTime": "2012-02-18T23:11:57.831Z"
    }
    ]
}

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

filter = name:"project a"
projects = crm.projects().list(filter=filter).execute()

...

The following code snippet lists all projects with a red label:

filter = 'labels.color:red'
projects = crm.projects().list(filter=filter).execute()

Updating projects

You can update projects using the GCP Console or the projects.update() method. Currently the only fields that can be updated are the project name and labels. For more information see the project API reference page.

Console

To update a project's field using the GCP Console:

  • Open the Settings page in the Google Cloud Platform Console.

    Open the Settings page

  • Click Select a project.
  • To change the project name, edit Project name, then click Save.
  • To change labels, click Labels on the left nav. Learn more about Using Labels.

API

To update a project:

The following code snippet updates the name of the project to "myproject":

Request:

    PUT https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123
    {
        "name": "myproject"
    }

Response:

    {
        "projects": [
        {
            "projectNumber": "951040570662",
            "projectId": "my-project-123",
            "lifecycleState": "ACTIVE",
            "name": "myproject",
            "createTime": "2013-11-13T20:31:53.308Z"
        }
        ]
    }

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().get(projectId=flags.projectId).execute()
project['name'] = 'myproject'
project = crm.projects().update(
projectId=flags.projectId, body=project).execute()

...

Shutting down (deleting) projects

You can shut down projects using the GCP Console or the projects.delete() method.

Shutting down a project does not delete the project immediately; it only requests deletion of the project. The project is marked for deletion ("soft deleted"), and you will lose access to it immediately, but the project can be recovered for a 30 day period. Until actual deletion of the project, the project will count towards your quota usage.

The project owner will receive an email notification that the project has been marked for deletion. During the 30 day period, the owner can recover the project by following the steps to restore a project. After the 30 day period, the project and all the resources under it are wiped out and cannot be recovered.

To shut down a project:

  • The project must not have a billing account associated with it.
  • The project must have a lifecycle state of ACTIVE.

Console

To shut down a project using the GCP Console:

  • Open the Settings page (found under IAM & admin) in the Google Cloud Platform Console.

    Open the Settings page

  • Click Select a project.

  • Select a project you wish to delete, and click Open.

  • Click Shut down.

  • Enter the Project ID, then click Shut down.

API

The following code snippet deletes the specified project:

Request:

DELETE
https://cloudresourcemanager.googleapis.com/v1beta1/projects/my-project-123

PYTHON

...
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

project = crm.projects().delete(projectId=flags.projectId).execute()

...

Send feedback about...

Google Cloud Resource Manager Documentation