Amazon Proton · JSON Structure

Amazon Proton Create Component Input Structure

CreateComponentInput schema from Amazon Proton API

Type: object Properties: 10 Required: 3
DevOpsInfrastructure as CodePlatform EngineeringServerlessTemplatesSelf-ServiceCI/CD

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

Properties

clientToken description environmentName manifest name serviceInstanceName serviceName serviceSpec tags templateFile

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-component-input-structure.json",
  "name": "CreateComponentInput",
  "description": "CreateComponentInput schema from Amazon Proton API",
  "type": "object",
  "properties": {
    "clientToken": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ClientToken"
        },
        {
          "description": "The client token for the created component."
        }
      ]
    },
    "description": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Description"
        },
        {
          "description": "An optional customer-provided description of the component."
        }
      ]
    },
    "environmentName": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The name of the Proton environment that you want to associate this component with. You must specify this when you don't specify <code>serviceInstanceName</code> and <code>serviceName</code>."
        }
      ]
    },
    "manifest": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TemplateManifestContents"
        },
        {
          "description": "A path to a manifest file that lists the Infrastructure as Code (IaC) file, template language, and rendering engine for infrastructure that a custom component provisions."
        }
      ]
    },
    "name": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The customer-provided name of the component."
        }
      ]
    },
    "serviceInstanceName": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The name of the service instance that you want to attach this component to. If you don't specify this, the component isn't attached to any service instance. Specify both <code>serviceInstanceName</code> and <code>serviceName</code> or neither of them."
        }
      ]
    },
    "serviceName": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The name of the service that <code>serviceInstanceName</code> is associated with. If you don't specify this, the component isn't attached to any service instance. Specify both <code>serviceInstanceName</code> and <code>serviceName</code> or neither of them."
        }
      ]
    },
    "serviceSpec": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SpecContents"
        },
        {
          "description": "The service spec that you want the component to use to access service inputs. Set this only when you attach the component to a service instance."
        }
      ]
    },
    "tags": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TagList"
        },
        {
          "description": "<p>An optional list of metadata items that you can associate with the Proton component. 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>"
        }
      ]
    },
    "templateFile": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TemplateFileContents"
        },
        {
          "description": "<p>A path to the Infrastructure as Code (IaC) file describing infrastructure that a custom component provisions.</p> <note> <p>Components support a single IaC file, even if you use Terraform as your template language.</p> </note>"
        }
      ]
    }
  },
  "required": [
    "manifest",
    "name",
    "templateFile"
  ]
}