> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Aggiornare l'elenco di elementi consentiti dei modelli di Devin Desktop

> Sostituisci in modo programmatico l'elenco di elementi consentiti dei modelli di Devin Desktop del tuo team: imposta gli UID e i tag dei modelli consentiti con una verifica ETag sullo stato attuale.

## Panoramica

Sostituisce l'elenco di elementi consentiti dei modelli del tuo team, ovvero la stessa impostazione che gli amministratori gestiscono nei controlli dell'organizzazione in Devin Desktop. Il corpo della richiesta rappresenta lo stato desiderato completo: i due elenchi sostituiscono quelli salvati.

Per evitare di sovrascrivere una modifica che non hai ancora visto, la richiesta deve includere nell'intestazione `If-Match` l'`ETag` di una risposta di [List Models](/it/desktop/accounts/api-reference/list-models). Se da quella risposta sono cambiati l'elenco di elementi consentiti dei modelli, i modelli disponibili o i relativi prezzi, l'aggiornamento viene rifiutato con `412` e dovrai elencare di nuovo i modelli.

> [!NOTE]
>
> Questo endpoint è in fase alpha (`v2alpha`). La struttura della richiesta e della risposta potrebbe cambiare.

## Autenticazione

Passa una chiave API nell'intestazione `Authorization`:

```
Authorization: Bearer <api-key>
```

Usa una [API key dell'utente di servizio](/it/api-reference/authentication) di Devin (`cog_...`). Oltre all'autorizzazione **Use Devin Desktop** richiesta da [List Models](/it/desktop/accounts/api-reference/list-models), il ruolo dell'utente di servizio deve includere l'autorizzazione **Windsurf admin** (`account.windsurf.admin`), già prevista dal ruolo integrato Account Admin. Un utente di servizio privo di questa autorizzazione può elencare i modelli, ma riceve un errore `403` su questo endpoint.

## Richiesta

**If-Match** `string` *required*

Il valore dell'intestazione `ETag` di una risposta `GET /api/v2alpha/models` che riflette lo stato attuale. Obbligatorio; `*` non è accettato.

**allowed\_model\_uids** `string[]` *required*

UID dei modelli che gli utenti possono selezionare, ad es. `["claude-sonnet-4-5"]`. Passa `[]` per consentire i modelli solo in base ai tag.

**allowed\_model\_tags** `string[]` *required*

Tag dei modelli che gli utenti possono selezionare, inclusi i tag dei fornitori come `provider-anthropic` o `provider-openai`. Passa `[]` per consentire solo i modelli con gli UID elencati.

Entrambi i campi sono obbligatori. I campi sconosciuti vengono rifiutati.

### Esempio di richiesta

```bash theme={null}
ETAG=$(curl -s -D - -o /dev/null https://server.codeium.com/api/v2alpha/models \
  -H "Authorization: Bearer $DEVIN_API_KEY" | awk 'tolower($1)=="etag:" {print $2}' | tr -d '\r')

curl -X PUT https://server.codeium.com/api/v2alpha/models \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "If-Match: $ETAG" \
  -H "Content-Type: application/json" \
  -d '{"allowed_model_uids": ["claude-sonnet-4-5"], "allowed_model_tags": ["provider-anthropic"]}'
```

## Risposta

In caso di esito positivo, la risposta è identica a quella di [List Models](/it/desktop/accounts/api-reference/list-models), con il nuovo elenco di elementi consentiti applicato: tutti i modelli con il relativo flag `allowed`, i valori salvati di `allowed_model_uids` e `allowed_model_tags` e una nuova intestazione `ETag`.

## Risposte di errore

Gli errori vengono restituiti nel formato `{"error": "<message>"}`.

| Stato | Causa |
| - | - |
| `400` | Il corpo non è in formato JSON, contiene campi sconosciuti oppure non include `allowed_model_uids` o `allowed_model_tags`; oppure è impostato il parametro di query `filter` (accettato solo da [List Models](/it/desktop/accounts/api-reference/list-models)) |
| `401` | Chiave API mancante o non valida, oppure chiave API legacy di Windsurf (sono accettate solo le chiavi degli utenti di servizio Devin `cog_...`) |
| `403` | L'utente associato alla chiave non ha accesso a Devin Desktop, oppure il suo ruolo non dispone dell'autorizzazione Windsurf admin (`account.windsurf.admin`) |
| `412` | `If-Match` non corrisponde all'`ETag` attuale; elenca di nuovo i modelli e riprova |
| `428` | Intestazione `If-Match` mancante |
| `429` | Limite di richieste superato; attendi il tempo indicato nell'intestazione `Retry-After` prima di riprovare |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.