Modifica date, postazioni, righe o note (ricalcolo e riallocazione atomici)
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
payload := strings.NewReader("{ \"customer_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"starts_on\": \"2026-04-15\", \"ends_on\": \"2026-04-15\", \"slots\": \"AM\", \"formula\": \"half_day\", \"lines\": [ { \"pack_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"zone_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"spot_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"quantity\": 1, \"extras\": [ { \"extra_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"quantity\": 1 } ] } ], \"extras\": [ { \"extra_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"quantity\": 1 } ], \"notes_customer\": \"example\", \"notes_internal\": \"example\", \"force\": true }")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("cookie", "arenile_session=<arenile_session>") req.Header.Add("If-Match", "example") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PATCH', headers: { cookie: 'arenile_session=<arenile_session>', 'If-Match': 'example', 'Content-Type': 'application/json' }, body: '{"customer_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","starts_on":"2026-04-15","ends_on":"2026-04-15","slots":"AM","formula":"half_day","lines":[{"pack_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","zone_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","spot_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1,"extras":[{"extra_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1}]}],"extras":[{"extra_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1}],"notes_customer":"example","notes_internal":"example","force":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Content-Type: application/json' \ --header 'If-Match: example' \ --cookie arenile_session=<arenile_session> \ --data '{ "customer_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "starts_on": "2026-04-15", "ends_on": "2026-04-15", "slots": "AM", "formula": "half_day", "lines": [ { "pack_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "zone_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "spot_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1, "extras": [ { "extra_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ] } ], "extras": [ { "extra_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ], "notes_customer": "example", "notes_internal": "example", "force": true }'Spec 10.3: nuova allocazione e rilascio della vecchia nella stessa transazione, nuovo prezzo, differenza da incassare (positiva) o rimborsare (negativa). Gli snapshot originali restano (INV-21).
Authorizations
Sezione intitolata “Authorizations”Parameters
Sezione intitolata “Parameters”Path Parameters
Sezione intitolata “Path Parameters”Query Parameters
Sezione intitolata “Query Parameters”True = calcola differenza e conflitti senza salvare.
Header Parameters
Sezione intitolata “Header Parameters”ETag (versione) della mappa letta in precedenza; obbligatorio (428 precondition_required se assente). * salva sulla versione corrente; la forma debole W/"3" è accettata (ADR 0008).
Obbligatorio per le richieste autenticate via cookie che modificano
dati: deve coincidere con il valore del cookie arenile_csrf.
Request Bodyrequired
Sezione intitolata “Request Bodyrequired”Campi da modificare; i campi assenti restano invariati. lines sostituisce tutte le righe.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Formula di durata.
object
Obbligatoria per zone in modalità zone o quantity; dedotta dalla postazione in modalità seat.
Obbligatoria per le zone seat; facoltativa per le zone zone (assegnazione immediata).
Default 1; >1 solo per zone quantity.
object
object
Ignora i limiti di modifica della policy (registrato nell’audit).
Responses
Sezione intitolata “Responses”Esito della modifica
object
False con dry_run=true (nessuna scrittura).
object
Stato della prenotazione (spec 10.2).
Canale di vendita.
object
Cognome e nome per elenchi e mappa.
Consenso marketing separato e facoltativo (spec 23).
object
Versione per la concorrenza ottimistica; coincide con l’ETag.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Formula di durata.
Creata in modalità prova (spec 15.4): esclusa da report, KPI, corrispettivi ed esportazioni.
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
Unità per le zone a quantità; 1 altrimenti.
Importo in centesimi di euro (IVA inclusa).
object
Assente per gli extra legati alla prenotazione.
Importo in centesimi di euro (IVA inclusa).
Extra legati alla prenotazione (attach_to = booking).
object
Assente per gli extra legati alla prenotazione.
Importo in centesimi di euro (IVA inclusa).
Una riga di spot_allocations o pool_allocations della prenotazione.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
object
Manual, stripe, …
Metodo di pagamento (spec 6.7); credit = uso del saldo crediti del cliente (spec 13.4).
Importo in centesimi di euro (IVA inclusa).
Incassato in modalità prova (spec 15.4): escluso da report, KPI, corrispettivi ed esportazioni.
Voce dello storico, letta dal registro attività (audit_log).
object
Es. booking.created, booking.confirmed, booking.note_added, payment.succeeded.
object
Dettaglio completo del calcolo (spec 8.6), con le regole applicate passo per passo.
object
object
object
Formula a durata fissa.
Importo in centesimi di euro (IVA inclusa).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
Numero decimale esatto come stringa (es. “1.2”, “0.5”, “10”). Mai float nel calcolo.
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Scomposizione corrente del prezzo dopo una modifica successiva alla conferma (ADR 0011): total_amount coincide con il suo totale. Assente finché la prenotazione non è stata modificata dopo la conferma (vale price_snapshot, immutabile, INV-21).
object
object
object
Formula a durata fissa.
Importo in centesimi di euro (IVA inclusa).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fasce prenotate: mattina, pomeriggio o giorno intero.
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
object
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
object
Numero decimale esatto come stringa (es. “1.2”, “0.5”, “10”). Mai float nel calcolo.
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Policy applicata al momento della creazione (spec 9), base di rimborsi e modifiche.
object
Vincoli di prenotazione (spec 9); i campi assenti ereditano dalla policy di default.
object
object
object
object
ISO 1..7; 0 = qualsiasi.
object
object
Percentuale intera o importo in centesimi.
object
object
Importo in centesimi di euro (IVA inclusa).
object
object
Validità in giorni dei crediti emessi da questa policy (cancellazione, meteo, rilascio): expires_on = giorno di emissione + giorni. Assente o 0 = nessuna scadenza (spec 9, 13.4).
Rimborsi garantiti verso il provider (stato visibile, mai persi né doppi).
object
Importo in centesimi di euro (IVA inclusa).
Intent di pagamento rimborsato.
Intent di rimborso presso il provider (dopo il primo invio).
Riga refund del registro pagamenti (dopo la conferma).
Pending: riservato, in attesa di invio (o di nuovo tentativo); processing: inviato al provider, in attesa di conferma; succeeded: confermato dal provider (riga refund nel registro pagamenti); failed: tentativi esauriti, serve un intervento (notifica al gestore); cancelled: annullato dal gestore (rimborso fatto altrove).
Stati raggiungibili da quello corrente (macchina a stati, spec 10.2).
Versione per la concorrenza ottimistica; coincide con l’ETag.
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Importo in centesimi di euro (IVA inclusa).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Example
{ "booking": { "status": "draft", "channel": "desk", "slots": "AM", "formula": "half_day", "lines": [ { "assignment_status": "assigned" } ], "allocations": [ { "slot": "AM", "kind": "booking" } ], "payments": [ { "method": "cash", "direction": "in", "status": "pending" } ], "history": [ { "actor_type": "user" } ], "price_snapshot": { "lines": [ { "fixed": { "formula": "week" }, "days": [ { "slots": "AM", "applied": [ { "stage": "base" } ] } ] } ] }, "price_current": { "lines": [ { "fixed": { "formula": "week" }, "days": [ { "slots": "AM", "applied": [ { "stage": "base" } ] } ] } ] }, "policy_snapshot": { "rules": { "same_day_booking": { "only_slot": "AM" }, "duration": { "allowed_formulas": [ "half_day" ] }, "payment": { "mode": "full", "deposit": { "type": "percent" } }, "cancellation": [ { "as": "refund" } ], "weather_policy": { "as": "refund" } } }, "refunds": [ { "status": "pending", "reason": "customer_cancellation" } ], "next_statuses": [ "draft" ] }, "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ]}Headers
Sezione intitolata “Headers”Versione della risorsa ("<version>"), da reinviare in If-Match.
Richiesta non valida
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Autenticazione assente o non valida
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Permesso negato
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Risorsa inesistente
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Conflitto con lo stato corrente
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Versione non aggiornata (version_conflict, con current_version)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Richiesta valida ma non elaborabile (no_price, policy_violation, email_template_invalid)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Header If-Match mancante (precondition_required)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}Operazione non ancora disponibile (not_implemented)
Errore RFC 9457 (application/problem+json).
object
Slug stabile del tipo di errore. I client devono basarsi su questo
valore, mai sul testo di title o detail.
Secondi da attendere (solo per rate_limited).
object
Versione corrente della risorsa (solo per version_conflict).
Postazioni con allocazioni future (solo per spot_has_future_allocations).
Vincoli violati (solo per policy_violation).
object
Codice stabile (es. lead_time_too_short).
object
Mezze giornate non disponibili (solo per spot_unavailable, pool_exhausted, quota_exceeded).
Mezza giornata non disponibile per una risorsa (spec 7.2), restituita in Problem.conflicts e nelle anteprime.
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Fascia: mattina o pomeriggio.
Stato della prenotazione (spec 10.2).
Cliente già presente con la stessa email o telefono (solo per conflict su createCustomer).
Periodo del soggiorno e data odierna dello stabilimento (solo per booking_outside_period).
object
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Data di calendario YYYY-MM-DD nel fuso dello stabilimento.
Example
{ "type": "bad_request", "conflicts": [ { "slot": "AM", "reason": "spot_unavailable" } ], "current_status": "draft"}
