# Organizaciones, proyectos e instancias de servicio

Todo lo que compras o ejecutas en Zaroz Cloud v2 está en un único árbol:

```
Organización            quién paga y quién puede hacer qué (miembros, roles, tokens de API, estado)
 └─ Proyecto            una carpeta de cosas relacionadas: "Producción", "Staging"
     └─ Suscripción     una compra de un producto y un plan; lo que se renueva y factura
         └─ Instancia de servicio   el servicio en marcha: un servidor de juegos, una VPS, un Workload...
              └─ recursos     pods, volúmenes, endpoints, copias de seguridad...
```

En v2 **no hay pedidos**. Una compra es una suscripción; el servicio que ejecuta es una instancia de servicio.

## Organizaciones

Una organización es el límite de facturación y de permisos. Toda cuenta tiene una organización personal; puedes crear otras o unirte a ellas. Un miembro es **Owner**, **Admin** o miembro normal, y el rol decide quién puede comprar (Owner o Admin), cambiar la facturación y crear tokens de API. El dinero, el [estado](/es/concepts/trust) y los límites de unidades son todos por organización.

## Proyectos

Un proyecto agrupa servicios dentro de una organización y es la unidad que direccionas en la consola y en la mayoría de las rutas de la API. El `slug` es único dentro de la organización.

**curl**

```bash
curl -sS "$ZAROZ_API/projects" -H "$AUTH"                                  # every project you can see
curl -sS -X POST "$ZAROZ_API/organizations/<org uuid>/projects" -H "$AUTH" \
  -H "Content-Type: application/json" -d '{"name": "Production", "slug": "production"}'
```

**TypeScript**

```ts
import { call } from "./zaroz";

const mine = await call("GET", "/projects");
const created = await call("POST", `/organizations/${ORG}/projects`, { name: "Production", slug: "production" });
console.log(mine.body.map((p: any) => p.slug), created.body.id);
```

**Python**

```python
from zaroz import call

_, mine = call("GET", "/projects")
_, created = call("POST", f"/organizations/{ORG}/projects", {"name": "Production", "slug": "production"})
print([p["slug"] for p in mine], created["id"])
```


Si compras sin indicar un proyecto, la compra va al proyecto por defecto de la organización, que se crea en la primera compra.

## Suscripciones e instancias de servicio

Una **suscripción** es una compra: producto, plan, región y tamaño. Lleva el precio, la fecha de renovación y las facturas. Una **instancia de servicio** es el servicio que ejecuta esa suscripción. Compras una cosa y obtienes un servicio, por eso en la consola se usan las palabras casi como sinónimos; la API las separa porque tienen ids distintos:

| Quieres | Dirección | Id de |
|---|---|---|
| cambiar la facturación: renovar, redimensionar, cancelar | `/subscriptions/{id}/...` | la suscripción |
| operar el servicio: iniciar, desplegar, archivos, logs | `/service-instances/{id}/...` | la instancia de servicio |
| operar las unidades de un Workload | `/projects/{project_id}/service-instances/{id}/units...` | el proyecto y la instancia de servicio |

Un **Workload** es una instancia de servicio del producto Workload: tu app, ejecutándose como una o más [unidades](/es/units-code/concepts).

## Acceso

Te autenticas con un token bearer: tu sesión de inicio de sesión o un [token de API](/es/concepts/capabilities#tokens-de-api) limitado exactamente a lo que elijas. Cada ruta comprueba que eres miembro de la organización propietaria y que tu token (si es restringido) tiene el permiso para esa acción sobre ese recurso. Un recurso que no puedes ver responde **404**, igual que uno que no existe.
