Amazon EC2 Image Builder · JSON Structure

Ec2 Image Builder Create Component Request Structure

CreateComponentRequest schema from EC2 Image Builder

Type: object Properties: 11 Required: 4
Amazon Web ServicesAutomationContainer ImagesEC2Image BuildingVirtual Machine Images

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

Properties

name semanticVersion description changeDescription platform supportedOsVersions data uri kmsKeyId tags clientToken

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-ec2-image-builder/refs/heads/main/json-structure/ec2-image-builder-create-component-request-structure.json",
  "name": "CreateComponentRequest",
  "description": "CreateComponentRequest schema from EC2 Image Builder",
  "type": "object",
  "properties": {
    "name": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceName"
        },
        {
          "description": "The name of the component."
        }
      ]
    },
    "semanticVersion": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VersionNumber"
        },
        {
          "description": "<p>The semantic version of the component. This version follows the semantic version syntax.</p> <note> <p>The semantic version has four nodes: &lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;/&lt;build&gt;. You can assign values for the first three, and can filter on all of them.</p> <p> <b>Assignment:</b> For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node.</p> <p> <b>Patterns:</b> You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01.</p> </note>"
        }
      ]
    },
    "description": {
      "allOf": [
        {
          "$ref": "#/components/schemas/NonEmptyString"
        },
        {
          "description": "Describes the contents of the component."
        }
      ]
    },
    "changeDescription": {
      "allOf": [
        {
          "$ref": "#/components/schemas/NonEmptyString"
        },
        {
          "description": "The change description of the component. Describes what change has been made in this version, or what makes this version different from other versions of this component."
        }
      ]
    },
    "platform": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Platform"
        },
        {
          "description": "The operating system platform of the component."
        }
      ]
    },
    "supportedOsVersions": {
      "allOf": [
        {
          "$ref": "#/components/schemas/OsVersionList"
        },
        {
          "description": "The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation."
        }
      ]
    },
    "data": {
      "allOf": [
        {
          "$ref": "#/components/schemas/InlineComponentData"
        },
        {
          "description": "Component <code>data</code> contains inline YAML document content for the component. Alternatively, you can specify the <code>uri</code> of a YAML document file stored in Amazon S3. However, you cannot specify both properties."
        }
      ]
    },
    "uri": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Uri"
        },
        {
          "description": "<p>The <code>uri</code> of a YAML component document file. This must be an S3 URL (<code>s3://bucket/key</code>), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify component content up to your service quota.</p> <p>Alternatively, you can specify the YAML document inline, using the component <code>data</code> property. You cannot specify both properties.</p>"
        }
      ]
    },
    "kmsKeyId": {
      "allOf": [
        {
          "$ref": "#/components/schemas/NonEmptyString"
        },
        {
          "description": "The ID of the KMS key that is used to encrypt this component."
        }
      ]
    },
    "tags": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TagMap"
        },
        {
          "description": "The tags that apply to the component."
        }
      ]
    },
    "clientToken": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ClientToken"
        },
        {
          "description": "The idempotency token of the component."
        }
      ]
    }
  },
  "required": [
    "name",
    "semanticVersion",
    "platform",
    "clientToken"
  ]
}