# What is ALM Template?

{% hint style="info" %}
We are in the process of updating the current template to a new version suited for multi-application, multi-stack, and multi-vendor deployments. It will be a YAML-based template (although JSON is also supported). We will be releasing these new features in the coming months. Stay tuned!
{% endhint %}

## What is ALM Template?

### Concepts  <a href="#concepts" id="concepts"></a>

* ALM Template is a JSON-formatted configuration file which defines your cloud-native application's architecture design and runtime configuration.
* ALM Template is cloud platform agnostic. You write your template once and it works on any cloud platforms such as AWS, GCP, Azure, AliCloud, etc.
* You can save and reuse ALM Templates at anytime.

## How does it work

ALM Template is a component of [ALM](https://mobingi.com/how-mobingi-alm-works). You write your ALM Template in code blocks and paste it on ALM console (or through CLI, or API) and it will be converted into each cloud platform's native configuration standards, then ALM will provision all resources on your behalf.

If you specify the runtime configurations of your application in the `container` section of the ALM Template, then ALM will also deploy an [ALM-agent](https://docs.mobingi.com/mobingi-alm/alm-agent) on each provisioned node to perform application runtime setup and continuous code deployment.

## ALM Template formats

ALM Template is designed in JSON format. You can also write your template in YAML format and then convert it into JSON file when you deploy your stacks on ALM UI (or through CLI, or API).

{% hint style="info" %}
Official YAML format support is in-progress.
{% endhint %}

## ALM Template components

ALM Template top-level components consist of `version`, `label`, `description`, `vendor`, `configurations`. For more information about these components, see the reference section.


---

# 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.alphaus.cloud/v3.0-english/alm-template/what-is-alm-template.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.
