Create

Create

Creates a project

Request
URI
POST
https://vra-interop-222-139.lvn.broadcom.net/project-service/api/projects
COPY
Query Parameters
boolean
validatePrincipals
Optional

If true, a limit of 20 principals is enforced. Additionally each principal is validated in the Identity provider and important rules for group email formats are enforced.

string
apiVersion
Optional
Constraints: default: 2019-01-15

The version of the API in yyyy-MM-dd format. For versioning information refer to /project-service/api/about.


Request Body

The project to create.

ProjectSpecification of type(s) application/json
Required

Show optional properties

{
    "name": "my-name"
}
{
    "name": "my-name",
    "description": "my-description",
    "administrators": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "members": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "viewers": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "supervisors": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "users": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "auditors": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "advancedUsers": [
        {
            "email": "[email protected]",
            "type": "user"
        }
    ],
    "constraints": {
        "network": {
            "conditions": [
                {
                    "type": "TAG",
                    "enforcement": "HARD",
                    "occurrence": "MUST_OCCUR",
                    "expression": {
                        "key": "key",
                        "value": "value"
                    }
                }
            ]
        }
    },
    "properties": {
        "myproperty": "enforcement",
        "__projectPlacementPolicy": "SPREAD",
        "__namingTemplate": "my-resource-template-${######}",
        "__allowTerraformCloudzoneMapping": "true"
    },
    "cost": {
        "cost": "number",
        "costSyncTime": "2011-12-03T10:15:30Z",
        "costUnit": "USD",
        "message": "string",
        "code": "string"
    },
    "operationTimeout": 0,
    "sharedResources": false
}
string
name
Required
Constraints: minLength: 0 maxLength: 255

A human-friendly name used as an identifier in APIs that support this option.

string
description
Optional
Constraints: minLength: 0 maxLength: 2000

A human-friendly description.

array of object
administrators
Optional

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

array of object
members
Optional

List of member users associated with the project.

array of object
viewers
Optional

List of viewer users associated with the project.

array of object
supervisors
Optional

List of supervisor users associated with the project.

array of object
users
Optional

List of users associated with the project.

array of object
auditors
Optional

List of auditor users associated with the project.

array of object
advancedUsers
Optional

List of advanced user users associated with the project.

object
constraints
Optional

List of constraints of the project.

object
properties
Optional

List of properties of the project, to be applied to any resource provisioned within the project.

The project placement policy is set through the property with key: __projectPlacementPolicy, which can take 1 of only 2 possible values DEFAULT or SPREAD. If not specified, it is set as DEFAULT.

The naming template of resources provisioned in this project can be specified through the property with key: __namingTemplate. Hint: Avoid conflicting names by generating digits in names with ${######}

You can allow Terraform cloudzone mapping through the property with key: __allowTerraformCloudzoneMapping. It can be set to either true or false. By default, it is set to false.

object
cost
Optional

A representation of a project cost.

integer As int64 As int64
operationTimeout
Optional

The timeout that should be used for Blueprint operations and Provisioning tasks. The timeout is in seconds.

boolean
sharedResources
Optional

Specifies whether the resources in this projects are shared or not. Only allowed for classic tenants.

Authentication
This operation uses the following authentication methods.
Responses
201

'Created' with the newly created project

Returns Project of type(s) application/json
"Project Object"
string
id
Optional

Id of the project.

string
name
Required
Constraints: minLength: 0 maxLength: 255

A human-friendly name used as an identifier in APIs that support this option.

string
description
Optional
Constraints: minLength: 0 maxLength: 2000

A human-friendly description.

string
orgId
Optional

The id of the org this project belongs to.

array of object
administrators
Optional

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

array of object
members
Optional

List of member users associated with the project.

array of object
viewers
Optional

List of viewer users associated with the project.

array of object
supervisors
Optional

List of supervisor users associated with the project.

array of object
users
Optional

List of users associated with the project.

array of object
auditors
Optional

List of auditor users associated with the project.

array of object
advancedUsers
Optional

List of advanced user users associated with the project.

object
constraints
Optional

List of constraints of the project.

object
properties
Optional

List of properties of the project, to be applied to any resource provisioned within the project.

The property with key __projectPlacementPolicy shows what is the placement policy for the resources provisioned in this project, which can be 1 of only 2 possible values DEFAULT or SPREAD. If not specified, it is set as DEFAULT.

The property with key __namingTemplate specifies a custom naming template for resources provisioned in this project.

The property with key __allowTerraformCloudzoneMapping shows if the project allows Terraform cloudzone mapping. It can be set to either true or false. By default, it is set to false.

object
cost
Optional

A representation of a project cost.

integer As int64 As int64
operationTimeout
Optional

The timeout that should be used for Blueprint operations and Provisioning tasks. The timeout is in seconds.

boolean
sharedResources
Optional

Specifies whether the resources in this projects are shared or not. Only allowed for classic tenants.


400

Invalid Request - bad data

Operation doesn't return any data structure

403

Forbidden, the user lacks permissions

Operation doesn't return any data structure

409

Conflict, project with this name already exists

Operation doesn't return any data structure

Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{"name:"string"}' https://{api_host}/project-service/api/projects