> For the complete documentation index, see [llms.txt](https://docs.skyone.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skyone.cloud/espanol/api-skyone-autosky/api-de-servidor-de-preparacion-optimizada.md).

# API de Servidor de Preparación Optimizada

Llamadas de API para publicar y verificar el estado de publicación de servidores de preparación de entornos.

## Publicación Optimizada

La publicación optimizada ofrece más control sobre el proceso de publicación de imágenes del servidor de preparación.

### Publicar imagen de forma optimizada

```http
POST /environments/{amb_uuid}/servers/template/optimized-publish/
```

### Parámetros de Path

| Parámetro  | Obligatorio | Descripción      |
| ---------- | ----------- | ---------------- |
| `amb_uuid` | Si          | UUID del entorno |

### Cuerpo de la Solicitud

| Campo                                   | Tipo    | Descripción                                                                                |
| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `stop_server`                           | boolean | Si el servidor de preparación debe ser detenido durante la creación de la imagen.          |
| `notify_list`                           | array   | Lista de correos electrónicos a ser notificados al finalizar la publicación.               |
| `replace_instances`                     | object  | Configuraciones de publicación.                                                            |
| `replace_instances.block_instances`     | boolean | Si las instancias con versiones anteriores deben ser bloqueadas después de la publicación. |
| `replace_instances.block_users`         | boolean | Si se debe solicitar la reconexión de los usuarios (requiere `block_instances: true`)      |
| `replace_instances.block_users_message` | string  | Mensaje de advertencia de reconexión (cuando `block_users: true`)                          |
| `replace_instances.block_users_seconds` | number  | Tiempo de desconexión en segundos (cuando `block_users: true`)                             |

### Valores aceptados para `block_users_seconds`

| Valor  | Equivalente |
| ------ | ----------- |
| `300`  | 5 minutos   |
| `600`  | 10 minutos  |
| `900`  | 15 minutos  |
| `1200` | 20 minutos  |
| `1500` | 25 minutos  |
| `1800` | 30 minutos  |

### Modos de Publicación

{% tabs %}
{% tab title="Modo 1 - Predeterminado" %}
Se inician las instancias actualizadas, no se bloquean las instancias anteriores y no se desconectan los usuarios.

```json
{
    "stop_server": false,
    "notify_list": ["email-01@dominio.com"],
    "replace_instances": {
        "block_instances": false,
        "block_users": false
    }
}
```

{% endtab %}

{% tab title="Modo 2 - Mantener usuarios conectados" %}
Se inician las instancias actualizadas, se bloquean las instancias anteriores, pero **no** se desconectan los usuarios.

```json
{
    "stop_server": false,
    "notify_list": ["email-01@dominio.com"],
    "replace_instances": {
        "block_instances": true,
        "block_users": false
    }
}
```

{% endtab %}

{% tab title="Modo 3 - Solicitar reconexión de usuarios" %}
Se bloquean las instancias anteriores y se notifica a los usuarios para la reconexión.

> **Importante:** No es posible enviar `block_users: true` con `block_instances: false`.

```json
{
    "stop_server": false,
    "notify_list": ["email-01@dominio.com"],
    "replace_instances": {
        "block_instances": true,
        "block_users": true,
        "block_users_message": "Mensaje de advertencia a los usuarios",
        "block_users_seconds": 300
    }
}
```

{% endtab %}

{% tab title="Opción: Detener el servidor durante la creación" %}
Cualquier modo anterior acepta `stop_server: true` para dejar el servidor de preparación no disponible durante la creación de la imagen.

```json
{
    "stop_server": true,
    "notify_list": ["email-01@dominio.com"],
    "replace_instances": {
        "block_instances": false,
        "block_users": false
    }
}
```

{% endtab %}
{% endtabs %}

### Respuesta

**Status:** `202 Accepted`

```json
{
    "status": 202,
    "message": "Publicación iniciada con éxito.",
    "request_id": "149cbd70-5241-4e62-88a7-c87bcdf2eecc"
}
```

## Verificar status de publicación optimizada

Verifica el estado de la publicación de la imagen para la solicitud especificada.

```http
GET /environments/{amb_uuid}/servers/template/optimized-publish/{request_id}/
```

### Parámetros de Path

| Parámetro    | Obligatorio | Descripción                         |
| ------------ | ----------- | ----------------------------------- |
| `amb_uuid`   | Si          | UUID del entorno                    |
| `request_id` | Si          | UUID de la solicitud de publicación |

### Respuesta

**Status:** `200 OK`

```json
{
    "status": 200,
    "image_publication_status": "PUBLISHING",
    "message": "Publicación en curso."
}
```

### Valores posibles de `image_publication_status`

| Valor        | Descripción            |
| ------------ | ---------------------- |
| `PUBLISHING` | Publicación en curso   |
| `PUBLISHED`  | Publicación completada |
| `ERROR`      | Publicación completada |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.skyone.cloud/espanol/api-skyone-autosky/api-de-servidor-de-preparacion-optimizada.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
