Sostituisce policy
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/policies/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
payload := strings.NewReader("{ \"season_id\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"name\": \"example\", \"scope\": { \"channels\": [ \"desk\" ], \"zones\": [ \"example\" ], \"packs\": [ \"example\" ], \"rate_periods\": [ \"example\" ] }, \"rules\": { \"min_lead_time\": { \"days\": 1, \"cutoff_time\": \"example\" }, \"max_lead_time_days\": 1, \"same_day_booking\": { \"enabled\": true, \"until\": \"example\", \"only_slot\": \"AM\" }, \"duration\": { \"allowed_formulas\": [ \"half_day\" ], \"min_days\": 1, \"max_days\": 1, \"fixed_start_weekday\": 1 }, \"payment\": { \"mode\": \"full\", \"deposit\": { \"type\": \"percent\", \"value\": 1 }, \"balance_due\": \"example\" }, \"cancellation\": [ { \"until_days_before\": 1, \"refund_percent\": 1, \"as\": \"refund\" } ], \"modification\": { \"allowed_until_days_before\": 1, \"fee\": 1 }, \"weather_policy\": { \"enabled\": true, \"as\": \"refund\" }, \"approval_required\": true, \"max_spots_per_booking\": 1, \"allow_spot_change_during_stay\": true, \"customer_can_release_season_days\": true, \"season_release_credit\": { \"enabled\": true, \"percent\": 1 }, \"credit_validity_days\": 1 }, \"priority\": 1, \"active\": true }")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("cookie", "arenile_session=<arenile_session>") 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/policies/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PUT', headers: { cookie: 'arenile_session=<arenile_session>', 'Content-Type': 'application/json' }, body: '{"season_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","scope":{"channels":["desk"],"zones":["example"],"packs":["example"],"rate_periods":["example"]},"rules":{"min_lead_time":{"days":1,"cutoff_time":"example"},"max_lead_time_days":1,"same_day_booking":{"enabled":true,"until":"example","only_slot":"AM"},"duration":{"allowed_formulas":["half_day"],"min_days":1,"max_days":1,"fixed_start_weekday":1},"payment":{"mode":"full","deposit":{"type":"percent","value":1},"balance_due":"example"},"cancellation":[{"until_days_before":1,"refund_percent":1,"as":"refund"}],"modification":{"allowed_until_days_before":1,"fee":1},"weather_policy":{"enabled":true,"as":"refund"},"approval_required":true,"max_spots_per_booking":1,"allow_spot_change_during_stay":true,"customer_can_release_season_days":true,"season_release_credit":{"enabled":true,"percent":1},"credit_validity_days":1},"priority":1,"active":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/admin/v1/establishments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/policies/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Content-Type: application/json' \ --cookie arenile_session=<arenile_session> \ --data '{ "season_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "scope": { "channels": [ "desk" ], "zones": [ "example" ], "packs": [ "example" ], "rate_periods": [ "example" ] }, "rules": { "min_lead_time": { "days": 1, "cutoff_time": "example" }, "max_lead_time_days": 1, "same_day_booking": { "enabled": true, "until": "example", "only_slot": "AM" }, "duration": { "allowed_formulas": [ "half_day" ], "min_days": 1, "max_days": 1, "fixed_start_weekday": 1 }, "payment": { "mode": "full", "deposit": { "type": "percent", "value": 1 }, "balance_due": "example" }, "cancellation": [ { "until_days_before": 1, "refund_percent": 1, "as": "refund" } ], "modification": { "allowed_until_days_before": 1, "fee": 1 }, "weather_policy": { "enabled": true, "as": "refund" }, "approval_required": true, "max_spots_per_booking": 1, "allow_spot_change_during_stay": true, "customer_can_release_season_days": true, "season_release_credit": { "enabled": true, "percent": 1 }, "credit_validity_days": 1 }, "priority": 1, "active": true }'Sostituzione completa (i campi facoltativi assenti vengono azzerati). If-Match facoltativo ma consigliato.
Authorizations
Sezione intitolata “Authorizations”Parameters
Sezione intitolata “Parameters”Path Parameters
Sezione intitolata “Path Parameters”Header Parameters
Sezione intitolata “Header Parameters”ETag (versione) letto in precedenza: se non coincide la richiesta fallisce con 412 version_conflict. * equivale a “qualsiasi versione”. È accettata anche la forma debole W/"3" prodotta dai proxy che comprimono le risposte (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”object
Ambito della policy; dimensioni vuote = tutto.
object
ID o codici di zona.
ID o codici di pack.
Codici dei periodi tariffari.
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).
Responses
Sezione intitolata “Responses”Policy aggiornato/a
Policy di prenotazione con ambito e priorità (spec 9).
object
Ambito della policy; dimensioni vuote = tutto.
object
ID o codici di zona.
ID o codici di pack.
Codici dei periodi tariffari.
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).
Versione per la concorrenza ottimistica; coincide con l’ETag.
Example
{ "scope": { "channels": [ "desk" ] }, "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" } }}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"}
