---
title: "POST /v1/{+parent}:addProject"
method: POST
path: "/v1/{+parent}:addProject"
tags: ["services"]
---

# POST /v1/{+parent}:addProject

`POST /v1/{+parent}:addProject`

Add a new tenant project to the tenancy unit. There can be a maximum of 1024 tenant projects in a tenancy unit. If there are previously failed `AddTenantProject` calls, you might need to call `RemoveTenantProject` first to resolve them before you can make another call to `AddTenantProject` with the same tag. Operation.

## Path parameters

- `parent` string, required

## Request body

- AddTenantProjectRequest — Request to add a newly created and configured tenant project to a tenancy unit.
  - `tag` string — Required. Tag of the added project. Must be less than 128 characters. Required.
  - `projectConfig` TenantProjectConfig — This structure defines a tenant project to be added to the specified tenancy unit and its initial configuration and properties. A project lien is created for the tenant project to prevent the tenant project from being deleted accidentally. The lien is deleted as part of tenant project removal.
    - `labels` object — Labels that are applied to this project.
    - `serviceAccountConfig` ServiceAccountConfig — Describes the service account configuration for the tenant project.
      - `accountId` string — ID of the IAM service account to be created in tenant project. The email format of the service account is "@.iam.gserviceaccount.com". This account ID must be unique within tenant project and service producers have to guarantee it. The ID must be 6-30 characters long, and match the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])`.
      - `tenantProjectRoles` string[] — Roles for the associated service account for the tenant project.
    - `folder` string — Folder where project in this tenancy unit must be located This folder must have been previously created with the required permissions for the caller to create and configure a project in it. Valid folder resource names have the format `folders/{folder_number}` (for example, `folders/123456`).
    - `services` string[] — Google Cloud API names of services that are activated on this project during provisioning. If any of these services can't be activated, the request fails. For example: 'compute.googleapis.com','cloudfunctions.googleapis.com'
    - `billingConfig` BillingConfig — Describes the billing configuration for a new tenant project.
      - `billingAccount` string — Name of the billing account. For example `billingAccounts/012345-567890-ABCDEF`.
    - `tenantProjectPolicy` TenantProjectPolicy — Describes policy settings that can be applied to a newly created tenant project.
      - `policyBindings` PolicyBinding[] — Policy bindings to be applied to the tenant project, in addition to the 'roles/owner' role granted to the Service Consumer Management service account.
        - `members` string[] — Uses the same format as in IAM policy. `member` must include both a prefix and ID. For example, `user:{emailId}`, `serviceAccount:{emailId}`, `group:{emailId}`.
        - `role` string — Role. (https://cloud.google.com/iam/docs/understanding-roles) For example, `roles/viewer`, `roles/editor`, or `roles/owner`.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/serviceconsumermanagement.md) · [All operations](https://skmtc.dev/google/apis/serviceconsumermanagement/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/serviceconsumermanagement/revisions/4ccbdb61fd14/schema)
