# Component Type

A **component type** is a blueprint for a component that describes the type of entity the component refers to. In Akamas, a component needs to be associated with a **component type**, from which the component inherits its metrics and parameters.

Component types are platform entities (i.e.: shared among all the users) usually provided off the shelf and shipped within the [Optimization Packs](/akamas-docs/reference/glossary/optimization-pack.md). Typically, different component types within the same optimization pack are used to model different versions/releases of the same technology.

Akamas' users with appropriate privileges can create custom component types and optimization packs, as described on the [Creating custom optimization pack](/akamas-docs/knowledge-base/creating-custom-optimization-packs.md) page.

## Construct

A component type is described by the following mandatory properties (other properties can be defined but are not mandatory):

* a **name** that uniquely identifies the component type within the system
* a **description** that clarifies what the component type refers to
* a **parameter** definitions array (more on Parameters later)
* a **metrics** array (more on Metrics later)

The construct to be used to define a component type is described on the [Component type template](/akamas-docs/reference/construct-templates/component-types-template.md) page.

## Commands

A component type is an [Akamas resource](/akamas-docs/reference/cli-reference.md#clireference-operations) that can be managed via CLI using the [resource management commands.](/akamas-docs/reference/cli-reference/resource-management.md)

## User Interface

When visualizing system components the component type is displayed.

The following figure shows the out-of-the-box JVM component types related to the JVM optimization pack.

<figure><img src="/files/ZQUdHHmFtJKwcK2BVySc" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.akamas.io/akamas-docs/reference/glossary/component-type.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
