---
title: "PUT /CreateComponent"
method: PUT
path: "/CreateComponent"
---

# PUT /CreateComponent

`PUT /CreateComponent`

Creates a new component that can be used to build, validate, test, and assess your image. The component is based on a YAML document that you specify using exactly one of the following methods:

*   Inline, using the `data` property in the request body.
    
*   A URL that points to a YAML document file stored in Amazon S3, using the `uri` property in the request body.

## Request body

- object
  - `name` string, required — The name of the component.
  - `semanticVersion` string, required — <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` string — Describes the contents of the component.
  - `changeDescription` string — 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` 'Windows' | 'Linux', required — The operating system platform of the component.
  - `supportedOsVersions` OsVersion[] — 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` string — 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` string — <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` string — The ID of the KMS key that is used to encrypt this component.
  - `tags` object — The tags that apply to the component.
  - `clientToken` string, required — The idempotency token of the component.

## Response `200`

Success

- CreateComponentResponse
  - `requestId` string — The request ID that uniquely identifies this request.
  - `clientToken` string — The idempotency token used to make this request idempotent.
  - `componentBuildVersionArn` string — The Amazon Resource Name (ARN) of the component that this request created.

## Other responses

- `480` — ServiceException
- `481` — ClientException
- `482` — ServiceUnavailableException
- `483` — InvalidRequestException
- `484` — IdempotentParameterMismatchException
- `485` — ForbiddenException
- `486` — CallRateLimitExceededException
- `487` — InvalidVersionNumberException
- `488` — ResourceInUseException
- `489` — InvalidParameterCombinationException
- `490` — ServiceQuotaExceededException

---

[API](https://skmtc.net/aws/apis/imagebuilder.md) · [All operations](https://skmtc.net/aws/apis/imagebuilder/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/imagebuilder/versions/cfe68d8f8262/schema)
