As a Cloud Assembly administrator, you make a POST request with a project name to create a project. Then you add members and cloud zones to the project so that project members can deploy cloud templates to the associated zones.

Prerequisites

  • Verify that all general prerequisites have been satisfied. See Prerequisites for working with the Cloud Assembly APIs.
  • Verify that the project roles that you plan to assign have sufficient permissions to perform project-related tasks.
    Note: A user with the project administrator or project member role can perform a limited number of project-related tasks. For a complete list of tasks and roles required, see Organization and service user roles in vRealize Automation.
  • Prepare parameters including the project name, description, and email addresses for administrators, members, or viewers.

Procedure

  1. Assign the project name variable.
    project_name='<your_project_name>'

    your_project_name is a name that you choose.

  2. Create a project.
    curl -X POST \
      "$url/iaas/api/projects?apiVersion=$api_version"
      -H 'Content-Type: application/json' 
      -H "Authorization: Bearer $access_token" 
      -d '{ 
        "name" : "'$project_name'", 
        "description" : "your-description", 
        "administrators" : [{ "email" : "<admin_email>", ["type" : <"user" | "group">]}], 
        "members" : [{ "email" : "<member_email>", ["type" : <"user" | "group">]}],
        "viewers" : [{ "email" : "<viewer_email>", ["type" : <"user" | "group">]}], 
      }' | jq "."
    • admin_email, member_email, and viewer_email are email addresses of an administrator, member, and viewer user or name of the group in the project.
    • The type parameter is optional. It assigns the administrator, member, or viewer to a user or group type. If unspecified, the value defaults to user.
  3. Get a list of projects and filter for the project with your_project_name.
    curl -X GET -H 'Accept: application/json' -H "Authorization: Bearer $access_token" "$url/iaas/api/projects?apiVersion=$api_version&"'$filter'"=name%20eq%20'$project_name'" | jq "."
  4. Examine the response and record the ID of your newly created project.

Example: Create a Project to use in Cloud Assembly

Create a project named Example-CA-project with administrators, members, and viewers at mycompany.com. This example assumes that Example-project does not exist.

$ url='https://appliance.domain.com'
$ api_version='2021-07-15'
$ project_name='Example-CA-project'

Create a project for Cloud Assembly.

$ curl -X POST \
  "$url/iaas/api/projects?apiVersion=$api_version" \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $access_token" \
  -d '{ 
    "name" : "'$project_name'", 
    "description" : "This is an example project for Cloud Assembly", 
    "administrators" : [{"email" : "[email protected]", "type" : "user"}], 
    "members" : [{"email" : "[email protected]", "type" : "user"}], 
    "viewers" : [{"email" : "[email protected]", "type" : "user"} ] 
  }' | jq "."

The response shows the administrators, members, and viewers related to the project and the project ID.

{
  "administrators": [
    {
      "email": "[email protected]",
      "type": "user"
    }
  ],
  "members": [
    {
      "email": "[email protected]",
      "type": "user"
    }
  ],
  "viewers": [
    {
      "email": "[email protected]",
      "type": "user"
    }
  ],
  "sharedResources": true,
  "name": "Example-CA-project",
  "description": "This is an example project for Cloud Assembly",
  "id": "5944aacb-91de-4541-bb9e-ef2a5403f81b",
  "orgId": "8327d53f-91ea-420a-8613-ba8f3149db95"
}

What to do next

Add a cloud zone to your project. See Add a Cloud Zone to Your Project. If you want to add an administrator or user, see Add Users to Your Project.