{
    "openapi": "3.1.2",
    "info": {
        "title": "API Ophelix",
        "version": "2026-11-01",
        "description": "API d'Ophelix : facturation de l'Assurance Maladie. Voir le guide de démarrage."
    },
    "servers": [
        {
            "url": "https://api.ophelix.fr/v1",
            "description": "Test et production"
        }
    ],
    "security": [
        {
            "http": []
        }
    ],
    "paths": {
        "/requests": {
            "get": {
                "operationId": "public.requests.index",
                "description": "`status` accepte un code (`404`) ou une famille (`4xx`), `route` une route, `key` une clé,\n`object` l'identifiant d'un objet visé par le chemin.",
                "summary": "Lister les requêtes",
                "tags": [
                    "ApiRequests"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "pattern": "^[1-5](\\d{2}|xx)$"
                        }
                    },
                    {
                        "name": "route",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    },
                    {
                        "name": "key",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 120
                        }
                    },
                    {
                        "name": "object",
                        "in": "query",
                        "description": "Les requêtes qui visent cet objet dans leur chemin, `clm_…` par exemple.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[a-z]+_[0-9A-Za-z]+$"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicApiRequestResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/requests/{apiRequest}": {
            "get": {
                "operationId": "public.requests.show",
                "summary": "Lire une requête",
                "tags": [
                    "ApiRequests"
                ],
                "parameters": [
                    {
                        "name": "apiRequest",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicApiRequestResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicApiRequestResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims/{claim}/lines": {
            "post": {
                "operationId": "public.claims.lines.store",
                "description": "Rend la facture retarifée.",
                "summary": "Ajouter une prestation à un brouillon",
                "tags": [
                    "ClaimLines"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicStoreClaimLineRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims/{claim}/lines/{line}": {
            "patch": {
                "operationId": "public.claims.lines.update",
                "description": "Rend la facture retarifée.",
                "summary": "Corriger une prestation d'un brouillon",
                "tags": [
                    "ClaimLines"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "line",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicUpdateClaimLineRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "public.claims.lines.destroy",
                "description": "Rend la facture retarifée.",
                "summary": "Retirer une prestation d'un brouillon",
                "tags": [
                    "ClaimLines"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "line",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/test-helpers/claims": {
            "post": {
                "operationId": "public.test-helpers.claims.store",
                "description": "Lit deux cartes du simulateur et ouvre un brouillon avec une prestation fictive.",
                "summary": "Créer une facture de test",
                "tags": [
                    "ClaimTestHelpers"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicCreateTestClaimRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/test-helpers/claims/{claim}/returns": {
            "post": {
                "operationId": "public.test-helpers.claims.returns",
                "description": "`arl_positive`, `arl_negative`, `payment`, `partial_payment` ou `rejection`.",
                "summary": "Déclencher un retour simulé",
                "tags": [
                    "ClaimTestHelpers"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicApplyTestReturnRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims": {
            "get": {
                "operationId": "public.claims.index",
                "description": "Chaque facture rendue laisse une trace dans le journal d'audit.",
                "summary": "Lister les factures",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/ClaimStatus"
                        }
                    },
                    {
                        "name": "patient",
                        "in": "query",
                        "description": "Les factures d'un patient, `pat_…`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 64
                        }
                    },
                    {
                        "name": "practitioner",
                        "in": "query",
                        "description": "Les factures d'un praticien, `prac_…`.",
                        "schema": {
                            "type": "string",
                            "maxLength": 64
                        }
                    },
                    {
                        "name": "mode",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/ClaimMode"
                        }
                    },
                    {
                        "name": "fund",
                        "in": "query",
                        "description": "Le code de la caisse, lu sur la couverture de la facture.",
                        "schema": {
                            "type": "string",
                            "maxLength": 8
                        }
                    },
                    {
                        "name": "created[gte]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "created[lte]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicClaimResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "public.claims.store",
                "description": "Un brouillon s'enregistre même incomplet. `validate` dit ce qui manque.",
                "summary": "Ouvrir un brouillon de facture",
                "tags": [
                    "Claims"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicStoreClaimRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/claims/{claim}": {
            "get": {
                "operationId": "public.claims.show",
                "summary": "Lire une facture",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "patch": {
                "operationId": "public.claims.update",
                "description": "Change le contexte de facturation et retarife. Seul un brouillon se modifie.",
                "summary": "Modifier un brouillon",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicUpdateClaimRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims/{claim}/validate": {
            "post": {
                "operationId": "public.claims.validate",
                "description": "Rend toutes les règles enfreintes d'un coup, avec la ligne visée, et les alertes à part.\nChaque constat cite l'identifiant de sa règle. Rien ne change.",
                "summary": "Valider une facture à blanc",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicClaimValidationResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimValidationResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims/{claim}/finalize": {
            "post": {
                "operationId": "public.claims.finalize",
                "description": "Un brouillon invalide répond 422 `claim_invalid`, avec les mêmes `violations` que `validate`.",
                "summary": "Passer une facture à prêt",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims/{claim}/secure": {
            "post": {
                "operationId": "public.claims.secure",
                "description": "En mode test, le simulateur signe. Le moteur réel n'est pas encore raccordé : 503.",
                "summary": "Sécuriser une facture",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/claims/{claim}/cancel": {
            "post": {
                "operationId": "public.claims.cancel",
                "description": "Possible jusqu'à la sécurisation. Une facture mise en lot ne s'annule plus.",
                "summary": "Annuler une facture",
                "tags": [
                    "Claims"
                ],
                "parameters": [
                    {
                        "name": "claim",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicClaimResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicClaimResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/coverages/{coverage}": {
            "get": {
                "operationId": "public.coverages.show",
                "summary": "Lire une Coverage",
                "tags": [
                    "Coverages"
                ],
                "parameters": [
                    {
                        "name": "coverage",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicCoverageResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicCoverageResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/coverages": {
            "post": {
                "operationId": "public.coverages.store",
                "description": "Chaque lecture crée une nouvelle Coverage, et le patient s'il est nouveau. Une Coverage ne\nse modifie jamais. `source: manual` saisit les droits en mode dégradé.",
                "summary": "Lire les droits d'un patient",
                "tags": [
                    "Coverages"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicStoreCoverageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`PublicCoverageResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicCoverageResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/events": {
            "get": {
                "operationId": "public.events.index",
                "description": "Du plus récent au plus ancien. `type` accepte un joker : `claim.*`. `object` retient les\névénements d'un objet, `request` ceux d'une requête, `created[gte]` et `created[lte]`\nbornent la date, en secondes depuis l'époque Unix.",
                "summary": "Lister les événements",
                "tags": [
                    "Events"
                ],
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 120
                        }
                    },
                    {
                        "name": "object",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 120
                        }
                    },
                    {
                        "name": "request",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "maxLength": 120
                        }
                    },
                    {
                        "name": "created[gte]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "created[lte]",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicEventResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/events/{event}": {
            "get": {
                "operationId": "public.events.show",
                "summary": "Lire un événement",
                "tags": [
                    "Events"
                ],
                "parameters": [
                    {
                        "name": "event",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicEventResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicEventResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/ping": {
            "get": {
                "operationId": "public.ping",
                "description": "Ne demande aucune clé.",
                "summary": "Vérifier que l'API répond",
                "tags": [
                    "Meta"
                ],
                "responses": {
                    "200": {
                        "description": "`PublicPingResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicPingResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ]
            }
        },
        "/status": {
            "get": {
                "operationId": "public.status",
                "description": "Ne demande aucune clé. L'état se relève au plus toutes les trente secondes.",
                "summary": "Lire l'état de la plateforme",
                "tags": [
                    "Meta"
                ],
                "responses": {
                    "200": {
                        "description": "`PublicStatusResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicStatusResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ]
            }
        },
        "/patients": {
            "get": {
                "operationId": "public.patients.index",
                "description": "Chaque patient rendu laisse une trace dans le journal d'audit.",
                "summary": "Lister les patients",
                "tags": [
                    "Patients"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicPatientResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ]
            }
        },
        "/patients/{patient}": {
            "get": {
                "operationId": "public.patients.show",
                "summary": "Lire un patient",
                "tags": [
                    "Patients"
                ],
                "parameters": [
                    {
                        "name": "patient",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicPatientResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicPatientResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/patients/{patient}/coverages": {
            "get": {
                "operationId": "public.patients.coverages",
                "description": "Du plus récent au plus ancien : la première Coverage est la dernière lecture.",
                "summary": "Lister les droits lus d'un patient",
                "tags": [
                    "Patients"
                ],
                "parameters": [
                    {
                        "name": "patient",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicCoverageResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/practitioners": {
            "get": {
                "operationId": "public.practitioners.index",
                "summary": "Lister les praticiens",
                "tags": [
                    "Practitioners"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/PractitionerStatus"
                        }
                    },
                    {
                        "name": "profession",
                        "in": "query",
                        "description": "La profession, telle que la carte la porte : `medecin`, `infirmier`…",
                        "schema": {
                            "type": "string",
                            "maxLength": 64
                        }
                    },
                    {
                        "name": "fund",
                        "in": "query",
                        "description": "Le code de la caisse : les praticiens qui ont une facture sur cet organisme.",
                        "schema": {
                            "type": "string",
                            "maxLength": 8
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicPractitionerResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "public.practitioners.store",
                "description": "Crée le praticien avec toutes ses situations, ou le remet à jour s'il existe déjà.\nSes situations viennent de la carte et ne se saisissent pas.",
                "summary": "Lire une carte de praticien",
                "tags": [
                    "Practitioners"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicStorePractitionerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`PublicPractitionerResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicPractitionerResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/practitioners/{practitioner}": {
            "get": {
                "operationId": "public.practitioners.show",
                "summary": "Lire un praticien",
                "tags": [
                    "Practitioners"
                ],
                "parameters": [
                    {
                        "name": "practitioner",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicPractitionerResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicPractitionerResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/practitioners/{practitioner}/suspend": {
            "post": {
                "operationId": "public.practitioners.suspend",
                "description": "Une relecture de sa carte ne lève pas la suspension.",
                "summary": "Suspendre un praticien",
                "tags": [
                    "Practitioners"
                ],
                "parameters": [
                    {
                        "name": "practitioner",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicPractitionerResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicPractitionerResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/practitioners/{practitioner}/reactivate": {
            "post": {
                "operationId": "public.practitioners.reactivate",
                "summary": "Lever une suspension",
                "tags": [
                    "Practitioners"
                ],
                "parameters": [
                    {
                        "name": "practitioner",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicPractitionerResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicPractitionerResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/test-helpers/scenarios": {
            "get": {
                "operationId": "public.test-helpers.scenarios",
                "description": "Cartes Vitale, cartes CPS et retours simulés, avec leur identifiant.",
                "summary": "Lister les scénarios de test",
                "tags": [
                    "TestHelpers"
                ],
                "responses": {
                    "200": {
                        "description": "`PublicTestScenariosResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicTestScenariosResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ]
            }
        },
        "/test-helpers/card-reads": {
            "post": {
                "operationId": "public.test-helpers.card-reads",
                "summary": "Simuler la lecture d'une carte",
                "tags": [
                    "TestHelpers"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicReadTestCardRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicCardReadResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicCardReadResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/webhook-endpoints": {
            "get": {
                "operationId": "public.webhook-endpoints.index",
                "summary": "Lister les points de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicWebhookEndpointResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ]
            },
            "post": {
                "operationId": "public.webhook-endpoints.store",
                "description": "Le secret de signature n'apparaît que dans cette réponse, sous `secret`.",
                "summary": "Créer un point de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicStoreWebhookEndpointRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "`PublicWebhookEndpointResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWebhookEndpointResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/webhook-endpoints/{webhookEndpoint}": {
            "get": {
                "operationId": "public.webhook-endpoints.show",
                "summary": "Lire un point de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWebhookEndpointResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWebhookEndpointResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "patch": {
                "operationId": "public.webhook-endpoints.update",
                "description": "Passer `status` à `enabled` réactive un point désactivé après trois jours d'échecs.",
                "summary": "Modifier un point de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicUpdateWebhookEndpointRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicWebhookEndpointResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWebhookEndpointResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "public.webhook-endpoints.destroy",
                "summary": "Supprimer un point de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicDeletedResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicDeletedResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/webhook-endpoints/{webhookEndpoint}/deliveries": {
            "get": {
                "operationId": "public.webhook-endpoints.deliveries",
                "summary": "Lister les livraisons d'un point de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicWebhookDeliveryResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/webhook-endpoints/{webhookEndpoint}/rotate-secret": {
            "post": {
                "operationId": "public.webhook-endpoints.rotate-secret",
                "description": "L'ancien secret cesse de signer aussitôt. Le nouveau n'apparaît que dans cette réponse.",
                "summary": "Renouveler le secret de signature",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWebhookEndpointResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWebhookEndpointResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/webhook-endpoints/{webhookEndpoint}/test": {
            "post": {
                "operationId": "public.webhook-endpoints.test",
                "description": "Produit un événement `webhook_endpoint.test`, livré à ce seul point.",
                "summary": "Envoyer un événement de test",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWebhookDeliveryResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWebhookDeliveryResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/webhook-endpoints/{webhookEndpoint}/resend": {
            "post": {
                "operationId": "public.webhook-endpoints.resend",
                "summary": "Renvoyer un événement à un point de terminaison",
                "tags": [
                    "WebhookEndpoints"
                ],
                "parameters": [
                    {
                        "name": "webhookEndpoint",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicResendWebhookEventRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicWebhookDeliveryResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWebhookDeliveryResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/workstation-pairing-codes/{code}": {
            "get": {
                "operationId": "public.workstation-pairing-codes.show",
                "summary": "Lire un code d'appairage",
                "tags": [
                    "WorkstationPairingCodes"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWorkstationPairingCodeResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationPairingCodeResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/workstation-pairing-codes": {
            "post": {
                "operationId": "public.workstation-pairing-codes.store",
                "description": "Valable dix minutes et une seule fois, dans le mode de la requête. `code` ne se rend qu'ici.\nCette route ignore `Idempotency-Key` : un rejeu devrait garder le code en clair.",
                "summary": "Créer un code d'appairage",
                "tags": [
                    "WorkstationPairingCodes"
                ],
                "responses": {
                    "201": {
                        "description": "`PublicWorkstationPairingCodeResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationPairingCodeResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ]
            }
        },
        "/workstation-pairing-codes/{code}/confirm-transfer": {
            "post": {
                "operationId": "public.workstation-pairing-codes.confirm-transfer",
                "description": "Quand `stage` vaut `already_paired`. Le poste quitte son organisation au moment où l'agent\ntermine l'appairage.",
                "summary": "Confirmer le rattachement d'un poste déjà appairé",
                "tags": [
                    "WorkstationPairingCodes"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWorkstationPairingCodeResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationPairingCodeResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/workstation-pairing-codes/{code}/cancel": {
            "post": {
                "operationId": "public.workstation-pairing-codes.cancel",
                "summary": "Annuler un code d'appairage",
                "tags": [
                    "WorkstationPairingCodes"
                ],
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWorkstationPairingCodeResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationPairingCodeResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/workstations": {
            "get": {
                "operationId": "public.workstations.index",
                "summary": "Lister les postes",
                "tags": [
                    "Workstations"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "list"
                                        },
                                        "url": {
                                            "type": "string"
                                        },
                                        "has_more": {
                                            "type": "boolean"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PublicWorkstationResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "object",
                                        "url",
                                        "has_more",
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ]
            }
        },
        "/workstations/{workstation}": {
            "get": {
                "operationId": "public.workstations.show",
                "summary": "Lire un poste",
                "tags": [
                    "Workstations"
                ],
                "parameters": [
                    {
                        "name": "workstation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWorkstationResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "patch": {
                "operationId": "public.workstations.update",
                "summary": "Renommer un poste",
                "tags": [
                    "Workstations"
                ],
                "parameters": [
                    {
                        "name": "workstation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PublicUpdateWorkstationRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "`PublicWorkstationResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/workstations/{workstation}/revoke": {
            "post": {
                "operationId": "public.workstations.revoke",
                "description": "Son jeton cesse à la requête suivante, sans délai de grâce.",
                "summary": "Révoquer un poste",
                "tags": [
                    "Workstations"
                ],
                "parameters": [
                    {
                        "name": "workstation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Ophelix-Version",
                        "in": "header",
                        "description": "Version de l'API. Par défaut, celle de l'organisation.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2026-11-01"
                            ]
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "description": "Rend le rejeu de cette écriture sûr pendant 24 heures.",
                        "schema": {
                            "type": "string",
                            "maxLength": 255
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "`PublicWorkstationResource`",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PublicWorkstationResource"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Erreur",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "error"
                                    ],
                                    "properties": {
                                        "error": {
                                            "$ref": "#/components/schemas/Error"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "http": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "sk_test_… / sk_live_…"
            }
        },
        "schemas": {
            "AgentStatus": {
                "type": "string",
                "description": "La version d'un agent par rapport à ce que publie Ophelix.\n",
                "enum": [
                    "up_to_date",
                    "update_available",
                    "outdated"
                ],
                "title": "AgentStatus"
            },
            "ClaimInsuranceNature": {
                "type": "string",
                "description": "La nature d'assurance d'une facture.\n",
                "enum": [
                    "sickness",
                    "maternity",
                    "work_accident",
                    "free_medical_care"
                ],
                "title": "ClaimInsuranceNature"
            },
            "ClaimKind": {
                "type": "string",
                "enum": [
                    "fse",
                    "dre"
                ],
                "title": "ClaimKind"
            },
            "ClaimLineNomenclature": {
                "type": "string",
                "enum": [
                    "ngap",
                    "ccam",
                    "lpp",
                    "biology",
                    "medication"
                ],
                "title": "ClaimLineNomenclature"
            },
            "ClaimMode": {
                "type": "string",
                "enum": [
                    "secured",
                    "degraded",
                    "sesam_sans_vitale"
                ],
                "title": "ClaimMode"
            },
            "ClaimStatus": {
                "type": "string",
                "enum": [
                    "draft",
                    "ready",
                    "secured",
                    "batched",
                    "transmitted",
                    "acknowledged",
                    "paid",
                    "partially_paid",
                    "adjusted",
                    "rejected",
                    "flagged",
                    "canceled"
                ],
                "title": "ClaimStatus"
            },
            "CoverageRights": {
                "type": "string",
                "enum": [
                    "open",
                    "closed"
                ],
                "title": "CoverageRights"
            },
            "CoverageSource": {
                "type": "string",
                "description": "Le support d'où viennent des droits : la facture le cite.\n",
                "enum": [
                    "vitale_card",
                    "vitale_app",
                    "adri",
                    "manual"
                ],
                "title": "CoverageSource"
            },
            "Error": {
                "type": "object",
                "title": "Error",
                "required": [
                    "type",
                    "code",
                    "message",
                    "doc_url",
                    "request_id"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "invalid_request_error",
                            "authentication_error",
                            "permission_error",
                            "rate_limit_error",
                            "idempotency_error",
                            "api_error"
                        ]
                    },
                    "code": {
                        "type": "string",
                        "enum": [
                            "parameter_invalid",
                            "parameter_missing",
                            "parameters_exclusive",
                            "resource_missing",
                            "route_not_found",
                            "method_not_allowed",
                            "api_version_invalid",
                            "conflict",
                            "authentication_required",
                            "session_expired",
                            "invalid_api_key",
                            "api_key_expired",
                            "permission_denied",
                            "insufficient_scope",
                            "two_factor_required",
                            "email_not_verified",
                            "live_not_activated",
                            "rate_limit_exceeded",
                            "idempotency_key_reused",
                            "idempotency_key_in_progress",
                            "test_mode_only",
                            "engine_unavailable",
                            "card_unreadable",
                            "card_blocked",
                            "token_invalid",
                            "invalid_credentials",
                            "pairing_code_invalid",
                            "pairing_transfer_required",
                            "agent_outdated",
                            "invalid_workstation_token",
                            "workstation_revoked",
                            "workstation_ca_unavailable",
                            "claim_invalid",
                            "api_error"
                        ]
                    },
                    "message": {
                        "type": "string"
                    },
                    "param": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Le paramètre fautif."
                    },
                    "doc_url": {
                        "type": "string"
                    },
                    "request_id": {
                        "type": "string"
                    },
                    "errors": {
                        "type": "array",
                        "description": "Tous les champs fautifs, sur une erreur de validation.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "param": {
                                    "type": "string"
                                },
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            },
            "PairingCodeStatus": {
                "type": "string",
                "enum": [
                    "pending",
                    "paired",
                    "expired",
                    "cancelled"
                ],
                "title": "PairingCodeStatus"
            },
            "PairingStage": {
                "type": "string",
                "description": "Où en est un code encore valable, du point de vue de qui attend le poste.\n",
                "enum": [
                    "waiting",
                    "connecting",
                    "stalled",
                    "agent_outdated",
                    "already_paired"
                ],
                "title": "PairingStage"
            },
            "PatientQuality": {
                "type": "string",
                "description": "Le lien du bénéficiaire avec l'assuré qui lui ouvre droit. Le moteur traduit la qualité lue sur la carte vers ces valeurs.\n",
                "enum": [
                    "insured",
                    "spouse",
                    "child",
                    "other"
                ],
                "title": "PatientQuality"
            },
            "PracticeMode": {
                "type": "string",
                "description": "À quel titre un praticien facture sous une situation. Le moteur traduit les codes de la carte vers ces valeurs.\n",
                "enum": [
                    "holder",
                    "replacement",
                    "health_center_employee"
                ],
                "title": "PracticeMode"
            },
            "PractitionerIdentifierType": {
                "type": "string",
                "enum": [
                    "rpps",
                    "adeli"
                ],
                "title": "PractitionerIdentifierType"
            },
            "PractitionerStatus": {
                "type": "string",
                "description": "Où en est un praticien : à compléter tant que sa carte ne donne aucune situation facturable, prêt ensuite, suspendu quand l'organisation arrête sa facturation.\n",
                "enum": [
                    "incomplete",
                    "ready",
                    "suspended"
                ],
                "title": "PractitionerStatus"
            },
            "PublicApiRequestResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "request"
                    },
                    "method": {
                        "type": "string"
                    },
                    "path": {
                        "type": "string"
                    },
                    "route": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "integer"
                    },
                    "duration_ms": {
                        "type": "integer"
                    },
                    "api_version": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "api_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "idempotency_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "request_body": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {}
                    },
                    "response_body": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {}
                    },
                    "created": {
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "object",
                    "method",
                    "path",
                    "route",
                    "status",
                    "duration_ms",
                    "api_version",
                    "api_key",
                    "idempotency_key",
                    "livemode",
                    "request_body",
                    "response_body",
                    "created"
                ],
                "title": "PublicApiRequestResource"
            },
            "PublicApplyTestReturnRequest": {
                "type": "object",
                "properties": {
                    "scenario": {
                        "type": "string",
                        "description": "Un retour de `/v1/test-helpers/scenarios`.",
                        "enum": [
                            "arl_positive",
                            "arl_negative",
                            "payment",
                            "partial_payment",
                            "rejection"
                        ]
                    }
                },
                "required": [
                    "scenario"
                ],
                "title": "PublicApplyTestReturnRequest"
            },
            "PublicCardReadResource": {
                "type": "object",
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "simulated_card_read"
                    },
                    "card_type": {},
                    "engine": {
                        "type": "string"
                    },
                    "card": {
                        "type": "object",
                        "additionalProperties": {}
                    }
                },
                "required": [
                    "object",
                    "card_type",
                    "engine",
                    "card"
                ],
                "title": "PublicCardReadResource"
            },
            "PublicClaimLineResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "claim_line"
                    },
                    "nomenclature": {
                        "$ref": "#/components/schemas/ClaimLineNomenclature"
                    },
                    "code": {
                        "type": "string"
                    },
                    "service_date": {
                        "type": "string"
                    },
                    "quantity": {
                        "type": "integer"
                    },
                    "coefficient": {
                        "type": "string",
                        "description": "Le coefficient de l'acte, en chaîne décimale."
                    },
                    "modifiers": {
                        "type": "array",
                        "description": "Les majorations et modificateurs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "prescriber": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Numéro, clé, spécialité et date de prescription.",
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "unit_price_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Le prix unitaire demandé, en centimes. Null : le tarif s'applique."
                    },
                    "base_unit_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Le tarif à la date des soins, en centimes. Null : aucun tarif connu."
                    },
                    "amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Le montant facturé, en centimes. Null : la ligne n'a pas de prix."
                    },
                    "base_amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "La base de remboursement, en centimes."
                    },
                    "livemode": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "object",
                    "nomenclature",
                    "code",
                    "service_date",
                    "quantity",
                    "coefficient",
                    "modifiers",
                    "prescriber",
                    "unit_price_cents",
                    "base_unit_cents",
                    "amount_cents",
                    "base_amount_cents",
                    "livemode"
                ],
                "title": "PublicClaimLineResource"
            },
            "PublicClaimResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "claim"
                    },
                    "status": {
                        "$ref": "#/components/schemas/ClaimStatus"
                    },
                    "kind": {
                        "$ref": "#/components/schemas/ClaimKind"
                    },
                    "mode": {
                        "$ref": "#/components/schemas/ClaimMode"
                    },
                    "practitioner": {
                        "description": "L'identifiant du praticien, ou l'objet avec expand[]=practitioner.",
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "object",
                                "additionalProperties": {}
                            }
                        ]
                    },
                    "practice_situation": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "patient": {
                        "description": "L'identifiant du patient, ou l'objet avec expand[]=patient.",
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "object",
                                "additionalProperties": {}
                            }
                        ]
                    },
                    "coverage": {
                        "description": "L'identifiant de la lecture de droits, ou l'objet avec expand[]=coverage.",
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "object",
                                "additionalProperties": {}
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "insurance_nature": {
                        "$ref": "#/components/schemas/ClaimInsuranceNature"
                    },
                    "third_party_amo": {
                        "type": "boolean"
                    },
                    "third_party_amc": {
                        "type": "boolean"
                    },
                    "context": {
                        "type": "object",
                        "description": "Les dates et numéros que la nature d'assurance demande.",
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "lines": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PublicClaimLineResource"
                        }
                    },
                    "amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Le total facturé, en centimes. Null tant qu'une ligne n'a pas de prix."
                    },
                    "base_amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "La base de remboursement totale, en centimes."
                    },
                    "amo_amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "La part obligatoire, en centimes. En mode test, elle vient d'un taux fictif."
                    },
                    "amc_amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "La part complémentaire, en centimes."
                    },
                    "patient_amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "La part de l'assuré, en centimes."
                    },
                    "paid_amount_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Ce qui a été réglé par les organismes, en centimes."
                    },
                    "rejection_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "referential_versions": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Référentiel => version retenue pour le calcul.",
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "ready_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "secured_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "transmitted_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "acknowledged_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "settled_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "canceled_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "updated": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "status",
                    "kind",
                    "mode",
                    "practitioner",
                    "practice_situation",
                    "patient",
                    "coverage",
                    "insurance_nature",
                    "third_party_amo",
                    "third_party_amc",
                    "context",
                    "lines",
                    "amount_cents",
                    "base_amount_cents",
                    "amo_amount_cents",
                    "amc_amount_cents",
                    "patient_amount_cents",
                    "paid_amount_cents",
                    "rejection_code",
                    "referential_versions",
                    "ready_at",
                    "secured_at",
                    "transmitted_at",
                    "acknowledged_at",
                    "settled_at",
                    "canceled_at",
                    "livemode",
                    "created",
                    "updated"
                ],
                "title": "PublicClaimResource"
            },
            "PublicClaimValidationResource": {
                "type": "object",
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "claim_validation"
                    },
                    "claim": {
                        "type": "string"
                    },
                    "valid": {
                        "type": "boolean"
                    },
                    "violations": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "rule": {
                                    "type": "string"
                                },
                                "message": {
                                    "type": "string"
                                },
                                "param": {
                                    "type": "string"
                                },
                                "line": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "rule",
                                "message",
                                "param",
                                "line"
                            ]
                        }
                    },
                    "warnings": {
                        "type": "array",
                        "description": "Ce qui n'empêche pas la facture de partir, mais que le praticien doit savoir.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "rule": {
                                    "type": "string"
                                },
                                "message": {
                                    "type": "string"
                                },
                                "param": {
                                    "type": "string"
                                },
                                "line": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            },
                            "required": [
                                "rule",
                                "message",
                                "param",
                                "line"
                            ]
                        }
                    }
                },
                "required": [
                    "object",
                    "claim",
                    "valid",
                    "violations",
                    "warnings"
                ],
                "title": "PublicClaimValidationResource"
            },
            "PublicCoverageResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "coverage"
                    },
                    "patient": {
                        "description": "L'identifiant du patient, ou l'objet avec expand[]=patient.",
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "object",
                                "additionalProperties": {}
                            }
                        ]
                    },
                    "source": {
                        "$ref": "#/components/schemas/CoverageSource"
                    },
                    "rights": {
                        "$ref": "#/components/schemas/CoverageRights"
                    },
                    "regime_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "fund_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "center_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "exemptions": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "complementary": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "additionalProperties": {}
                    },
                    "read_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "valid_until": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "patient",
                    "source",
                    "rights",
                    "regime_code",
                    "fund_code",
                    "center_code",
                    "exemptions",
                    "complementary",
                    "read_at",
                    "valid_until",
                    "livemode",
                    "created"
                ],
                "title": "PublicCoverageResource"
            },
            "PublicCreateTestClaimRequest": {
                "type": "object",
                "properties": {
                    "practitioner_card": {
                        "type": "string",
                        "description": "Le scénario de carte CPS. Par défaut, `cps_doctor`.",
                        "maxLength": 120
                    },
                    "patient_card": {
                        "type": "string",
                        "description": "Le scénario de carte Vitale. Par défaut, `vitale_ok`.",
                        "maxLength": 120
                    }
                },
                "title": "PublicCreateTestClaimRequest"
            },
            "PublicDeletedResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "webhook_endpoint"
                    },
                    "deleted": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "object",
                    "deleted"
                ],
                "title": "PublicDeletedResource"
            },
            "PublicEventResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "event"
                    },
                    "type": {
                        "type": "string"
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "created": {
                        "type": "integer"
                    },
                    "api_version": {
                        "type": "string"
                    },
                    "request": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "data": {
                        "type": "object",
                        "properties": {
                            "object": {
                                "type": "object",
                                "additionalProperties": {}
                            },
                            "previous_attributes": {
                                "type": "object",
                                "additionalProperties": {}
                            }
                        },
                        "required": [
                            "object",
                            "previous_attributes"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "type",
                    "livemode",
                    "created",
                    "api_version",
                    "request",
                    "data"
                ],
                "title": "PublicEventResource"
            },
            "PublicPatientResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "patient"
                    },
                    "first_name": {
                        "type": "string"
                    },
                    "last_name": {
                        "type": "string"
                    },
                    "birth_date": {
                        "type": "string"
                    },
                    "rank": {
                        "type": "integer",
                        "description": "Le rang du bénéficiaire sur la carte."
                    },
                    "quality": {
                        "$ref": "#/components/schemas/PatientQuality"
                    },
                    "insured_first_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "L'assuré qui ouvre droit, quand ce n'est pas le patient lui-même."
                    },
                    "insured_last_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "nir_last4": {
                        "type": "string"
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "first_name",
                    "last_name",
                    "birth_date",
                    "rank",
                    "quality",
                    "insured_first_name",
                    "insured_last_name",
                    "nir_last4",
                    "livemode",
                    "created"
                ],
                "title": "PublicPatientResource"
            },
            "PublicPingResource": {
                "type": "object",
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "ping"
                    },
                    "name": {
                        "type": "string"
                    },
                    "api_version": {
                        "type": "string",
                        "const": "v1"
                    },
                    "time": {
                        "type": "string"
                    }
                },
                "required": [
                    "object",
                    "name",
                    "api_version",
                    "time"
                ],
                "title": "PublicPingResource"
            },
            "PublicPracticeSituationResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "practice_situation"
                    },
                    "number": {
                        "type": "integer",
                        "description": "Le numéro logique de la situation sur la carte."
                    },
                    "practice_mode": {
                        "$ref": "#/components/schemas/PracticeMode"
                    },
                    "exercise_mode_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "exercise_status_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "activity_sector_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "structure_identifier_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "structure_identifier": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "structure_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "billing_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "replacement_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "replacement_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "convention_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "specialty_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "price_zone_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "ik_zone_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "approval_codes": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "can_sign_invoice": {
                        "type": "boolean"
                    },
                    "can_sign_batch": {
                        "type": "boolean"
                    },
                    "settings": {
                        "type": "object",
                        "description": "Ce que la carte ne porte pas, renseigné par le praticien.",
                        "additionalProperties": {}
                    },
                    "billable": {
                        "type": "boolean",
                        "description": "Vrai si une facture peut partir sous cette situation."
                    },
                    "withdrawn_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "number",
                    "practice_mode",
                    "exercise_mode_code",
                    "exercise_status_code",
                    "activity_sector_code",
                    "structure_identifier_type",
                    "structure_identifier",
                    "structure_name",
                    "billing_number",
                    "billing_key",
                    "replacement_number",
                    "replacement_key",
                    "convention_code",
                    "specialty_code",
                    "price_zone_code",
                    "ik_zone_code",
                    "approval_codes",
                    "can_sign_invoice",
                    "can_sign_batch",
                    "settings",
                    "billable",
                    "withdrawn_at",
                    "livemode",
                    "created"
                ],
                "title": "PublicPracticeSituationResource"
            },
            "PublicPractitionerResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "practitioner"
                    },
                    "identifier_type": {
                        "$ref": "#/components/schemas/PractitionerIdentifierType"
                    },
                    "identifier": {
                        "type": "string"
                    },
                    "card_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "first_name": {
                        "type": "string"
                    },
                    "last_name": {
                        "type": "string"
                    },
                    "profession": {
                        "type": "string"
                    },
                    "specialty_code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "La spécialité de sa première situation. Chaque situation porte la sienne."
                    },
                    "convention_code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "La convention de sa première situation. Chaque situation porte la sienne."
                    },
                    "status": {
                        "$ref": "#/components/schemas/PractitionerStatus"
                    },
                    "situations": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PublicPracticeSituationResource"
                        }
                    },
                    "onboarded_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "last_transmitted_at": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "La dernière facture transmise. Null tant qu'aucune n'est partie."
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "identifier_type",
                    "identifier",
                    "card_type",
                    "first_name",
                    "last_name",
                    "profession",
                    "specialty_code",
                    "convention_code",
                    "status",
                    "situations",
                    "onboarded_at",
                    "last_transmitted_at",
                    "livemode",
                    "created"
                ],
                "title": "PublicPractitionerResource"
            },
            "PublicReadTestCardRequest": {
                "type": "object",
                "properties": {
                    "card_type": {
                        "type": "string",
                        "enum": [
                            "vitale",
                            "cps"
                        ]
                    },
                    "scenario": {
                        "type": "string"
                    }
                },
                "required": [
                    "card_type",
                    "scenario"
                ],
                "title": "PublicReadTestCardRequest"
            },
            "PublicResendWebhookEventRequest": {
                "type": "object",
                "properties": {
                    "event": {
                        "type": "string"
                    }
                },
                "required": [
                    "event"
                ],
                "title": "PublicResendWebhookEventRequest"
            },
            "PublicStatusResource": {
                "type": "object",
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "status"
                    },
                    "status": {
                        "type": "string",
                        "description": "`operational`, `degraded` ou `down`."
                    },
                    "components": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "status": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "status"
                            ]
                        }
                    },
                    "checked_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "object",
                    "status",
                    "components",
                    "checked_at"
                ],
                "title": "PublicStatusResource"
            },
            "PublicStoreClaimLineRequest": {
                "type": "object",
                "properties": {
                    "nomenclature": {
                        "$ref": "#/components/schemas/ClaimLineNomenclature"
                    },
                    "code": {
                        "type": "string",
                        "maxLength": 16
                    },
                    "service_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "quantity": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 999
                    },
                    "coefficient": {
                        "type": "number",
                        "minimum": 0.01,
                        "maximum": 9999.99
                    },
                    "modifiers": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "maxLength": 4
                        },
                        "maxItems": 8
                    },
                    "unit_price_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 0,
                        "maximum": 100000000
                    },
                    "prescriber": {
                        "type": "object",
                        "properties": {
                            "identifier": {
                                "type": "string",
                                "maxLength": 16
                            },
                            "key": {
                                "type": "string",
                                "maxLength": 2
                            },
                            "specialty_code": {
                                "type": "string",
                                "maxLength": 4
                            },
                            "prescribed_on": {
                                "type": "string",
                                "format": "date"
                            }
                        }
                    }
                },
                "required": [
                    "nomenclature",
                    "code",
                    "service_date"
                ],
                "title": "PublicStoreClaimLineRequest"
            },
            "PublicStoreClaimRequest": {
                "type": "object",
                "properties": {
                    "practitioner": {
                        "type": "string",
                        "description": "Le praticien qui facture, `prac_…`.",
                        "maxLength": 64
                    },
                    "patient": {
                        "type": "string",
                        "description": "Le patient, `pat_…`.",
                        "maxLength": 64
                    },
                    "kind": {
                        "$ref": "#/components/schemas/ClaimKind"
                    },
                    "mode": {
                        "$ref": "#/components/schemas/ClaimMode"
                    },
                    "insurance_nature": {
                        "$ref": "#/components/schemas/ClaimInsuranceNature"
                    },
                    "third_party_amo": {
                        "type": "boolean"
                    },
                    "third_party_amc": {
                        "type": "boolean"
                    },
                    "coverage": {
                        "type": "string",
                        "maxLength": 64
                    },
                    "practice_situation": {
                        "type": "string",
                        "maxLength": 64
                    },
                    "context": {
                        "type": "object",
                        "properties": {
                            "maternity_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "work_accident_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "work_accident_number": {
                                "type": "string",
                                "maxLength": 16
                            },
                            "common_law_accident": {
                                "type": "boolean"
                            },
                            "common_law_accident_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "care_pathway": {
                                "type": "string",
                                "enum": [
                                    "excluded",
                                    "emergency",
                                    "treating_doctor",
                                    "new_treating_doctor",
                                    "substitute",
                                    "recent_generalist",
                                    "underserved_area",
                                    "away_from_home",
                                    "direct_access",
                                    "outside_direct_access",
                                    "referred_by_treating",
                                    "referred_by_other",
                                    "not_respected"
                                ]
                            },
                            "treating_doctor_declared": {
                                "type": "string",
                                "enum": [
                                    "yes",
                                    "no",
                                    "unknown"
                                ]
                            },
                            "referring_doctor_last_name": {
                                "type": "string",
                                "maxLength": 64
                            },
                            "referring_doctor_first_name": {
                                "type": "string",
                                "maxLength": 64
                            }
                        }
                    },
                    "lines": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "nomenclature": {
                                    "$ref": "#/components/schemas/ClaimLineNomenclature"
                                },
                                "code": {
                                    "type": "string",
                                    "maxLength": 16
                                },
                                "service_date": {
                                    "type": "string",
                                    "format": "date"
                                },
                                "quantity": {
                                    "type": "integer",
                                    "minimum": 1,
                                    "maximum": 999
                                },
                                "coefficient": {
                                    "type": "number",
                                    "minimum": 0.01,
                                    "maximum": 9999.99
                                },
                                "modifiers": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "maxLength": 4
                                    },
                                    "maxItems": 8
                                },
                                "unit_price_cents": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ],
                                    "minimum": 0,
                                    "maximum": 100000000
                                },
                                "prescriber": {
                                    "type": "object",
                                    "properties": {
                                        "identifier": {
                                            "type": "string",
                                            "maxLength": 16
                                        },
                                        "key": {
                                            "type": "string",
                                            "maxLength": 2
                                        },
                                        "specialty_code": {
                                            "type": "string",
                                            "maxLength": 4
                                        },
                                        "prescribed_on": {
                                            "type": "string",
                                            "format": "date"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "nomenclature",
                                "code",
                                "service_date"
                            ]
                        },
                        "maxItems": 100
                    }
                },
                "required": [
                    "practitioner",
                    "patient"
                ],
                "title": "PublicStoreClaimRequest"
            },
            "PublicStoreCoverageRequest": {
                "type": "object",
                "properties": {
                    "source": {
                        "$ref": "#/components/schemas/CoverageSource"
                    },
                    "card": {
                        "type": "string",
                        "description": "Le support à lire. En mode test, un scénario de `/v1/test-helpers/scenarios`.",
                        "maxLength": 120
                    },
                    "patient": {
                        "type": "string",
                        "description": "Le mode dégradé : un patient connu, ou un bénéficiaire saisi.",
                        "maxLength": 64
                    },
                    "beneficiary": {
                        "type": "object",
                        "properties": {
                            "nir": {
                                "type": "string",
                                "pattern": "^[1-9]\\d{4}(\\d{2}|2[AB])\\d{8}$"
                            },
                            "first_name": {
                                "type": "string",
                                "maxLength": 120
                            },
                            "last_name": {
                                "type": "string",
                                "maxLength": 120
                            },
                            "birth_date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                            },
                            "rank": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 99
                            },
                            "quality": {
                                "$ref": "#/components/schemas/PatientQuality"
                            },
                            "insured_first_name": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 120
                            },
                            "insured_last_name": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "maxLength": 120
                            }
                        }
                    },
                    "rights": {
                        "$ref": "#/components/schemas/CoverageRights"
                    },
                    "regime_code": {
                        "type": "string",
                        "maxLength": 8
                    },
                    "fund_code": {
                        "type": "string",
                        "maxLength": 8
                    },
                    "center_code": {
                        "type": "string",
                        "maxLength": 8
                    },
                    "exemptions": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "maxLength": 32
                        }
                    },
                    "complementary": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "valid_until": {
                        "type": "string",
                        "format": "date"
                    }
                },
                "required": [
                    "source"
                ],
                "title": "PublicStoreCoverageRequest"
            },
            "PublicStorePractitionerRequest": {
                "type": "object",
                "properties": {
                    "card": {
                        "type": "string",
                        "description": "La carte à lire. En mode test, un scénario de `/v1/test-helpers/scenarios`.",
                        "maxLength": 120
                    }
                },
                "required": [
                    "card"
                ],
                "title": "PublicStorePractitionerRequest"
            },
            "PublicStoreWebhookEndpointRequest": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "maxLength": 2048
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "enabled_events": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "minItems": 1
                    },
                    "status": {
                        "$ref": "#/components/schemas/WebhookEndpointStatus"
                    }
                },
                "required": [
                    "url",
                    "enabled_events"
                ],
                "title": "PublicStoreWebhookEndpointRequest"
            },
            "PublicTestScenariosResource": {
                "type": "object",
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "test_scenarios"
                    },
                    "vitale_cards": {
                        "type": "array",
                        "items": {}
                    },
                    "cps_cards": {
                        "type": "array",
                        "items": {}
                    },
                    "returns": {
                        "type": "array",
                        "items": {}
                    }
                },
                "required": [
                    "object",
                    "vitale_cards",
                    "cps_cards",
                    "returns"
                ],
                "title": "PublicTestScenariosResource"
            },
            "PublicUpdateClaimLineRequest": {
                "type": "object",
                "properties": {
                    "nomenclature": {
                        "$ref": "#/components/schemas/ClaimLineNomenclature"
                    },
                    "code": {
                        "type": "string",
                        "maxLength": 16
                    },
                    "service_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "quantity": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 999
                    },
                    "coefficient": {
                        "type": "number",
                        "minimum": 0.01,
                        "maximum": 9999.99
                    },
                    "modifiers": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "maxLength": 4
                        },
                        "maxItems": 8
                    },
                    "unit_price_cents": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 0,
                        "maximum": 100000000
                    },
                    "prescriber": {
                        "type": "object",
                        "properties": {
                            "identifier": {
                                "type": "string",
                                "maxLength": 16
                            },
                            "key": {
                                "type": "string",
                                "maxLength": 2
                            },
                            "specialty_code": {
                                "type": "string",
                                "maxLength": 4
                            },
                            "prescribed_on": {
                                "type": "string",
                                "format": "date"
                            }
                        }
                    }
                },
                "title": "PublicUpdateClaimLineRequest"
            },
            "PublicUpdateClaimRequest": {
                "type": "object",
                "properties": {
                    "kind": {
                        "$ref": "#/components/schemas/ClaimKind"
                    },
                    "mode": {
                        "$ref": "#/components/schemas/ClaimMode"
                    },
                    "insurance_nature": {
                        "$ref": "#/components/schemas/ClaimInsuranceNature"
                    },
                    "third_party_amo": {
                        "type": "boolean"
                    },
                    "third_party_amc": {
                        "type": "boolean"
                    },
                    "coverage": {
                        "type": "string",
                        "maxLength": 64
                    },
                    "practice_situation": {
                        "type": "string",
                        "maxLength": 64
                    },
                    "context": {
                        "type": "object",
                        "properties": {
                            "maternity_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "work_accident_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "work_accident_number": {
                                "type": "string",
                                "maxLength": 16
                            },
                            "common_law_accident": {
                                "type": "boolean"
                            },
                            "common_law_accident_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "care_pathway": {
                                "type": "string",
                                "enum": [
                                    "excluded",
                                    "emergency",
                                    "treating_doctor",
                                    "new_treating_doctor",
                                    "substitute",
                                    "recent_generalist",
                                    "underserved_area",
                                    "away_from_home",
                                    "direct_access",
                                    "outside_direct_access",
                                    "referred_by_treating",
                                    "referred_by_other",
                                    "not_respected"
                                ]
                            },
                            "treating_doctor_declared": {
                                "type": "string",
                                "enum": [
                                    "yes",
                                    "no",
                                    "unknown"
                                ]
                            },
                            "referring_doctor_last_name": {
                                "type": "string",
                                "maxLength": 64
                            },
                            "referring_doctor_first_name": {
                                "type": "string",
                                "maxLength": 64
                            }
                        }
                    }
                },
                "title": "PublicUpdateClaimRequest"
            },
            "PublicUpdateWebhookEndpointRequest": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "maxLength": 2048
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "enabled_events": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "minItems": 1
                    },
                    "status": {
                        "$ref": "#/components/schemas/WebhookEndpointStatus"
                    }
                },
                "title": "PublicUpdateWebhookEndpointRequest"
            },
            "PublicUpdateWorkstationRequest": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Le nom affiché du poste.",
                        "maxLength": 120
                    }
                },
                "required": [
                    "name"
                ],
                "title": "PublicUpdateWorkstationRequest"
            },
            "PublicWebhookDeliveryResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "webhook_delivery"
                    },
                    "status": {
                        "$ref": "#/components/schemas/WebhookDeliveryStatus"
                    },
                    "endpoint": {
                        "type": "string"
                    },
                    "event": {
                        "type": "string"
                    },
                    "event_type": {
                        "type": "string"
                    },
                    "attempt_count": {
                        "type": "integer"
                    },
                    "next_attempt_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "attempts": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "object": {
                                    "type": "string",
                                    "const": "webhook_attempt"
                                },
                                "response_status": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ]
                                },
                                "duration_ms": {
                                    "type": "integer"
                                },
                                "response_body": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "error": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "request_body": {
                                    "type": "string"
                                },
                                "created": {
                                    "type": "integer"
                                }
                            },
                            "required": [
                                "id",
                                "object",
                                "response_status",
                                "duration_ms",
                                "response_body",
                                "error",
                                "request_body",
                                "created"
                            ]
                        }
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "object",
                    "status",
                    "endpoint",
                    "event",
                    "event_type",
                    "attempt_count",
                    "next_attempt_at",
                    "attempts",
                    "created"
                ],
                "title": "PublicWebhookDeliveryResource"
            },
            "PublicWebhookEndpointResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "webhook_endpoint"
                    },
                    "url": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "enabled_events": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "status": {
                        "$ref": "#/components/schemas/WebhookEndpointStatus"
                    },
                    "livemode": {
                        "type": "boolean"
                    },
                    "disabled_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "secret": {
                        "type": "string",
                        "description": "Le secret de signature. Il n'apparaît qu'à la création et au renouvellement."
                    }
                },
                "required": [
                    "id",
                    "object",
                    "url",
                    "description",
                    "enabled_events",
                    "status",
                    "livemode",
                    "disabled_at",
                    "created"
                ],
                "title": "PublicWebhookEndpointResource"
            },
            "PublicWorkstationPairingCodeResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "workstation_pairing_code"
                    },
                    "code": {
                        "type": "string",
                        "description": "À saisir dans l'agent. Rendu seulement à la création."
                    },
                    "status": {
                        "$ref": "#/components/schemas/PairingCodeStatus"
                    },
                    "stage": {
                        "anyOf": [
                            {
                                "description": "Où en est un code `pending` : `waiting`, `connecting` une fois saisi sur le poste,\n`stalled` si l'agent se tait ensuite, `agent_outdated`, `already_paired`. Sinon vide.",
                                "$ref": "#/components/schemas/PairingStage"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "previewed_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "agent": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Ce que l'agent a dit de lui en présentant le code. Vide avant.",
                        "properties": {
                            "name": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "platform": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "os_version": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "version": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "status": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/AgentStatus"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "minimum_version": {
                                "type": "string"
                            },
                            "latest_version": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "name",
                            "platform",
                            "os_version",
                            "version",
                            "status",
                            "minimum_version",
                            "latest_version"
                        ]
                    },
                    "current_organization": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "L'organisation que le poste quitterait, tant que `stage` vaut `already_paired`."
                    },
                    "expires_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "workstation": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Le poste appairé par ce code : son identifiant, ou l'objet par `expand[]=workstation`."
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "livemode": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "object",
                    "status",
                    "stage",
                    "previewed_at",
                    "agent",
                    "current_organization",
                    "expires_at",
                    "workstation",
                    "created",
                    "livemode"
                ],
                "title": "PublicWorkstationPairingCodeResource"
            },
            "PublicWorkstationResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "workstation"
                    },
                    "name": {
                        "type": "string"
                    },
                    "platform": {
                        "$ref": "#/components/schemas/WorkstationPlatform"
                    },
                    "os_version": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "agent_version": {
                        "type": "string"
                    },
                    "agent_status": {
                        "$ref": "#/components/schemas/AgentStatus"
                    },
                    "online": {
                        "type": "boolean",
                        "description": "Le poste a remonté son état il y a moins de 45 secondes, et n'est pas révoqué."
                    },
                    "status": {
                        "$ref": "#/components/schemas/WorkstationStatus"
                    },
                    "readers": {
                        "type": "array",
                        "description": "Le dernier état remonté : pour chaque lecteur, ses fentes et le genre de la carte.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "slots": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "index": {
                                                "type": "integer"
                                            },
                                            "reader_name": {
                                                "type": "string"
                                            },
                                            "card": {
                                                "type": [
                                                    "object",
                                                    "null"
                                                ],
                                                "properties": {
                                                    "kind": {
                                                        "type": "string",
                                                        "enum": [
                                                            "cps",
                                                            "vitale",
                                                            "unknown"
                                                        ]
                                                    }
                                                },
                                                "required": [
                                                    "kind"
                                                ]
                                            }
                                        },
                                        "required": [
                                            "index",
                                            "reader_name",
                                            "card"
                                        ]
                                    }
                                }
                            },
                            "required": [
                                "name",
                                "slots"
                            ]
                        }
                    },
                    "last_seen_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "state_reported_at": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Le dernier état remonté. Vide juste après l'appairage : `readers` ne dit encore rien."
                    },
                    "last_card_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "certificate_expires_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "revoked_at": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "livemode": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "id",
                    "object",
                    "name",
                    "platform",
                    "os_version",
                    "agent_version",
                    "agent_status",
                    "online",
                    "status",
                    "readers",
                    "last_seen_at",
                    "state_reported_at",
                    "last_card_at",
                    "certificate_expires_at",
                    "revoked_at",
                    "created",
                    "livemode"
                ],
                "title": "PublicWorkstationResource"
            },
            "WebhookDeliveryStatus": {
                "type": "string",
                "enum": [
                    "pending",
                    "succeeded",
                    "failed"
                ],
                "title": "WebhookDeliveryStatus"
            },
            "WebhookEndpointStatus": {
                "type": "string",
                "enum": [
                    "enabled",
                    "disabled"
                ],
                "title": "WebhookEndpointStatus"
            },
            "WorkstationPlatform": {
                "type": "string",
                "enum": [
                    "macos",
                    "windows",
                    "linux"
                ],
                "title": "WorkstationPlatform"
            },
            "WorkstationStatus": {
                "type": "string",
                "enum": [
                    "online",
                    "offline",
                    "revoked"
                ],
                "title": "WorkstationStatus"
            }
        }
    }
}
