Amazon Proton · JSON Structure

Amazon Proton Create Environment Input Structure

CreateEnvironmentInput schema from Amazon Proton API

Type: object Properties: 12 Required: 4
DevOpsInfrastructure as CodePlatform EngineeringServerlessTemplatesSelf-ServiceCI/CD

CreateEnvironmentInput is a JSON Structure definition published by Amazon Proton, describing 12 properties, of which 4 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

codebuildRoleArn componentRoleArn description environmentAccountConnectionId name protonServiceRoleArn provisioningRepository spec tags templateMajorVersion templateMinorVersion templateName

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-proton/refs/heads/main/json-structure/amazon-proton-create-environment-input-structure.json",
  "name": "CreateEnvironmentInput",
  "description": "CreateEnvironmentInput schema from Amazon Proton API",
  "type": "object",
  "properties": {
    "codebuildRoleArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RoleArn"
        },
        {
          "description": "<p>The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision infrastructure using CodeBuild-based provisioning on your behalf.</p> <p>To use CodeBuild-based provisioning for the environment or for any service instance running in the environment, specify either the <code>environmentAccountConnectionId</code> or <code>codebuildRoleArn</code> parameter.</p>"
        }
      ]
    },
    "componentRoleArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RoleArn"
        },
        {
          "description": "<p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.</p> <p>You must specify <code>componentRoleArn</code> to allow directly defined components to be associated with this environment.</p> <p>For more information about components, see <a href=\"https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html\">Proton components</a> in the <i>Proton User Guide</i>.</p>"
        }
      ]
    },
    "description": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Description"
        },
        {
          "description": "A description of the environment that's being created and deployed."
        }
      ]
    },
    "environmentAccountConnectionId": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EnvironmentAccountConnectionId"
        },
        {
          "description": "<p>The ID of the environment account connection that you provide if you're provisioning your environment infrastructure resources to an environment account. For more information, see <a href=\"https://docs.aws.amazon.com/proton/latest/userguide/ag-env-account-connections.html\">Environment account connections</a> in the <i>Proton User guide</i>.</p> <p>To use Amazon Web Services-managed provisioning for the environment, specify either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and omit the <code>provisioningRepository</code> parameter.</p>"
        }
      ]
    },
    "name": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The name of the environment."
        }
      ]
    },
    "protonServiceRoleArn": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Arn"
        },
        {
          "description": "<p>The Amazon Resource Name (ARN) of the Proton service role that allows Proton to make calls to other services on your behalf.</p> <p>To use Amazon Web Services-managed provisioning for the environment, specify either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and omit the <code>provisioningRepository</code> parameter.</p>"
        }
      ]
    },
    "provisioningRepository": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RepositoryBranchInput"
        },
        {
          "description": "<p>The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see <a>CreateRepository</a>.</p> <p>To use self-managed provisioning for the environment, specify this parameter and omit the <code>environmentAccountConnectionId</code> and <code>protonServiceRoleArn</code> parameters.</p>"
        }
      ]
    },
    "spec": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SpecContents"
        },
        {
          "description": "A YAML formatted string that provides inputs as defined in the environment template bundle schema file. For more information, see <a href=\"https://docs.aws.amazon.com/proton/latest/userguide/ag-environments.html\">Environments</a> in the <i>Proton User Guide</i>."
        }
      ]
    },
    "tags": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TagList"
        },
        {
          "description": "<p>An optional list of metadata items that you can associate with the Proton environment. A tag is a key-value pair.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/proton/latest/userguide/resources.html\">Proton resources and tagging</a> in the <i>Proton User Guide</i>.</p>"
        }
      ]
    },
    "templateMajorVersion": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TemplateVersionPart"
        },
        {
          "description": "The major version of the environment template."
        }
      ]
    },
    "templateMinorVersion": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TemplateVersionPart"
        },
        {
          "description": "The minor version of the environment template."
        }
      ]
    },
    "templateName": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The name of the environment template. For more information, see <a href=\"https://docs.aws.amazon.com/proton/latest/userguide/ag-templates.html\">Environment Templates</a> in the <i>Proton User Guide</i>."
        }
      ]
    }
  },
  "required": [
    "name",
    "spec",
    "templateMajorVersion",
    "templateName"
  ]
}