# uip platform tenants

> `uip platform tenants` reads and updates per-tenant license allocations. `licenses get` returns the active product allocation for a tenant (allocated, available, consumed, validity window); `licenses set` overlays a JSON delta of `{code, quantity}` entries, routing each product code to the service license that already owns it within the tenant.

`uip platform tenants` reads and updates per-tenant license allocations. `licenses get` returns the active product allocation for a tenant (allocated, available, consumed, validity window); `licenses set` overlays a JSON delta of `{code, quantity}` entries, routing each product code to the service license that already owns it within the tenant.

## Synopsis

```
uip platform tenants licenses <verb> [options] <tenant-key>
```

## Verbs

| Verb | Purpose |
|---|---|
| `get` | Get the active license summary for a tenant (one row per product, dates as ISO). |
| `set` | Apply a delta of `{code, quantity}` entries to a tenant's runtime licenses and consumables, auto-routed across service-types. |

## uip platform tenants licenses get

Get the license summary for a tenant: allocated, available, consumed quantities per product code, with friendly names. Returns one row per active product (consumables and runtime licenses alike).

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<tenant-key>` | yes | Tenant key (GUID). |

### Options

| Long | Value | Default | Description |
|---|---|---|---|
| `--organization` | account-id | session default | Organization account GUID. Override the org resolved from the current login. |

### Example

```bash
uip platform tenants licenses get 296b7134-6691-43db-b48a-2d95ed3ab031
```

### Data shape (--output json)

```json
{
  "Code": "TenantLicenses",
  "Data": [
    {
      "code": "PLTU",
      "name": "Platform Units",
      "allocated": 300,
      "availableForAllocation": 4700,
      "allocatedAcrossOtherTenants": 0,
      "totalUnitsInAccount": 5000,
      "consumed": 50,
      "startDate": "2023-11-14T22:13:20.000Z",
      "endDate": "2027-09-15T18:40:00.000Z"
    }
  ]
}
```

## uip platform tenants licenses set

Set runtime licenses and consumables for a tenant. The CLI fetches the tenant's existing service licenses, indexes their products by `code`, and routes each input entry to the service license that already owns that code. Quantities in `--input` overlay the current allocation by code; products you do not list keep their existing quantities.

The command fails before writing if any input code:

- is not present in any of the tenant's existing service licenses (unrouted), or
- appears under more than one of the tenant's service licenses (ambiguous routing).

On partial failure (one service-type fails to update after another already succeeded), the error message lists the service types that were already applied so you can re-run with the same input idempotently.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<tenant-key>` | yes | Tenant key (GUID). |

### Options

| Long | Value | Default | Description |
|---|---|---|---|
| `--input` | path | **required** | Path to a JSON file with the product delta, for example `[{"code":"UNATT","quantity":5}]`. Quantities overlay the current allocation by product code. |
| `--organization` | account-id | session default | Organization account GUID. Override the org resolved from the current login. |

### Example

```bash
uip platform tenants licenses set 296b7134-6691-43db-b48a-2d95ed3ab031 \
    --input ./delta.json
```

`delta.json`:

```json
[
  { "code": "PLTU", "quantity": 500 },
  { "code": "RU",   "quantity": 100 }
]
```

### Data shape (--output json)

```json
{
  "Code": "TenantLicensesSet",
  "Data": [
    {
      "serviceType": "orchestrator",
      "code": "PLTU",
      "name": "Platform Units",
      "quantity": 500
    },
    {
      "serviceType": "orchestrator",
      "code": "RU",
      "name": "Robot Units",
      "quantity": 100
    }
  ]
}
```

## Exit codes

See [Exit codes](./exit-codes.md). No verb-specific overrides.

## Related commands

- [`uip platform licenses consumables`](./uip-platform-licenses.md) — organization-level consumables report (per-tenant pool usage, daily and folder breakdowns).
- [`uip platform users`](./uip-platform-users.md) — per-user license bundles.
- [`uip or licenses`](./uip-orchestrator-licenses.md) — Orchestrator-level machine and named-user license assignment.

## See also

- [Global options](./global-options.md).
- [Output formats](./output-formats.md) — switch the table view with `--output table`.
