---
title: "Adds a new Environment to an existing Portfolio"
method: POST
path: "/portfolios/{portfolioId}/environments"
tags: ["provisioning"]
---

# Adds a new Environment to an existing Portfolio

`POST /portfolios/{portfolioId}/environments`

Adds a new Environment to be provisioned. Once provisioned, Operators can log in to the CSP and begin using provisioned resources and services, funded by the given CLIN.

**Note**

  * Invitations should be sent to all Operator email addresses included in the request. See
  [#/info/description](#/info/description) and [#/components/schemas](#/components/schemas) for details of
  these constructs.

  * If this Portfolio does not contain a CLIN whose `classification_level` matches that of the given
  Environment, vendors should return a HTTP 400 response.

## Headers

- `X-Provision-Deadline` string, date-time

## Request body

- Environment — Logical container for a set of cloud resources which are paid for by a Task Order & its CLINs. Note that this version intentionally excludes the administrators property, because it is not considered permanent state that the client will track.
  - `id` string, required — Represents the unique ID of the Environment created by the vendor. In order to enable the ATAT UI to construct links back to the provisioned environment, this should be the same ID generated internally for the vendor's Portfolio-equivalent construct.
  - `name` string, required
  - `account_name` string — Text which is meant to represent a name that uniquely identifies this Environment in the vendor cloud which can be used in part of a host name or URL.
  - `email_distribution_list` string, email — Represents an email meant to be used as a distribution list for communication from the vendor to the owners of this Environment. Should not be an individual's email address.
  - `dashboard_link` string, uri, required — Represents a deep link to the Environment as represented in the vendor's dashboard. Allows ATAT to provide direct links to a Mission Owner's Environment within the vendor's target cloud. Will NOT be supplied by the ATAT Client on initial call to create the Environment, but is expected to be provided upon successful Environment creation.
  - `classification_level` 'UNCLASSIFIED' | 'SECRET' | 'TOP_SECRET', required — Represents the classification level for this environment. Attempts to change this field via PUT or PATCH should result in a HTTP 400.
  - `cloud_distinguisher` CloudDistinguisher — Optional parameter used when the vendor offers more than one distinct Cloud System at a given classification level. Valid values must be provided to ATAT client by vendors. Note that it is expected that implementations will ignore the `display_name` and `description` fields. They are nonetheless included to ensure that their intent is not misrepresented by the ATAT UI.
    - `name` string, required — Unique identifier for a particular Cloud System, according to vendor
    - `display_name` string, required — Human readable display name for a Cloud System identifier
    - `description` string, required — Description of intended use of a Cloud System
  - `is_migration` boolean — A boolean value representing whether or not the Environment being created requires the migration of existing cloud resources.

## Response `200`

Successful operation

- EnvironmentResponse — Logical container for a set of cloud resources which are paid for by a Task Order & its CLINs. Note that this version intentionally excludes the administrators property, because it is not considered permanent state that the client will track.
  - `id` string, required — Represents the unique ID of the Environment created by the vendor. In order to enable the ATAT UI to construct links back to the provisioned environment, this should be the same ID generated internally for the vendor's Portfolio-equivalent construct.
  - `name` string, required
  - `account_name` string — Text which is meant to represent a name that uniquely identifies this Environment in the vendor cloud which can be used in part of a host name or URL.
  - `email_distribution_list` string, email — Represents an email meant to be used as a distribution list for communication from the vendor to the owners of this Environment. Should not be an individual's email address.
  - `dashboard_link` string, uri, required — Represents a deep link to the Environment as represented in the vendor's dashboard. Allows ATAT to provide direct links to a Mission Owner's Environment within the vendor's target cloud. Will NOT be supplied by the ATAT Client on initial call to create the Environment, but is expected to be provided upon successful Environment creation.
  - `classification_level` 'UNCLASSIFIED' | 'SECRET' | 'TOP_SECRET', required — Represents the classification level for this environment. Attempts to change this field via PUT or PATCH should result in a HTTP 400.
  - `cloud_distinguisher` CloudDistinguisher — Optional parameter used when the vendor offers more than one distinct Cloud System at a given classification level. Valid values must be provided to ATAT client by vendors. Note that it is expected that implementations will ignore the `display_name` and `description` fields. They are nonetheless included to ensure that their intent is not misrepresented by the ATAT UI.
    - `name` string, required — Unique identifier for a particular Cloud System, according to vendor
    - `display_name` string, required — Human readable display name for a Cloud System identifier
    - `description` string, required — Description of intended use of a Cloud System
  - `is_migration` boolean — A boolean value representing whether or not the Environment being created requires the migration of existing cloud resources.

## Other responses

- `202` — Provisioning request has been accepted
- `400` — Invalid ID supplied
- `404` — Portfolio not found
- `405` — Not ready to provision

---

[API](https://skmtc.net/dod-ccpo/apis/atat-csp-api.md) · [All operations](https://skmtc.net/dod-ccpo/apis/atat-csp-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dod-ccpo/atat-csp-api/revisions/22014acb308f/schema)
