{"openapi":"3.1.0","info":{"title":"VoiceBridge Consumption API","version":"0.1.0-draft","description":"Contrato propuesto, no servicio desplegado. Voces y capacidades públicas, sin nombres de proveedores."},"servers":[{"url":"https://voicebridge.logica-ia.com"}],"paths":{"/v1/services":{"get":{"operationId":"listServices","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePage"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":2048}},{"name":"application_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/voices":{"get":{"operationId":"listVoices","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicePage"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":2048}},{"name":"application_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/applications":{"get":{"operationId":"listApplications","description":"","security":[{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationPage"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":2048}},{"name":"application_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/sessions":{"post":{"operationId":"createSession","description":"Admisión atómica: identidad, compañía, aplicación, derechos y presupuesto. No devuelve credencial de audio.","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"201":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":16,"maxLength":128}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"},"description":"Obligatorio con cookie de portal; omitido para credenciales servidor."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionCreate"}}}}},"get":{"operationId":"listSessions","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionPage"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":2048}},{"name":"application_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/sessions/{session_id}":{"get":{"operationId":"getSession","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/sessions/{session_id}/access":{"post":{"operationId":"mintSessionAccess","description":"Credencial opaca de un solo uso, máximo 60 s para conectar; ligada a sesión, identidad, aplicación y Origin permitido. Idempotencia no aplicable: se puede emitir otra; máximo 2 pendientes por sesión. Cache-Control: no-store.","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"201":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionAccess"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"},"description":"Obligatorio con cookie de portal; omitido para credenciales servidor."}]}},"/v1/sessions/{session_id}/close":{"post":{"operationId":"closeSession","description":"Idempotente; drena salida y finaliza medición, con plazo máximo 5 s. Cerrar una sesión ya cerrada devuelve su estado.","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"},"description":"Obligatorio con cookie de portal; omitido para credenciales servidor."}]}},"/v1/conversations/{conversation_id}":{"get":{"operationId":"getConversation","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversation"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]},"delete":{"operationId":"deleteConversation","description":"Requiere propietario o permiso explícito; bloquea recuperación de inmediato. Borrado de contenido dentro de 24 h, sujeto a retención legal declarada. Conserva contabilidad mínima sin transcript.","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"202":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deletion"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"},"description":"Obligatorio con cookie de portal; omitido para credenciales servidor."}]}},"/v1/conversations/{conversation_id}/resume":{"post":{"operationId":"resumeConversation","description":"Crea NUEVA sesión y reserva concurrencia. Solo contexto recuperable vigente. Un único stream activo por conversación; 409 si está ocupada. Recuperación genera consumo nuevo.","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"201":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":16,"maxLength":128}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"},"description":"Obligatorio con cookie de portal; omitido para credenciales servidor."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resume"}}}}}},"/v1/conversations/{conversation_id}/transcript":{"get":{"operationId":"getTranscript","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptSegmentPage"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":2048}},{"name":"application_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/usage":{"get":{"operationId":"listUsage","description":"Importes comerciales, no costos de proveedor. Filtros from/to UTC inclusivo/exclusivo, session_id y application_id; rango máximo 31 días.","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageRecordPage"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":2048}},{"name":"application_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"session_id","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}]}},"/v1/limits":{"get":{"operationId":"getLimits","description":"","security":[{"ApplicationKey":[]},{"PortalSession":[]}],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Limits"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[]}},"/health/live":{"get":{"operationId":"liveness","description":"","security":[],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[]}},"/health/ready":{"get":{"operationId":"readiness","description":"Solo estado mínimo; no expone dependencias o nombres de proveedores.","security":[],"responses":{"200":{"description":"Operación aceptada","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Error normalizado; no revela proveedor ni datos ajenos.","headers":{"X-Request-ID":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[]}}},"components":{"securitySchemes":{"ApplicationKey":{"type":"http","scheme":"bearer","description":"API key opaca de VoiceBridge, exclusivamente servidor."},"PortalSession":{"type":"apiKey","in":"cookie","name":"__Host-vb_session","description":"BFF OIDC; mutaciones con Origin y X-CSRF-Token válidos."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"retryable":{"type":"boolean"}},"required":["code","message","request_id","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"Service":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"name":{"type":"string"},"version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"voice_ids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},"capabilities":{"type":"array","items":{"type":"string"}}},"required":["id","name","version","voice_ids","capabilities"],"additionalProperties":false},"Voice":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"name":{"type":"string"},"version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"service_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"languages":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"string"}}},"required":["id","name","version","service_id","languages","capabilities"],"additionalProperties":false},"AudioFormat":{"type":"object","properties":{"encoding":{"type":"string","enum":["pcm_s16le"]},"sample_rate_hz":{"type":"integer","minimum":8000,"enum":[8000,16000,24000,48000]},"channels":{"type":"integer","minimum":1,"enum":[1]}},"required":["encoding","sample_rate_hz","channels"],"additionalProperties":false},"Context":{"type":"object","properties":{"mode":{"type":"string","enum":["ephemeral","recoverable","external"]},"retention_days":{"type":"integer","minimum":0,"maximum":365},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"text":{"type":"string","maxLength":16000}},"required":["role","text"],"additionalProperties":false}}},"required":["mode"],"additionalProperties":false},"SessionCreate":{"type":"object","properties":{"service_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"voice_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"application_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"language":{"type":"string","maxLength":40},"audio":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/AudioFormat"},"output":{"$ref":"#/components/schemas/AudioFormat"}},"required":["input","output"],"additionalProperties":false},"context":{"$ref":"#/components/schemas/Context"},"idle_timeout_seconds":{"type":"integer","minimum":10,"maximum":600},"allow_interruptions":{"type":"boolean"},"metadata":{"type":"object","maxProperties":16,"additionalProperties":{"type":"string","maxLength":256}}},"required":["service_id","voice_id","application_id","language","audio","context"],"additionalProperties":false},"Session":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"conversation_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"application_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"user_id":{"type":["string","null"]},"state":{"type":"string","enum":["created","connecting","active","closing","closed","failed"]},"service_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"voice_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"profile_version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"policy_version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"tariff_version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"audio":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/AudioFormat"},"output":{"$ref":"#/components/schemas/AudioFormat"}},"required":["input","output"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"closed_at":{"type":["string","null"],"format":"date-time"},"close_reason":{"type":["string","null"]}},"required":["id","conversation_id","application_id","user_id","state","service_id","voice_id","profile_version","policy_version","tariff_version","audio","created_at","closed_at","close_reason"],"additionalProperties":false},"Resume":{"type":"object","properties":{"application_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"audio":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/AudioFormat"},"output":{"$ref":"#/components/schemas/AudioFormat"}},"required":["input","output"],"additionalProperties":false}},"required":["application_id","audio"],"additionalProperties":false},"Conversation":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"context_mode":{"type":"string","enum":["ephemeral","recoverable","external"]},"retention_expires_at":{"type":["string","null"],"format":"date-time"},"state":{"type":"string","enum":["available","expired","deletion_pending","deleted"]}},"required":["id","context_mode","retention_expires_at","state"],"additionalProperties":false},"TranscriptSegment":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"session_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"turn_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"role":{"type":"string","enum":["user","assistant"]},"text":{"type":"string"},"created_at":{"type":"string","format":"date-time"}},"required":["id","session_id","turn_id","role","text","created_at"],"additionalProperties":false},"SessionAccess":{"type":"object","properties":{"session_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"token":{"type":"string"},"expires_at":{"type":"string","format":"date-time"},"websocket_url":{"type":"string","format":"uri"}},"required":["session_id","token","expires_at","websocket_url"],"additionalProperties":false},"UsageRecord":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"session_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"application_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"period_start":{"type":"string","format":"date-time"},"period_end":{"type":"string","format":"date-time"},"revision":{"type":"integer","minimum":1},"quantities":{"type":"array","items":{"type":"object","properties":{"modality":{"type":"string","enum":["audio","text","context"]},"direction":{"type":"string","enum":["input","output"]},"unit":{"type":"string","enum":["token","millisecond"]},"quantity":{"type":"string","pattern":"^\\d+(\\.\\d+)?$"}},"required":["modality","direction","unit","quantity"],"additionalProperties":false}},"customer_charge_usd":{"type":"string","pattern":"^\\d+\\.\\d{1,12}$","description":"USD decimal exacto; nunca un float binario."},"status":{"type":"string","enum":["estimated","confirmed","adjusted"]},"tariff_version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},"required":["id","session_id","application_id","period_start","period_end","revision","quantities","customer_charge_usd","status","tariff_version"],"additionalProperties":false},"Limits":{"type":"object","properties":{"policy_version":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"commercial_unlimited":{"type":"boolean"},"max_concurrent_sessions":{"type":"integer","minimum":0},"current_sessions":{"type":"integer","minimum":0},"monthly_minutes_remaining":{"type":["integer","null"],"minimum":0},"max_session_seconds":{"type":"integer","minimum":0},"max_retention_days":{"type":"integer","minimum":0},"admission":{"type":"string","enum":["allowed","restricted","budget_exhausted","quota_exhausted"]}},"required":["policy_version","commercial_unlimited","max_concurrent_sessions","current_sessions","monthly_minutes_remaining","max_session_seconds","max_retention_days","admission"],"additionalProperties":false},"Application":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"name":{"type":"string"},"environment":{"type":"string","enum":["test","production"]},"state":{"type":"string","enum":["active","suspended"]},"service_ids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}}},"required":["id","name","environment","state","service_ids"],"additionalProperties":false},"KeyCreate":{"type":"object","properties":{"application_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"name":{"type":"string","maxLength":80},"environment":{"type":"string","enum":["test","production"]},"scopes":{"type":"array","items":{"type":"string","enum":["voice:connect","sessions:read:self","sessions:read:application","usage:read:application","conversations:resume","transcripts:read"]}},"expires_at":{"type":"string","format":"date-time"}},"required":["application_id","name","environment","scopes","expires_at"],"additionalProperties":false},"Key":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"application_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"name":{"type":"string"},"prefix":{"type":"string"},"environment":{"type":"string","enum":["test","production"]},"scopes":{"type":"array","items":{"type":"string"}},"state":{"type":"string","enum":["active","revoked","expired"]},"expires_at":{"type":"string","format":"date-time"}},"required":["id","application_id","name","prefix","environment","scopes","state","expires_at"],"additionalProperties":false},"KeySecret":{"type":"object","properties":{"key":{"$ref":"#/components/schemas/Key"},"secret":{"type":"string","description":"Revelación única, no recuperable. No logs ni caches."}},"required":["key","secret"],"additionalProperties":false},"Revoke":{"type":"object","properties":{"active_sessions":{"type":"string","enum":["terminate","allow_until_expiry"]},"reason":{"type":"string","minLength":1,"maxLength":256}},"required":["active_sessions","reason"],"additionalProperties":false},"Rotation":{"type":"object","properties":{"overlap_seconds":{"type":"integer","minimum":0,"maximum":3600}},"required":["overlap_seconds"],"additionalProperties":false},"Deletion":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"state":{"type":"string","enum":["pending","completed"]},"requested_at":{"type":"string","format":"date-time"}},"required":["id","state","requested_at"],"additionalProperties":false},"Health":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"]}},"required":["status"],"additionalProperties":false},"ServicePage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"VoicePage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Voice"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"SessionPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Session"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"UsageRecordPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UsageRecord"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"ApplicationPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Application"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"KeyPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"TranscriptSegmentPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSegment"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false}}}}