Saltar al contenido principal
POST
Esta llamada guarda un stack como plantilla privada con una primera versión y responde 201 con la plantilla, con un servicio por cada miembro que elijas. Las variables de conexión del stack se convierten en marcadores que apuntan a los otros servicios ({{services.db.url}}, por ejemplo), y cada carpeta de Blob del stack se convierte en un servicio Blob. Un miembro que se deja fuera de la plantilla también deja fuera las variables que apuntaban a él. Las bases de datos se recrean vacías: sus datos nunca se copian. Requiere el scope templates:write cuando se llama con una clave de API. Se aplican las reglas de plan, límite y workspace de Crear una plantilla privada, la plantilla no la verifica Vertra Cloud, y las negativas de Guardar una aplicación como plantilla valen para cada miembro que sea aplicación. Lee antes la propuesta con Revisar borrador de plantilla.
string
requerido
El ID del stack.
string
Si el stack pertenece a un workspace, el ID del workspace.
string
requerido
El slug de la plantilla: letras minúsculas, dígitos y guiones.
object
requerido
El nombre por idioma: pt-br (obligatorio), en y es, de hasta 50 caracteres cada uno.
object
requerido
La descripción por idioma, con la misma forma que name, de hasta 128 caracteres cada uno.
string
requerido
automation, ai-agents, bots, apis, cms, monitoring, starters, databases u other.
string[]
Hasta 10 etiquetas.
string
La primera versión, como versión semántica. Por defecto 1.0.0.
object
Lo que pueden hacer los usuarios de la plantilla, como en los permisos del manifiesto.
object[]
requerido
Lo que se guarda de cada miembro del stack, una aplicación o una base de datos.
string
El workspace que será propietario de la plantilla. Sin este campo, la plantilla te pertenece.

Response

El mismo objeto de plantilla que devuelve Crear una plantilla privada, con 201 Created. creates_stack es true y services tiene una entrada por miembro.

Error Responses

string
El código de error que indica el motivo del fallo. Valores posibles:
  • API_KEY_SCOPE_DENIED: La clave de API no tiene el scope templates:write (403).
  • STACK_NOT_FOUND: El stack no existe o no es tuyo.
  • APP_NOT_FOUND: Una aplicación miembro no existe.
  • TEMPLATE_SAVE_NOT_ALLOWED: Una aplicación miembro llegó desde un enlace para compartir, o ejecuta una imagen de la plataforma (403).
  • TEMPLATE_CLOSED: Un miembro procede de una plantilla cerrada (403).
  • TEMPLATE_MANIFEST_INVALID: El resultado no es un manifiesto válido; details.issues enumera los hallazgos.
  • TEMPLATE_SECRET_IN_SOURCE: Un archivo seleccionado contiene un secreto; details.files enumera las rutas (400).
  • TEMPLATE_SLUG_TAKEN: El slug ya está en uso entre tus plantillas o está reservado.
  • TEMPLATE_PRIVATE_LIMIT_REACHED: La cuenta ya tiene 5 plantillas privadas.
  • PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES: El plan no puede crear plantillas.
  • WORKSPACE_OWNER_ONLY: Solo el propietario del workspace guarda plantillas en él.
Última modificación el 28 de octubre de 2026