> ## Documentation Index
> Fetch the complete documentation index at: https://astronomer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a new environment object

> Create an environment object for a Deployment or Workspace. An environment object represents a connection, environment variable, Airflow variable, or metrics export resource that is managed by the Astro Environment Manager.



## OpenAPI

````yaml /astro/api/v-1/openapi.yaml post /organizations/{organizationId}/environment-objects
openapi: 3.0.3
info:
  contact: {}
  description: Astro Platform API
  title: Astro Platform API
  version: v1.0
servers:
  - url: https://api.astronomer.io/v1
security:
  - JWT: []
tags:
  - description: >-
      The `organization` object contains the metadata and configurations of an
      Astro Organization. It does not include objects within the Organization,
      such as users and clusters. Make requests to `organization` endpoints to
      view and update high level settings for your Organization, including
      settings related to authentication and billing. To manage resources within
      an Organization, make requests to the endpoints related to those
      resources, such as `users`. See
      [Billing](https://astronomer.io/docs/astro/manage-billing), [Set up single
      sign-on](https://astronomer.io/docs/astro/configure-idp), and [Manage
      domains](https://astronomer.io/docs/astro/manage-domains).
    name: Organization
  - description: >-
      The `deployment` object represents an Astro Deployment, which is a hosted
      Airflow environment that is powered by all core Airflow components,
      including schedulers and workers. Make requests to the `deployment` object
      to create, update, or delete a Deployment or its computational resources.
      See [Deployment
      settings](https://astronomer.io/docs/astro/deployment-settings).
    name: Deployment
  - description: >-
      A `cluster` object represents an Astro cluster, which is a Kubernetes
      cluster that hosts the infrastructure required to run Deployments. Make
      requests to `cluster` endpoints to manage your standard and dedicated
      clusters. See [Create a dedicated
      cluster](https://astronomer.io/docs/astro/create-dedicated-cluster).
    name: Cluster
  - description: >-
      The `workspace` object represents an Astro Workspace, which is a
      collection of Deployments that can be accessed by a specific group of
      users. It contains metadata about a Workspace, but does not contain
      objects within the Workspace such as users and Deployments. Make requests
      to `workspace` endpoints to manage high level details about your
      Workspace. To manage resources within a Workspace, make requests to the
      endpoints related to those resources, such as `users`, and use the
      `workspaceIds` parameter to filter results by Workspace. See [Configure
      Workspaces](https://astronomer.io/docs/astro/manage-workspaces).
    name: Workspace
  - description: >-
      The `user` object represents a user account in your Astro Organization.
      Astro creates a new `user` object whenever you invite a user by email or
      add a user to Astro through an identity provider. The object contains all
      information about a user, including their personal information, roles, and
      login attempts. It doesn't include attributes for actions that the user
      completes after they log in, such as updating a Deployment. Make requests
      to `user` endpoints to manage permissions for existing users both at the
      Organization and Workspace level. To create new users, make requests to
      `invite` endpoints instead.
    name: User
  - description: >-
      The `team` object represents an Astro Team, which is a group of users that
      share the same permissions across your Organization and Workspaces. Make
      requests to `team` endpoints to create, update, and delete Teams across an
      Organization. See [Configure Teams on
      Astro](https://astronomer.io/docs/astro/manage-teams).
    name: Team
  - description: >-
      The `apitoken` object represents a single API token within your
      Organization. API tokens are used to authenticate automated tools and
      processes to your Organization. They have varying levels of access to your
      resources based on their Organization, Workspace, and Deployment roles.
      See [Workspace API tokens](workspace-api-tokens.md) and [Organization API
      tokens](organization-api-tokens.md).
    name: api-token
    x-group: API Token
  - name: allowed-ip-address-range
    x-group: Allowed IP Address Range
  - name: agent-token
    x-group: Agent Token
paths:
  /organizations/{organizationId}/environment-objects:
    post:
      tags:
        - Environment
      summary: Create a new environment object
      description: >-
        Create an environment object for a Deployment or Workspace. An
        environment object represents a connection, environment variable,
        Airflow variable, or metrics export resource that is managed by the
        Astro Environment Manager.
      operationId: CreateEnvironmentObject
      parameters:
        - description: >-
            The ID of the Organization in which to create the environment
            object.
          in: path
          name: organizationId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEnvironmentObjectRequest'
        description: The request body for creating a new environment object.
        required: true
        x-originalParamName: data
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEnvironmentObject'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Method Not Allowed
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error
      security:
        - JWT: []
components:
  schemas:
    CreateEnvironmentObjectRequest:
      properties:
        airflowVariable:
          $ref: '#/components/schemas/CreateEnvironmentObjectAirflowVariableRequest'
        autoLinkDeployments:
          description: >-
            Whether or not to automatically link Deployments to the environment
            object. Only applicable for WORKSPACE scope
          type: boolean
        connection:
          $ref: '#/components/schemas/CreateEnvironmentObjectConnectionRequest'
        description:
          description: The description of the environment object
          maxLength: 500
          type: string
        environmentVariable:
          $ref: >-
            #/components/schemas/CreateEnvironmentObjectEnvironmentVariableRequest
        excludeLinks:
          description: >-
            The links to exclude from the environment object. Only applicable
            for WORKSPACE scope
          items:
            $ref: '#/components/schemas/ExcludeLinkEnvironmentObjectRequest'
          type: array
        links:
          description: >-
            The Deployments that Astro links to the environment object. Only
            applicable for WORKSPACE scope
          items:
            $ref: '#/components/schemas/CreateEnvironmentObjectLinkRequest'
          type: array
        metricsExport:
          $ref: '#/components/schemas/CreateEnvironmentObjectMetricsExportRequest'
        objectKey:
          description: The key for the environment object
          type: string
        objectType:
          description: The type of environment object
          enum:
            - CONNECTION
            - ENVIRONMENT_VARIABLE
            - AIRFLOW_VARIABLE
            - METRICS_EXPORT
          type: string
        scope:
          description: The scope of the environment object
          enum:
            - WORKSPACE
            - DEPLOYMENT
          type: string
        scopeEntityId:
          description: The ID of the scope entity where the environment object is created
          type: string
      required:
        - objectKey
        - objectType
        - scope
        - scopeEntityId
      type: object
    CreateEnvironmentObject:
      properties:
        id:
          description: The ID of the environment object
          type: string
      required:
        - id
      type: object
    Error:
      properties:
        fieldErrors:
          description: >-
            FieldErrors carries one entry per failed request-validation
            constraint.

            Only present on 400 responses caused by request binding/validation.
          items:
            $ref: '#/components/schemas/FieldValidationError'
          type: array
        message:
          type: string
        requestId:
          type: string
        statusCode:
          maximum: 600
          minimum: 400
          type: integer
      required:
        - message
        - requestId
        - statusCode
      type: object
    CreateEnvironmentObjectAirflowVariableRequest:
      properties:
        isSecret:
          description: Whether the value is a secret or not
          type: boolean
        value:
          description: The value of the Airflow variable
          type: string
      type: object
    CreateEnvironmentObjectConnectionRequest:
      properties:
        authTypeId:
          description: The ID for the connection auth type
          type: string
        extra:
          description: Extra connection details, if any
          type: object
        host:
          description: The host address for the connection
          type: string
        login:
          description: The username used for the connection
          type: string
        password:
          description: The password used for the connection
          type: string
        port:
          description: The port for the connection
          type: integer
        schema:
          description: The schema for the connection
          type: string
        type:
          description: The type of connection
          type: string
      required:
        - type
      type: object
    CreateEnvironmentObjectEnvironmentVariableRequest:
      properties:
        isSecret:
          description: Whether the value is a secret or not
          type: boolean
        value:
          description: The value of the environment variable
          type: string
      type: object
    ExcludeLinkEnvironmentObjectRequest:
      properties:
        scope:
          description: Scope of the entity to exclude for environment object
          enum:
            - DEPLOYMENT
          type: string
        scopeEntityId:
          description: Entity ID to exclude for the environment object
          type: string
      required:
        - scope
        - scopeEntityId
      type: object
    CreateEnvironmentObjectLinkRequest:
      properties:
        overrides:
          $ref: '#/components/schemas/CreateEnvironmentObjectOverridesRequest'
        scope:
          description: Scope to link the environment object
          enum:
            - DEPLOYMENT
          type: string
        scopeEntityId:
          description: Entity ID of the scope to link the environment object
          type: string
      required:
        - scope
        - scopeEntityId
      type: object
    CreateEnvironmentObjectMetricsExportRequest:
      properties:
        authType:
          description: >-
            The type of authentication to use when connecting to the remote
            endpoint
          enum:
            - BASIC
            - AUTH_TOKEN
            - SIGV4
          type: string
        basicToken:
          description: The bearer token to connect to the remote endpoint
          type: string
        endpoint:
          description: The Prometheus endpoint where the metrics are exported
          type: string
        exporterType:
          description: The type of exporter
          enum:
            - PROMETHEUS
          type: string
        headers:
          additionalProperties:
            type: string
          description: >-
            Add key-value pairs to the HTTP request headers made by Astro when
            connecting to the remote endpoint
          type: object
        labels:
          additionalProperties:
            type: string
          description: >-
            Any key-value pair metrics labels for your export. You can use these
            to filter your metrics in downstream applications.
          type: object
        password:
          description: The password to connect to the remote endpoint
          type: string
        sigV4AssumeArn:
          description: The AWS IAM role ARN to assume for SigV4 authentication
          type: string
        sigV4StsRegion:
          description: The AWS STS region to use for SigV4 authentication
          type: string
        username:
          description: The username to connect to the remote endpoint
          type: string
      required:
        - endpoint
        - exporterType
      type: object
    FieldValidationError:
      properties:
        code:
          type: string
        field:
          type: string
        message:
          type: string
      required:
        - code
        - field
        - message
      type: object
    CreateEnvironmentObjectOverridesRequest:
      properties:
        airflowVariable:
          $ref: >-
            #/components/schemas/CreateEnvironmentObjectAirflowVariableOverridesRequest
        connection:
          $ref: >-
            #/components/schemas/CreateEnvironmentObjectConnectionOverridesRequest
        environmentVariable:
          $ref: >-
            #/components/schemas/CreateEnvironmentObjectEnvironmentVariableOverridesRequest
        metricsExport:
          $ref: >-
            #/components/schemas/CreateEnvironmentObjectMetricsExportOverridesRequest
      type: object
    CreateEnvironmentObjectAirflowVariableOverridesRequest:
      properties:
        value:
          description: The value of the Airflow variable
          type: string
      type: object
    CreateEnvironmentObjectConnectionOverridesRequest:
      properties:
        extra:
          description: Extra connection details, if any
          type: object
        host:
          description: The host address for the connection
          type: string
        login:
          description: The username used for the connection
          type: string
        password:
          description: The password used for the connection
          type: string
        port:
          description: The port for the connection
          type: integer
        schema:
          description: The schema for the connection
          type: string
        type:
          description: The type of connection
          type: string
      type: object
    CreateEnvironmentObjectEnvironmentVariableOverridesRequest:
      properties:
        value:
          description: The value of the environment variable
          type: string
      type: object
    CreateEnvironmentObjectMetricsExportOverridesRequest:
      properties:
        authType:
          description: >-
            The type of authentication to use when connecting to the remote
            endpoint
          enum:
            - BASIC
            - AUTH_TOKEN
            - SIGV4
          type: string
        basicToken:
          description: The bearer token to connect to the remote endpoint
          type: string
        endpoint:
          description: The Prometheus endpoint where the metrics are exported
          type: string
        exporterType:
          description: The type of exporter
          enum:
            - PROMETHEUS
          type: string
        headers:
          additionalProperties:
            type: string
          description: >-
            Add key-value pairs to the HTTP request headers made by Astro when
            connecting to the remote endpoint
          type: object
        labels:
          additionalProperties:
            type: string
          description: >-
            Any key-value pair metrics labels for your export. You can use these
            to filter your metrics in downstream applications.
          type: object
        password:
          description: The password to connect to the remote endpoint
          type: string
        sigV4AssumeArn:
          description: The AWS IAM role ARN to assume for SigV4 authentication
          type: string
        sigV4StsRegion:
          description: The AWS STS region to use for SigV4 authentication
          type: string
        username:
          description: The username to connect to the remote endpoint
          type: string
      type: object
  securitySchemes:
    JWT:
      scheme: bearer
      type: http

````