{"openapi":"3.1.0","info":{"title":"Witnio","description":"Witnio Control Plane & Automation Backend","version":"5.0.0"},"servers":[{"url":"https://api.witnio.com","description":"Production"}],"paths":{"/api/v1/health":{"get":{"tags":["Health"],"summary":"Health Check","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/register":{"post":{"tags":["Auth"],"summary":"Register","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["Auth"],"summary":"Login","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["Auth"],"summary":"Refresh","operationId":"refresh_api_v1_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RefreshRequest"},{"type":"null"}],"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["Auth"],"summary":"Logout","operationId":"logout_api_v1_auth_logout_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RefreshRequest"},{"type":"null"}],"title":"Data"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/password/forgot":{"post":{"tags":["Auth"],"summary":"Password Forgot","description":"Always 202 with the same body: never reveals whether the e-mail has an account.","operationId":"password_forgot_api_v1_auth_password_forgot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordForgotRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordForgotAccepted"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/password/reset":{"post":{"tags":["Auth"],"summary":"Password Reset","description":"Sets a new password from a one-time token; revokes every refresh session. MFA is unchanged.","operationId":"password_reset_api_v1_auth_password_reset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/sessions":{"get":{"tags":["Auth"],"summary":"List Sessions","description":"Device/session inventory (Master Plan V13 SS27.1): every live refresh token\n(i.e. session) for the current user.","operationId":"list_sessions_api_v1_auth_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/app__schemas__auth__SessionResponse"},"type":"array","title":"Response List Sessions Api V1 Auth Sessions Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/sessions/{session_id}":{"delete":{"tags":["Auth"],"summary":"Revoke Session","operationId":"revoke_session_api_v1_auth_sessions__session_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__schemas__auth__SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/me":{"get":{"tags":["Auth"],"summary":"Get Me","operationId":"get_me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/mfa/enroll":{"post":{"tags":["Auth"],"summary":"Mfa Enroll","operationId":"mfa_enroll_api_v1_auth_mfa_enroll_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaEnrollResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/mfa/verify":{"post":{"tags":["Auth"],"summary":"Mfa Verify","operationId":"mfa_verify_api_v1_auth_mfa_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/mfa/disable":{"post":{"tags":["Auth"],"summary":"Mfa Disable","operationId":"mfa_disable_api_v1_auth_mfa_disable_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaDisableRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/mfa/challenge":{"post":{"tags":["Auth"],"summary":"Mfa Challenge","operationId":"mfa_challenge_api_v1_auth_mfa_challenge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaChallengeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/admin/users/{user_id}/mfa/reset":{"post":{"tags":["Auth"],"summary":"Admin Reset User Mfa","description":"Superuser-only. Never a silent bypass: forces mfa_enabled back to False\n(same fields disable_mfa clears) so MFA_REQUIRED_FOR_TENANT_USERS simply\nre-requires enrollment on the user's very next authenticated request while\nthe setting stays on -- it does not grant a standing exemption -- and\nalways records an audit event with the acting superuser as actor.","operationId":"admin_reset_user_mfa_api_v1_auth_admin_users__user_id__mfa_reset_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaResetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/":{"get":{"tags":["Tenants"],"summary":"List My Tenants","operationId":"list_my_tenants_api_v1_tenants__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TenantResponse"},"type":"array","title":"Response List My Tenants Api V1 Tenants  Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Tenants"],"summary":"Create Tenant","operationId":"create_tenant_api_v1_tenants__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tenants/current":{"get":{"tags":["Tenants"],"summary":"Get Active Tenant","operationId":"get_active_tenant_api_v1_tenants_current_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/verification":{"patch":{"tags":["Tenants"],"summary":"Declare Tenant Use Case","description":"OTP/abuse control (Master Plan V13 SS14): declares why the tenant needs\nOTP/SMS monitor checks. This alone does not unlock them — an admin still\nhas to approve via POST /admin/tenants/{id}/verify.","operationId":"declare_tenant_use_case_api_v1_tenants_me_verification_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantVerificationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/settings":{"get":{"tags":["Tenants"],"summary":"Get My Tenant Settings","description":"Client-editable tenant settings (today: communication language).","operationId":"get_my_tenant_settings_api_v1_tenants_me_settings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tenants"],"summary":"Update My Tenant Settings","description":"Owner/admin only. `locale` drives alert, lifecycle email and report language.","operationId":"update_my_tenant_settings_api_v1_tenants_me_settings_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSettingsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/audit-events":{"get":{"tags":["Tenants"],"summary":"List My Tenant Audit Events","description":"Master Plan V13 SS18/SS27.2/SS53: the tenant's own slice of the audit\ntrail -- never another tenant's rows.","operationId":"list_my_tenant_audit_events_api_v1_tenants_me_audit_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List My Tenant Audit Events Api V1 Tenants Me Audit Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/risk":{"get":{"tags":["Tenants"],"summary":"Get My Tenant Risk","description":"V15 14.4 anti-fraude: the tenant's own current risk_status/abuse_score,\nso a RESTRICTED tenant sees WHY its messaging/voice/number check\ncreation is blocked (EntitlementService.require_product) instead of just\na bare 400.","operationId":"get_my_tenant_risk_api_v1_tenants_me_risk_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRiskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/domain-verification/start":{"post":{"tags":["Tenants"],"summary":"Start Domain Verification","description":"V15 14.4 'domain verification cuando aplique': issues a token the\ntenant publishes as a DNS TXT record. Never claims verified here --\nsee POST /tenants/me/domain-verification/check.","operationId":"start_domain_verification_api_v1_tenants_me_domain_verification_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVerificationStartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVerificationStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/domain-verification/check":{"post":{"tags":["Tenants"],"summary":"Check Domain Verification","description":"Performs the real DNS TXT lookup (or reports `manual` if dnspython is\nnot installed in this environment) -- never returns verified=True\nwithout an actual match.","operationId":"check_domain_verification_api_v1_tenants_me_domain_verification_check_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVerificationCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVerificationCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/":{"post":{"tags":["Jobs"],"summary":"Create Job","operationId":"create_job_api_v1_jobs__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Jobs"],"summary":"List Jobs","operationId":"list_jobs_api_v1_jobs__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JobResponse"},"title":"Response List Jobs Api V1 Jobs  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_id}/cancel":{"post":{"tags":["Jobs"],"summary":"Cancel Job","operationId":"cancel_job_api_v1_jobs__job_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_id}":{"get":{"tags":["Jobs"],"summary":"Get Job","operationId":"get_job_api_v1_jobs__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/devices/register":{"post":{"tags":["Devices"],"summary":"Register Device","operationId":"register_device_api_v1_devices_register_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/devices/{serial}/heartbeat":{"post":{"tags":["Devices"],"summary":"Heartbeat","operationId":"heartbeat_api_v1_devices__serial__heartbeat_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceHeartbeatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/devices/":{"get":{"tags":["Devices"],"summary":"List Devices","description":"SECURITY_REVIEW_2026-09-04 #3, Master Plan V15 SS7.10/SS11.3: a\nsuperuser keeps the full fleet view (this is the platform admin\ninventory, see frontend/src/lib/witnio-api.ts `getDevices()`). Any\nother authenticated caller only sees devices dedicated to, or actively\nassigned/rented to, a tenant they belong to (row-level scoping, unchanged\nfrom the prior fix) -- and, on top of that, only the safe public fields\nof those rows (_mask_device_for_tenant): never phone_number,\npublic_ip_observed, health_json or worker_node_id, even for its own\ndedicated device.","operationId":"list_devices_api_v1_devices__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"worker_node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Worker Node Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceResponse"},"title":"Response List Devices Api V1 Devices  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/devices/{device_id}":{"patch":{"tags":["Devices"],"summary":"Patch Device","operationId":"patch_device_api_v1_devices__device_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","title":"Device Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/devices/leases/acquire":{"post":{"tags":["Devices"],"summary":"Acquire Lease","operationId":"acquire_lease_api_v1_devices_leases_acquire_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseAcquireRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/devices/leases/{lease_token}/release":{"post":{"tags":["Devices"],"summary":"Release Lease","operationId":"release_lease_api_v1_devices_leases__lease_token__release_post","parameters":[{"name":"lease_token","in":"path","required":true,"schema":{"type":"string","title":"Lease Token"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audits/":{"post":{"tags":["Audits"],"summary":"Request Free Audit","operationId":"request_free_audit_api_v1_audits__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audits/{audit_id}":{"get":{"tags":["Audits"],"summary":"Get Audit Result","operationId":"get_audit_result_api_v1_audits__audit_id__get","parameters":[{"name":"audit_id","in":"path","required":true,"schema":{"type":"string","title":"Audit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/autopilot/generate-plan":{"post":{"tags":["Social Autopilot"],"summary":"Generate Content Plan","operationId":"generate_content_plan_api_v1_autopilot_generate_plan_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentPlanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/autopilot/schedule":{"post":{"tags":["Social Autopilot"],"summary":"Schedule Autopilot Post","operationId":"schedule_autopilot_post_api_v1_autopilot_schedule_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulePostRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/autopilot/moderate":{"post":{"tags":["Social Autopilot"],"summary":"Moderate Inbound Comments","operationId":"moderate_inbound_comments_api_v1_autopilot_moderate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/plans":{"get":{"tags":["Billing & Plans"],"summary":"List Available Plans","description":"Returns the sellable Witnio product catalog (DEC-025): each product's\nproduct_code doubles as its checkout plan_code. Replaces the legacy\nstarter/growth/pro/agency tenant tiers (DEC-025, docs/DECISIONS.md).","operationId":"list_available_plans_api_v1_billing_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Available Plans Api V1 Billing Plans Get"}}}}}}},"/api/v1/billing/checkout":{"post":{"tags":["Billing & Plans"],"summary":"Create Checkout","description":"Two contracts on one route, never mixed in a single call:\n\n1. LEGACY (query string `?plan_code=<product_code>`, pre-V15/DEC-025):\n   unchanged byte-for-byte -- plan_code IS the bare product_code, checked\n   directly against the Product Gate Engine. Kept so every existing\n   caller (tests/integration/test_api_billing.py,\n   tests/integration/test_full_customer_journey_e2e.py,\n   tests/e2e/test_control_plane_customer_journey.py,\n   tests/regression/billing/test_checkout_requires_sellable_gate.py --\n   none owned by this worker) keeps working unmodified; a not-sellable\n   product still answers 400 here exactly as before.\n2. PREMIUM (JSON body, public launch wave, worker P2): body\n   {plan_code, provider?, return_url?, cancel_url?} where plan_code is a\n   ServicePlan.code (== ServicePlan.plan_code, e.g. \"consent_founder\").\n   - 422 unknown_plan: plan_code matches no ServicePlan row at all (a\n     typo/stale frontend build) -- checked BEFORE calling BillingService\n     so this never collapses into the 409 below (sellable_map.get(code,\n     False) would otherwise treat \"unknown\" and \"known but not sellable\n     yet\" identically).\n   - 409 product_not_sellable: the plan exists but its product is not\n     SELLABLE -- true for every launch product today (preamble: \"Today\n     every product is available=false\"), so the frontend's CTA in that\n     state must be the waitlist, never this endpoint.\n   - provider is threaded through to BillingService.initiate_checkout\n     per the P2/P3 contract (provider=None picks the deployment default,\n     BILLING_PROVIDER; an explicit \"stripe\"/\"paypal\" that is unknown or\n     unconfigured fails closed with a 503 -- BillingProviderUnavailableError,\n     mapped in app/main.py -- never a silent fallback to a different\n     provider).\n\n429 (both contracts): handled by RateLimitMiddleware's default\nper-tenant class before this function ever runs (billing.py is not under\n/public/, so it already gets the tighter per-tenant/API-key/IP bucket).","operationId":"create_checkout_api_v1_billing_checkout_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"plan_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Code"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/checkout/{checkout_id}":{"get":{"tags":["Billing & Plans"],"summary":"Get Checkout Status","description":"Success page polling target (P2/P3 contract:\nBillingService.get_checkout_status(checkout_id, tenant_id) -> {\"status\",\n\"subscription_id\"}). A checkout_id with no local Subscription row scoped\nto this tenant raises CheckoutNotFoundError, mapped to a clean 404 by\nmain.py's domain_exception_handler (anti-enumeration, same rule as\nSubscriptionNotFoundError) -- not caught here on purpose.","operationId":"get_checkout_status_api_v1_billing_checkout__checkout_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"checkout_id","in":"path","required":true,"schema":{"type":"string","title":"Checkout Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/portal":{"post":{"tags":["Billing & Plans"],"summary":"Get Customer Portal","description":"Tenant-scoped customer portal session URL (Phase W5).","operationId":"get_customer_portal_api_v1_billing_portal_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CustomerPortalRequest"},{"type":"null"}],"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerPortalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/subscriptions":{"get":{"tags":["Billing & Plans"],"summary":"List My Subscriptions","description":"Portal billing page (dashboard/billing): every Subscription row this\ntenant owns, including its id -- GET /service-plans deliberately never\nexposes a subscription id (only plan_code + usage), so the cancel/pause/\nresume/{subscription_id} actions have nothing to call without this.","operationId":"list_my_subscriptions_api_v1_billing_subscriptions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionListItem"},"title":"Response List My Subscriptions Api V1 Billing Subscriptions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/invoices":{"get":{"tags":["Billing & Plans"],"summary":"List My Invoices","description":"Client dashboard v2 (worker D-5): the tenant's own invoices/receipts,\nas the billing layer knows them TODAY -- this backend has no Invoice\nmodel (see BillingService.list_invoices' docstring), so every row is\nDERIVED from a Subscription's current period, marked `source=\"derived\"`,\nwith a real (never invented) amount_usd.","operationId":"list_my_invoices_api_v1_billing_invoices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BillingInvoiceItem"},"title":"Response List My Invoices Api V1 Billing Invoices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/webhook":{"post":{"tags":["Billing & Plans"],"summary":"Payment Webhook","description":"Legacy, provider-agnostic endpoint: stays mapped to the deployment's\nsingle default provider (BILLING_PROVIDER) exactly as before -- unchanged\nfor every existing caller/test. A real multi-provider deployment (V15\nSS14.2) instead configures each provider's dashboard to call the\nprovider-scoped routes below, so a webhook is verified with the RIGHT\nprovider's secret even when BILLING_PROVIDER default differs.","operationId":"payment_webhook_api_v1_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/billing/webhook/stripe":{"post":{"tags":["Billing & Plans"],"summary":"Stripe Webhook","description":"Provider-scoped webhook (V15 SS14.2 multi-provider billing, P2/P3\ncontract): verifies against the Stripe adapter specifically via\nBillingProviderRegistry.adapter_for(\"stripe\"), regardless of what\nBILLING_PROVIDER the deployment defaults to.","operationId":"stripe_webhook_api_v1_billing_webhook_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/billing/webhook/paypal":{"post":{"tags":["Billing & Plans"],"summary":"Paypal Webhook","description":"Provider-scoped webhook, PayPal counterpart of stripe_webhook above.","operationId":"paypal_webhook_api_v1_billing_webhook_paypal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/billing/webhook/payments":{"post":{"tags":["Billing & Plans"],"summary":"Payments Webhook","description":"Inbound webhook receiver for BRENES-BILLING (Phase W2).\n\nVerifies HMAC-SHA256 signature, validates V1 schema, ensures anti-replay\ntimestamp drift tolerance, and processes lifecycle events idempotently.","operationId":"payments_webhook_api_v1_billing_webhook_payments_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/billing/subscriptions/{subscription_id}/cancel":{"post":{"tags":["Billing & Plans"],"summary":"Cancel Subscription","description":"Tenant-owned (billing readiness section 8, previously OPEN_RISK):\ncancels the caller's own subscription on the live provider and marks the\nlocal row canceled. Ownership is checked against the local Subscription\nrow, not trusted from the path -- a tenant can never cancel another\ntenant's subscription by guessing its provider_subscription_id.\n\nV15 14.3: cancel_now=False (querystring) defers the actual cancellation\nto the current billing period's end instead of cancelling immediately --\nsee BillingService.cancel_subscription_for_tenant's docstring.","operationId":"cancel_subscription_api_v1_billing_subscriptions__subscription_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"cancel_now","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Cancel Now"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/subscriptions/{subscription_id}/pause":{"post":{"tags":["Billing & Plans"],"summary":"Pause Subscription","description":"Suspends billing without cancelling (Stripe pause_collection, PayPal\nsuspend). Adapters that don't support it (Simulated, Mock, PayPal\ncreate_subscription-less flows) raise a clean AdapterError -- documented\ngap, not a silent no-op. V15 14.2: also blocks new job/check creation\nfor the tenant (KillSwitchService.stop_new_jobs) -- existing evidence\nstays fully readable.","operationId":"pause_subscription_api_v1_billing_subscriptions__subscription_id__pause_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/subscriptions/{subscription_id}/resume":{"post":{"tags":["Billing & Plans"],"summary":"Resume Subscription","operationId":"resume_subscription_api_v1_billing_subscriptions__subscription_id__resume_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/subscriptions/{subscription_id}/refund":{"post":{"tags":["Billing & Plans"],"summary":"Refund Subscription","description":"Admin-only (Master Plan V13 SS28): issues a refund on the active\nbilling provider and logs it to the BillingEvent ledger.","operationId":"refund_subscription_api_v1_billing_subscriptions__subscription_id__refund_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/sync":{"post":{"tags":["Billing & Plans"],"summary":"Sync Billing Entitlements","description":"Admin-only: pulls the live subscription from the active billing\nprovider and updates the local Subscription row + BillingEvent ledger.","operationId":"sync_billing_entitlements_api_v1_billing_sync_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"query","required":true,"schema":{"type":"string","title":"Subscription Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncEntitlementsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/admin/reconciliation":{"get":{"tags":["Billing & Plans"],"summary":"Get Billing Reconciliation","description":"Admin-only: read-only divergence report between local Subscription\nrows and the live provider (Master Plan V13 SS28,\nBillingReconciliationService). Only meaningful when BILLING_PROVIDER is\nStripe today -- other adapters don't implement list_subscriptions() and\nreport a clean AdapterError instead of a stale/empty report.","operationId":"get_billing_reconciliation_api_v1_billing_admin_reconciliation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconciliationReportResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/billing/shadow-report":{"get":{"tags":["Billing & Plans"],"summary":"Get Shadow Billing","operationId":"get_shadow_billing_api_v1_billing_shadow_report_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period_month","in":"query","required":false,"schema":{"type":"string","default":"2026-08","title":"Period Month"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShadowBillingReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/trial/start":{"post":{"tags":["Billing & Plans"],"summary":"Start Trial","description":"V15 14.6: provisions a 14-day trial Subscription for product_code.\nOff entirely unless settings.TRIAL_ENABLED=true; OTP/A2P/Voice products\nadditionally require the tenant to already be verified (Master Plan V13\nSS14) even during a trial.","operationId":"start_trial_api_v1_billing_trial_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_code","in":"query","required":true,"schema":{"type":"string","title":"Product Code"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/me/warnings":{"get":{"tags":["Billing & Plans"],"summary":"Get My Billing Warnings","description":"V15 14.5 'allowed with a warning flag' during grace: the caller's own\npast_due subscriptions, whether still inside grace or already past it.\nRead-only -- never blocks anything itself (require_product still denies\na past_due subscription's entitlement immediately, unchanged since\nMaster Plan V13 SS28; this endpoint exists so the frontend can show a\n\"payment failed, N days left\" banner instead of a surprise 402).","operationId":"get_my_billing_warnings_api_v1_billing_me_warnings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingWarningsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/admin/grace-periods/run":{"post":{"tags":["Billing & Plans"],"summary":"Run Grace Period Enforcement","description":"Admin-only manual trigger for BillingService.enforce_grace_periods\n(V15 14.5) -- same sweep the worker's periodic upkeep should call via\nPOST /workers/billing/grace-periods/run below.","operationId":"run_grace_period_enforcement_api_v1_billing_admin_grace_periods_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GracePeriodEnforcementResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/workers/billing/grace-periods/run":{"post":{"tags":["Billing"],"summary":"Worker Run Grace Period Enforcement","description":"Worker-credential-authenticated periodic upkeep hook (V15 14.5): meant\nto be called from omega-worker's tick_maintenance.py on the same cadence\nas call_retention_endpoint_if_due (see this task's\nREQUIRED_CHANGES_OUTSIDE_SCOPE for the exact snippet -- omega-worker\nitself is out of this worker's ownership). Node-scoped: not tied to a\nsingle phone.","operationId":"worker_run_grace_period_enforcement_api_v1_workers_billing_grace_periods_run_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GracePeriodEnforcementResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/register":{"post":{"tags":["Worker Nodes"],"summary":"Register Worker","operationId":"register_worker_api_v1_workers_register_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerNodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/{worker_id}/heartbeat":{"post":{"tags":["Worker Nodes"],"summary":"Worker Heartbeat","operationId":"worker_heartbeat_api_v1_workers__worker_id__heartbeat_post","parameters":[{"name":"worker_id","in":"path","required":true,"schema":{"type":"string","title":"Worker Id"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerHeartbeatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerNodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/":{"get":{"tags":["Worker Nodes"],"summary":"List Registered Workers","operationId":"list_registered_workers_api_v1_workers__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"capability","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capability"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkerNodeResponse"},"title":"Response List Registered Workers Api V1 Workers  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/devices/{serial}/capabilities":{"post":{"tags":["Worker Nodes"],"summary":"Report Device Capabilities","operationId":"report_device_capabilities_api_v1_workers_devices__serial__capabilities_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCapabilitiesUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCapabilitiesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/devices/{serial}/health":{"post":{"tags":["Worker Nodes"],"summary":"Report Device Health","operationId":"report_device_health_api_v1_workers_devices__serial__health_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceHealthReadingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceHealthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/devices/pending-sanitization":{"get":{"tags":["Worker Nodes"],"summary":"List Pending Sanitization","operationId":"list_pending_sanitization_api_v1_workers_devices_pending_sanitization_get","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PendingSanitizationItem"},"title":"Response List Pending Sanitization Api V1 Workers Devices Pending Sanitization Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/devices/{serial}/sanitization":{"post":{"tags":["Worker Nodes"],"summary":"Report Sanitization Run","operationId":"report_sanitization_run_api_v1_workers_devices__serial__sanitization_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SanitizationResultRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SanitizationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/product-gates/evaluate-all":{"post":{"tags":["Worker Nodes"],"summary":"Evaluate All Product Gates","description":"Master Plan V13 SS12: the worker calls this hourly to refresh the\nmeasured columns of all 12 product gates in a single request.","operationId":"evaluate_all_product_gates_api_v1_workers_product_gates_evaluate_all_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductGateEvaluateAllItem"},"title":"Response Evaluate All Product Gates Api V1 Workers Product Gates Evaluate All Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/panel":{"get":{"tags":["Admin Dashboard"],"summary":"Get Business Panel","description":"The owner's panel: five real business numbers (Master Plan V11, F4). Null means no data yet.","operationId":"get_business_panel_api_v1_admin_panel_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Business Panel Api V1 Admin Panel Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/metrics":{"get":{"tags":["Admin Dashboard"],"summary":"Get Admin Metrics","operationId":"get_admin_metrics_api_v1_admin_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Admin Metrics Api V1 Admin Metrics Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/tenants":{"get":{"tags":["Admin Dashboard"],"summary":"List All Tenants Admin","operationId":"list_all_tenants_admin_api_v1_admin_tenants_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List All Tenants Admin Api V1 Admin Tenants Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/retention/run":{"post":{"tags":["Admin Dashboard"],"summary":"Run Retention Admin","description":"Manual retention sweep (Master Plan V13 SS25), same purge the worker's hourly\nsweep triggers via POST /api/v1/workers/retention/run.","operationId":"run_retention_admin_api_v1_admin_retention_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionRunResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/tenants/{tenant_id}/verify":{"post":{"tags":["Admin Dashboard"],"summary":"Verify Tenant Admin","description":"Approves a tenant's declared use case (Master Plan V13 SS14): required\nbefore that tenant can create/update otp_sms monitor checks. See\napp.api.deps.require_verified_tenant and PATCH /tenants/me/verification.","operationId":"verify_tenant_admin_api_v1_admin_tenants__tenant_id__verify_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Verify Tenant Admin Api V1 Admin Tenants  Tenant Id  Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/audit-events":{"get":{"tags":["Admin Dashboard"],"summary":"List Audit Events Admin","description":"Master Plan V13 SS18/SS27.2/SS53: admin-wide view of the audit trail,\noptionally filtered by tenant_id/action/since.","operationId":"list_audit_events_admin_api_v1_admin_audit_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Audit Events Admin Api V1 Admin Audit Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tenants/{tenant_id}/risk-status":{"patch":{"tags":["Admin Dashboard"],"summary":"Update Tenant Risk Status","description":"V15 14.4 anti-fraude: manual override of a tenant's risk_status\n(typically approve RESTRICTED/REVIEW -> ACTIVE after a human review, per\n\"manual review solo cuando baja confianza\"). Marks abuse_signals_json\nwith admin_override=True so AbuseScoringService's automatic rescoring\n(recompute_check_velocity, domain verification) never silently reverts\nthis decision -- a second admin action is required to unset it.","operationId":"update_tenant_risk_status_api_v1_admin_tenants__tenant_id__risk_status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskStatusUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRiskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/demo/trigger-reel":{"post":{"tags":["Demo Mode Simulator"],"summary":"Trigger Demo Reel","operationId":"trigger_demo_reel_api_v1_demo_trigger_reel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Demo Reel Api V1 Demo Trigger Reel Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/demo/trigger-lead":{"post":{"tags":["Demo Mode Simulator"],"summary":"Trigger Demo Lead","operationId":"trigger_demo_lead_api_v1_demo_trigger_lead_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"query_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query Text"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Demo Lead Api V1 Demo Trigger Lead Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/unit-economics":{"get":{"tags":["Financial & Unit Economics"],"summary":"Get Unit Economics","operationId":"get_unit_economics_api_v1_finance_unit_economics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Unit Economics Api V1 Finance Unit Economics Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/finance/cohort-schedules":{"get":{"tags":["Financial & Unit Economics"],"summary":"Get Cohort Schedules","operationId":"get_cohort_schedules_api_v1_finance_cohort_schedules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Cohort Schedules Api V1 Finance Cohort Schedules Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/finance/ledger/categories":{"get":{"tags":["Financial & Unit Economics"],"summary":"List Categories","operationId":"list_categories_api_v1_finance_ledger_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Categories Api V1 Finance Ledger Categories Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/finance/ledger/expenses":{"get":{"tags":["Financial & Unit Economics"],"summary":"List Expenses","operationId":"list_expenses_api_v1_finance_ledger_expenses_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period_month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period Month"}},{"name":"category_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Code"}},{"name":"vendor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Expenses Api V1 Finance Ledger Expenses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Financial & Unit Economics"],"summary":"Create Expense","operationId":"create_expense_api_v1_finance_ledger_expenses_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpenseCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Expense Api V1 Finance Ledger Expenses Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/ledger/recurring":{"get":{"tags":["Financial & Unit Economics"],"summary":"List Recurring","operationId":"list_recurring_api_v1_finance_ledger_recurring_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Recurring Api V1 Finance Ledger Recurring Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Financial & Unit Economics"],"summary":"Create Recurring","operationId":"create_recurring_api_v1_finance_ledger_recurring_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringExpenseCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Recurring Api V1 Finance Ledger Recurring Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/finance/ledger/recurring/{recurring_id}":{"patch":{"tags":["Financial & Unit Economics"],"summary":"Update Recurring","operationId":"update_recurring_api_v1_finance_ledger_recurring__recurring_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recurring_id","in":"path","required":true,"schema":{"type":"string","title":"Recurring Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringExpenseUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Recurring Api V1 Finance Ledger Recurring  Recurring Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/ledger/revenues":{"get":{"tags":["Financial & Unit Economics"],"summary":"List Revenues","operationId":"list_revenues_api_v1_finance_ledger_revenues_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period_month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period Month"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Revenues Api V1 Finance Ledger Revenues Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/ledger/assets":{"get":{"tags":["Financial & Unit Economics"],"summary":"List Assets","operationId":"list_assets_api_v1_finance_ledger_assets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Assets Api V1 Finance Ledger Assets Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Financial & Unit Economics"],"summary":"Create Asset","operationId":"create_asset_api_v1_finance_ledger_assets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Asset Api V1 Finance Ledger Assets Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/finance/close/{month}":{"post":{"tags":["Financial & Unit Economics"],"summary":"Close Month","description":"Master Plan V15 Anexo B: materialize recurring costs -> depreciation ->\nsync revenue from BillingEvent -> AI costs -> cost allocation -> snapshot,\nin that order, all idempotent per month.","operationId":"close_month_api_v1_finance_close__month__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"month","in":"path","required":true,"schema":{"type":"string","title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Close Month Api V1 Finance Close  Month  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/snapshots/{month}":{"get":{"tags":["Financial & Unit Economics"],"summary":"Get Snapshot","operationId":"get_snapshot_api_v1_finance_snapshots__month__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"month","in":"path","required":true,"schema":{"type":"string","title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Snapshot Api V1 Finance Snapshots  Month  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/owner-dashboard":{"get":{"tags":["Financial & Unit Economics"],"summary":"Get Owner Dashboard","description":"Master Plan V15 section 16: every block (finance/costs/unit economics/\noperation/commercial/security/goal) on one screen. Blocks whose source\nservice doesn't exist yet come back null with a `missing` note, never a\nfake number (V15 15.1).","operationId":"get_owner_dashboard_api_v1_finance_owner_dashboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"'YYYY-MM'; defaults to the current calendar month","title":"Month"},"description":"'YYYY-MM'; defaults to the current calendar month"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Owner Dashboard Api V1 Finance Owner Dashboard Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/reinvestment/recommendation/{month}":{"get":{"tags":["Financial & Unit Economics"],"summary":"Get Reinvestment Recommendation","operationId":"get_reinvestment_recommendation_api_v1_finance_reinvestment_recommendation__month__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"month","in":"path","required":true,"schema":{"type":"string","title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Reinvestment Recommendation Api V1 Finance Reinvestment Recommendation  Month  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/reinvestment/decisions":{"get":{"tags":["Financial & Unit Economics"],"summary":"List Reinvestment Decisions","operationId":"list_reinvestment_decisions_api_v1_finance_reinvestment_decisions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period_month","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period Month"}},{"name":"decision","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decision"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Reinvestment Decisions Api V1 Finance Reinvestment Decisions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/finance/reinvestment/decisions/{decision_id}":{"patch":{"tags":["Financial & Unit Economics"],"summary":"Patch Reinvestment Decision","description":"Records Brenes' own approve/reject/revisit call (V15 15.10: \"el sistema\ngenera recomendacion, no mueve dinero automaticamente\"). This endpoint\nonly records the decision; it never triggers a purchase or a transfer.","operationId":"patch_reinvestment_decision_api_v1_finance_reinvestment_decisions__decision_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"decision_id","in":"path","required":true,"schema":{"type":"string","title":"Decision Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReinvestmentDecisionPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Reinvestment Decision Api V1 Finance Reinvestment Decisions  Decision Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/track":{"post":{"tags":["Acquisition Analytics & Funnel"],"summary":"Track Funnel Event","operationId":"track_funnel_event_api_v1_analytics_track_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackEventRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analytics/funnel":{"get":{"tags":["Acquisition Analytics & Funnel"],"summary":"Get Funnel Report","operationId":"get_funnel_report_api_v1_analytics_funnel_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/analytics/pricing-catalog":{"get":{"tags":["Acquisition Analytics & Funnel"],"summary":"Get Pricing Catalog","operationId":"get_pricing_catalog_api_v1_analytics_pricing_catalog_get","parameters":[{"name":"visitor_id","in":"query","required":false,"schema":{"type":"string","default":"anon-visitor-default","title":"Visitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/templates":{"get":{"tags":["Device & Account Provisioning"],"summary":"Get Templates","operationId":"get_templates_api_v1_provisioning_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/provisioning/discover":{"post":{"tags":["Device & Account Provisioning"],"summary":"Discover Device","operationId":"discover_device_api_v1_provisioning_discover_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverDeviceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/sims":{"post":{"tags":["Device & Account Provisioning"],"summary":"Register Sim","operationId":"register_sim_api_v1_provisioning_sims_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterSimRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/identities":{"post":{"tags":["Device & Account Provisioning"],"summary":"Register Identity","operationId":"register_identity_api_v1_provisioning_identities_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterIdentityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/connections":{"post":{"tags":["Device & Account Provisioning"],"summary":"Register Connection","operationId":"register_connection_api_v1_provisioning_connections_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterPlatformConnectionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/execute":{"post":{"tags":["Device & Account Provisioning"],"summary":"Execute Provisioning","operationId":"execute_provisioning_api_v1_provisioning_execute_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteProvisioningRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/revalidate":{"post":{"tags":["Device & Account Provisioning"],"summary":"Revalidate Device","operationId":"revalidate_device_api_v1_provisioning_revalidate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevalidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/maintenance":{"post":{"tags":["Device & Account Provisioning"],"summary":"Put Maintenance","operationId":"put_maintenance_api_v1_provisioning_maintenance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/provisioning/admin-devices":{"get":{"tags":["Device & Account Provisioning"],"summary":"Get Admin Devices","operationId":"get_admin_devices_api_v1_provisioning_admin_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/identities/propose":{"post":{"tags":["Identity & Email Routing Management"],"summary":"Propose Identities","operationId":"propose_identities_api_v1_identities_propose_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposeIdentitiesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identities/approve":{"post":{"tags":["Identity & Email Routing Management"],"summary":"Approve Identity","operationId":"approve_identity_api_v1_identities_approve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveIdentityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identities/reassign-device":{"post":{"tags":["Identity & Email Routing Management"],"summary":"Reassign Device","operationId":"reassign_device_api_v1_identities_reassign_device_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReassignDeviceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identities":{"get":{"tags":["Identity & Email Routing Management"],"summary":"List Identities","operationId":"list_identities_api_v1_identities_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identities/inbound-email":{"post":{"tags":["Identity & Email Routing Management"],"summary":"Handle Inbound Email","operationId":"handle_inbound_email_api_v1_identities_inbound_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__identities__InboundEmailWebhookRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identities/security-approvals":{"get":{"tags":["Identity & Email Routing Management"],"summary":"List Security Approvals","operationId":"list_security_approvals_api_v1_identities_security_approvals_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/device-control/mosaic":{"get":{"tags":["Device Control"],"summary":"Get Device Mosaic","description":"Returns the live Device Control mosaic filtered by tenant.","operationId":"get_device_mosaic_api_v1_device_control_mosaic_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Device Mosaic Api V1 Device Control Mosaic Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/device-control/group-action":{"post":{"tags":["Device Control"],"summary":"Execute Group Action","description":"Executes a synchronized group action across selected devices with tenant isolation.","operationId":"execute_group_action_api_v1_device_control_group_action_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks":{"post":{"tags":["Monitor"],"summary":"Create Check","operationId":"create_check_api_v1_monitor_checks_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Monitor"],"summary":"List Checks","operationId":"list_checks_api_v1_monitor_checks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorCheckResponse"},"title":"Response List Checks Api V1 Monitor Checks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/summary":{"get":{"tags":["Monitor"],"summary":"Get Summary","operationId":"get_summary_api_v1_monitor_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorCheckSummary"},"title":"Response Get Summary Api V1 Monitor Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/alerts":{"get":{"tags":["Monitor"],"summary":"List Alerts","operationId":"list_alerts_api_v1_monitor_alerts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorAlertResponse"},"title":"Response List Alerts Api V1 Monitor Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/numbers":{"get":{"tags":["Monitor"],"summary":"List Tenant Numbers","description":"\"Numero dedicado por cliente\": the phone number(s) this tenant's otp_sms\nchecks verify against, plus the health of the device each lives on. Only\nthis tenant's own active assignments -- never another tenant's.","operationId":"list_tenant_numbers_api_v1_monitor_numbers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TenantNumberResponse"},"title":"Response List Tenant Numbers Api V1 Monitor Numbers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/series":{"get":{"tags":["Monitor"],"summary":"Get Bulk Series","description":"Client dashboard v2 (worker D-5, bulk latency/availability chart):\none numeric series per check_id, for up to 25 of the CALLER'S OWN checks\nin a single request -- reuses the same metric semantics as\nGET /monitor/checks/{id}/series (`latency_ms`/`duration_ms` from the\nrun's own columns, `availability` as 100/0 per run, anything else a\nnumeric detail_json field).\n\nResponse shape: `{\"<check_id>\": [{\"ran_at\": \"<iso8601>\", \"value\": <float>}, ...], ...}`.\nAn id that does not exist, or belongs to another tenant, is silently\nOMITTED from the response object entirely -- never a 404 (that would\nforce the caller to split a batch request just to find the bad id) and\nnever a leaked row. A key IS present (with an empty list) for a check\nthat exists but has no runs in `window` -- that is how \"no data yet\" is\ntold apart from \"not your check\".","operationId":"get_bulk_series_api_v1_monitor_series_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_ids","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Comma-separated check ids, up to 25","title":"Check Ids"},"description":"Comma-separated check ids, up to 25"},{"name":"metric","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Metric"}},{"name":"window","in":"query","required":false,"schema":{"type":"string","description":"e.g. 24h, 7d","default":"24h","title":"Window"},"description":"e.g. 24h, 7d"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/MonitorMetricPoint"}},"title":"Response Get Bulk Series Api V1 Monitor Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}":{"get":{"tags":["Monitor"],"summary":"Get Check","operationId":"get_check_api_v1_monitor_checks__check_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Monitor"],"summary":"Update Check","operationId":"update_check_api_v1_monitor_checks__check_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Monitor"],"summary":"Deactivate Check","operationId":"deactivate_check_api_v1_monitor_checks__check_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}/pause":{"post":{"tags":["Monitor"],"summary":"Pause Check","operationId":"pause_check_api_v1_monitor_checks__check_id__pause_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}/resume":{"post":{"tags":["Monitor"],"summary":"Resume Check","operationId":"resume_check_api_v1_monitor_checks__check_id__resume_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}/runs":{"get":{"tags":["Monitor"],"summary":"List Check Runs","operationId":"list_check_runs_api_v1_monitor_checks__check_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorRunClientResponse"},"title":"Response List Check Runs Api V1 Monitor Checks  Check Id  Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}/series":{"get":{"tags":["Monitor"],"summary":"Get Check Series","description":"Numeric time series for one detail_json field of a check's own runs\n(V13 SS9 products 10-12), e.g. ?metric=rank or ?metric=load_ms.","operationId":"get_check_series_api_v1_monitor_checks__check_id__series_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"metric","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Metric"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"default":200,"title":"Limit"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorMetricPoint"},"title":"Response Get Check Series Api V1 Monitor Checks  Check Id  Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}/consent-report":{"get":{"tags":["Monitor"],"summary":"Get Consent Report","description":"Client-facing \"Informe de consentimiento\" (product witnio_consent_check), built\nlive from the tenant's own consent_banner MonitorRun rows -- 404 both when the check\ndoesn't exist for this tenant and when it exists but isn't a consent_banner check.\nLanguage priority: explicit ?lang= -> intake report_language -> tenant locale -> en.","operationId":"get_consent_report_api_v1_monitor_checks__check_id__consent_report_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":20,"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Explicit report language override; one of en/es/de/fr/it/pt-BR.","title":"Lang"},"description":"Explicit report language override; one of en/es/de/fr/it/pt-BR."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorConsentReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/checks/{check_id}/consent-report.pdf":{"get":{"tags":["Monitor"],"summary":"Get Consent Report Pdf","description":"Same report as GET .../consent-report, rendered as a printable PDF (reportlab).","operationId":"get_consent_report_pdf_api_v1_monitor_checks__check_id__consent_report_pdf_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":20,"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Explicit report language override; one of en/es/de/fr/it/pt-BR.","title":"Lang"},"description":"Explicit report language override; one of en/es/de/fr/it/pt-BR."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/worker/due":{"get":{"tags":["Monitor"],"summary":"Worker Due Checks","operationId":"worker_due_checks_api_v1_monitor_worker_due_get","parameters":[{"name":"device_serial","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"}},{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorDueCheckResponse"},"title":"Response Worker Due Checks Api V1 Monitor Worker Due Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/worker/device-checks":{"get":{"tags":["Monitor"],"summary":"Worker Device Checks","operationId":"worker_device_checks_api_v1_monitor_worker_device_checks_get","parameters":[{"name":"device_serial","in":"query","required":true,"schema":{"type":"string","title":"Device Serial"}},{"name":"check_types","in":"query","required":true,"schema":{"type":"string","title":"Check Types"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorDueCheckResponse"},"title":"Response Worker Device Checks Api V1 Monitor Worker Device Checks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/worker/runs":{"post":{"tags":["Monitor"],"summary":"Worker Record Run","operationId":"worker_record_run_api_v1_monitor_worker_runs_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorRunCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorRunWithAlertResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/worker/sms":{"post":{"tags":["Monitor"],"summary":"Worker Ingest Sms","operationId":"worker_ingest_sms_api_v1_monitor_worker_sms_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorSmsIngest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorRunResponse"},"title":"Response Worker Ingest Sms Api V1 Monitor Worker Sms Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/worker/calls":{"post":{"tags":["Monitor"],"summary":"Worker Ingest Call","description":"Push-triggered from the passive call tick (agent/tick_calls.py). Every active\ncall_observe/spam_label check for this device is a candidate, resolved\nindependently per check_type (a call can match at most one check of each type) --\nUNMATCHED/AMBIGUOUS never create a MonitorRun, exactly like MonitorService.\ningest_sms's MATCHED-only rule for otp_sms. A repeated `dedupe_key` replays the\noriginal outcomes (app.services.ingest_dedupe).","operationId":"worker_ingest_call_api_v1_monitor_worker_calls_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCallIngest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCallIngestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/monitor/worker/ssrf-sweep":{"post":{"tags":["Monitor"],"summary":"Worker Ssrf Sweep","description":"W2 SECURITY A.4: re-evaluates every active check's target/config_json\nURLs against url_policy and deactivates any that now fail it (see\napp.services.monitor_ssrf_sweep for why an already-allowed check can\ndrift). Called hourly by agent/tick_maintenance.run_ssrf_sweep_if_due.","operationId":"worker_ssrf_sweep_api_v1_monitor_worker_ssrf_sweep_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/plans":{"post":{"tags":["QA"],"summary":"Create Plan","operationId":"create_plan_api_v1_qa_plans_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaTestPlanCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaTestPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["QA"],"summary":"List Plans","operationId":"list_plans_api_v1_qa_plans_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QaTestPlanResponse"},"title":"Response List Plans Api V1 Qa Plans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/plans/{plan_id}":{"get":{"tags":["QA"],"summary":"Get Plan","operationId":"get_plan_api_v1_qa_plans__plan_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaTestPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["QA"],"summary":"Deactivate Plan","operationId":"deactivate_plan_api_v1_qa_plans__plan_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaTestPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/plans/{plan_id}/runs":{"post":{"tags":["QA"],"summary":"Start Run","operationId":"start_run_api_v1_qa_plans__plan_id__runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaRunCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/runs":{"get":{"tags":["QA"],"summary":"List Runs","operationId":"list_runs_api_v1_qa_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QaRunResponse"},"title":"Response List Runs Api V1 Qa Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/runs/{run_id}":{"get":{"tags":["QA"],"summary":"Get Run","operationId":"get_run_api_v1_qa_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaRunDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/runs/{run_id}/report":{"get":{"tags":["QA"],"summary":"Get Run Report","operationId":"get_run_report_api_v1_qa_runs__run_id__report_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/worker/backtest-runs":{"post":{"tags":["QA"],"summary":"Worker Create Backtest Run","description":"Backtesting harness (V13 s12.3): creates a QaRun flagged is_backtest for an\nexisting plan and assigns it to the given serial, so the worker can report steps\nagainst a real run id. 2026-09-04: the harness used the plan id as run id and every\nstep report was a 404 while the summary still claimed 3/3 persisted.","operationId":"worker_create_backtest_run_api_v1_qa_worker_backtest_runs_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/worker/pending":{"get":{"tags":["QA"],"summary":"Get Pending Assignment","operationId":"get_pending_assignment_api_v1_qa_worker_pending_get","parameters":[{"name":"device_serial","in":"query","required":true,"schema":{"type":"string","title":"Device Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/QaPendingAssignmentResponse"},{"type":"null"}],"title":"Response Get Pending Assignment Api V1 Qa Worker Pending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/worker/runs/{run_id}/devices/{serial}/steps":{"post":{"tags":["QA"],"summary":"Post Step Result","operationId":"post_step_result_api_v1_qa_worker_runs__run_id__devices__serial__steps_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaStepResultCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaStepResultResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/worker/runs/{run_id}/devices/{serial}/complete":{"post":{"tags":["QA"],"summary":"Complete Device","operationId":"complete_device_api_v1_qa_worker_runs__run_id__devices__serial__complete_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaCompleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaDeviceAssignmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/schedules/":{"post":{"tags":["QA Schedules"],"summary":"Create Schedule","operationId":"create_schedule_api_v1_qa_schedules__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["QA Schedules"],"summary":"List Schedules","operationId":"list_schedules_api_v1_qa_schedules__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QaScheduleResponse"},"title":"Response List Schedules Api V1 Qa Schedules  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/schedules/{schedule_id}":{"get":{"tags":["QA Schedules"],"summary":"Get Schedule","operationId":"get_schedule_api_v1_qa_schedules__schedule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["QA Schedules"],"summary":"Update Schedule","operationId":"update_schedule_api_v1_qa_schedules__schedule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["QA Schedules"],"summary":"Deactivate Schedule","operationId":"deactivate_schedule_api_v1_qa_schedules__schedule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/qa/schedules/worker/run-due":{"post":{"tags":["QA Schedules"],"summary":"Run Due Schedules","operationId":"run_due_schedules_api_v1_qa_schedules_worker_run_due_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QaScheduleRunDueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/device-rental/slots":{"post":{"tags":["Devices"],"summary":"Create Slot","operationId":"create_slot_api_v1_device_rental_slots_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Devices"],"summary":"List Slots","operationId":"list_slots_api_v1_device_rental_slots_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SlotResponse"},"title":"Response List Slots Api V1 Device Rental Slots Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/device-rental/slots/{slot_id}":{"get":{"tags":["Devices"],"summary":"Get Slot","operationId":"get_slot_api_v1_device_rental_slots__slot_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slot_id","in":"path","required":true,"schema":{"type":"string","title":"Slot Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Devices"],"summary":"Release Slot","operationId":"release_slot_api_v1_device_rental_slots__slot_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slot_id","in":"path","required":true,"schema":{"type":"string","title":"Slot Id"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/device-rental/slots/{slot_id}/sessions":{"post":{"tags":["Devices"],"summary":"Open Session","operationId":"open_session_api_v1_device_rental_slots__slot_id__sessions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slot_id","in":"path","required":true,"schema":{"type":"string","title":"Slot Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__schemas__device_rental__SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Devices"],"summary":"List Sessions","operationId":"list_sessions_api_v1_device_rental_slots__slot_id__sessions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slot_id","in":"path","required":true,"schema":{"type":"string","title":"Slot Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/app__schemas__device_rental__SessionResponse"},"title":"Response List Sessions Api V1 Device Rental Slots  Slot Id  Sessions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/device-rental/sessions/{session_id}":{"delete":{"tags":["Devices"],"summary":"End Session","operationId":"end_session_api_v1_device_rental_sessions__session_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__schemas__device_rental__SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/device-rental/worker/expire":{"post":{"tags":["Devices"],"summary":"Worker Expire","operationId":"worker_expire_api_v1_device_rental_worker_expire_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerExpireResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/api-keys":{"post":{"tags":["API Keys"],"summary":"Create Api Key","operationId":"create_api_key_api_v1_api_keys_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["API Keys"],"summary":"List Api Keys","operationId":"list_api_keys_api_v1_api_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyResponse"},"title":"Response List Api Keys Api V1 Api Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/api-keys/{key_id}":{"delete":{"tags":["API Keys"],"summary":"Revoke Api Key","operationId":"revoke_api_key_api_v1_api_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/reports/generate":{"post":{"tags":["Compliance Evidence"],"summary":"Generate Report","operationId":"generate_report_api_v1_compliance_reports_generate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReportGenerate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/reports":{"get":{"tags":["Compliance Evidence"],"summary":"List Reports","operationId":"list_reports_api_v1_compliance_reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceReportResponse"},"title":"Response List Reports Api V1 Compliance Reports Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/reports/{report_id}":{"get":{"tags":["Compliance Evidence"],"summary":"Get Report","operationId":"get_report_api_v1_compliance_reports__report_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/reports/{report_id}/verify":{"get":{"tags":["Compliance Evidence"],"summary":"Verify Report","description":"Recomputes the Ed25519 signature over the report's bundle manifest\n(V15 SS12.2). Tenant-scoped: a foreign report_id is 404.","operationId":"verify_report_api_v1_compliance_reports__report_id__verify_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReportVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/reports/{report_id}/html":{"get":{"tags":["Compliance Evidence"],"summary":"Get Report Html","operationId":"get_report_html_api_v1_compliance_reports__report_id__html_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/reports/{report_id}/manifest.json":{"get":{"tags":["Compliance Evidence"],"summary":"Get Report Manifest","description":"Signed bundle manifest for download (tenant-scoped, foreign id -> 404):\n{manifest, signature, key_id} POST as-is to /public/evidence/verify.","operationId":"get_report_manifest_api_v1_compliance_reports__report_id__manifest_json_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceReportManifestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/worker/generate-monthly":{"post":{"tags":["Compliance Evidence"],"summary":"Worker Generate Monthly","operationId":"worker_generate_monthly_api_v1_compliance_worker_generate_monthly_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceReportResponse"},"title":"Response Worker Generate Monthly Api V1 Compliance Worker Generate Monthly Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/delivery-stats":{"get":{"tags":["Public Stats"],"summary":"Get Delivery Stats","operationId":"get_delivery_stats_api_v1_public_delivery_stats_get","parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDeliveryStatsAnonymizedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/coverage":{"get":{"tags":["Public Stats"],"summary":"Get Public Coverage","description":"Corridors with physical hardware (V15 SS8.4 corridor honesty). This is the one public\nsurface that names countries/carriers/access methods; phone numbers are never exposed.","operationId":"get_public_coverage_api_v1_public_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCoverageResponse"}}}}}}},"/api/v1/public/status":{"get":{"tags":["Public Stats"],"summary":"Get Public Status","operationId":"get_public_status_api_v1_public_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStatusResponse"}}}}}}},"/api/v1/public/country-stats":{"get":{"tags":["Public Stats"],"summary":"Get Country Stats","operationId":"get_country_stats_api_v1_public_country_stats_get","parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCountryStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/delivery-stats/countries":{"get":{"tags":["Public Stats"],"summary":"Get Delivery Stats Countries","operationId":"get_delivery_stats_countries_api_v1_public_delivery_stats_countries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Get Delivery Stats Countries Api V1 Public Delivery Stats Countries Get"}}}}}}},"/api/v1/learning/errors":{"post":{"tags":["Learning & Prevention Engine"],"summary":"Ingest Error","operationId":"ingest_error_api_v1_learning_errors_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorIngestRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorIngestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Learning & Prevention Engine"],"summary":"List Errors","operationId":"list_errors_api_v1_learning_errors_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"subsystem","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subsystem"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ErrorRecordResponse"},"title":"Response List Errors Api V1 Learning Errors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/recovery-actions":{"post":{"tags":["Learning & Prevention Engine"],"summary":"Record Recovery Action","operationId":"record_recovery_action_api_v1_learning_recovery_actions_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoveryActionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoveryActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/errors/{fingerprint}/best-recovery":{"get":{"tags":["Learning & Prevention Engine"],"summary":"Get Best Recovery","operationId":"get_best_recovery_api_v1_learning_errors__fingerprint__best_recovery_get","parameters":[{"name":"fingerprint","in":"path","required":true,"schema":{"type":"string","title":"Fingerprint"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BestRecoveryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/recovery/next":{"get":{"tags":["Learning & Prevention Engine"],"summary":"Get Next Recovery Step","operationId":"get_next_recovery_step_api_v1_learning_recovery_next_get","parameters":[{"name":"fingerprint","in":"query","required":true,"schema":{"type":"string","title":"Fingerprint"}},{"name":"attempted","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated steps already tried","title":"Attempted"},"description":"Comma-separated steps already tried"},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoveryNextResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/errors/{error_record_id}":{"patch":{"tags":["Learning & Prevention Engine"],"summary":"Update Error","operationId":"update_error_api_v1_learning_errors__error_record_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"error_record_id","in":"path","required":true,"schema":{"type":"string","title":"Error Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorRecordUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/errors/{error_record_id}/regression-test":{"post":{"tags":["Learning & Prevention Engine"],"summary":"Add Regression Test","operationId":"add_regression_test_api_v1_learning_errors__error_record_id__regression_test_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"error_record_id","in":"path","required":true,"schema":{"type":"string","title":"Error Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegressionTestCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegressionTestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/incidents":{"get":{"tags":["Learning & Prevention Engine"],"summary":"List Incidents","operationId":"list_incidents_api_v1_learning_incidents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IncidentResponse"},"title":"Response List Incidents Api V1 Learning Incidents Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Learning & Prevention Engine"],"summary":"Create Incident","operationId":"create_incident_api_v1_learning_incidents_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncidentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncidentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/incidents/{incident_id}":{"patch":{"tags":["Learning & Prevention Engine"],"summary":"Close Incident","operationId":"close_incident_api_v1_learning_incidents__incident_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"incident_id","in":"path","required":true,"schema":{"type":"string","title":"Incident Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncidentCloseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncidentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/learning/runbooks":{"get":{"tags":["Learning & Prevention Engine"],"summary":"List Runbooks","operationId":"list_runbooks_api_v1_learning_runbooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RunbookResponse"},"type":"array","title":"Response List Runbooks Api V1 Learning Runbooks Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Learning & Prevention Engine"],"summary":"Upsert Runbook","operationId":"upsert_runbook_api_v1_learning_runbooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookUpsert"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunbookResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/learning/metrics":{"get":{"tags":["Learning & Prevention Engine"],"summary":"Get Learning Metrics","operationId":"get_learning_metrics_api_v1_learning_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningMetricsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/evidence/register":{"post":{"tags":["Evidence"],"summary":"Register Evidence","operationId":"register_evidence_api_v1_evidence_register_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceRegisterRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceRegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence":{"get":{"tags":["Evidence"],"summary":"List Evidence","description":"Client dashboard v2 (worker D-5): this tenant's sealed evidence -- the\nArtifact registry PLUS MonitorRun.evidence_json entries that predate it\n(see EvidenceService.list_evidence's docstring for the merge/cursor\ncontract and its documented approximation). `kind` and `artifact_type`\nare the same filter; if both are given, `artifact_type` wins.","operationId":"list_evidence_api_v1_evidence_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"artifact_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias: kind","title":"Artifact Type"},"description":"Alias: kind"},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for artifact_type","title":"Kind"},"description":"Alias for artifact_type"},{"name":"check_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/runs/{run_id}":{"get":{"tags":["Evidence"],"summary":"Get Run Evidence","description":"Signed evidence record of one monitor run (audit 2026-09-15 / V15\nSS12.1): canonical payload + Ed25519 signature + key_id, with `verified`\nrecomputed now. Tenant-scoped exactly like /{artifact_id}/manifest -- a\nforeign or unknown run_id is 404, never 403. Declared before the\n/{artifact_id}/... routes so \"runs\" is never read as an artifact id.","operationId":"get_run_evidence_api_v1_evidence_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEvidenceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/runs/{run_id}/verify":{"get":{"tags":["Evidence"],"summary":"Verify Run Evidence","operationId":"verify_run_evidence_api_v1_evidence_runs__run_id__verify_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEvidenceVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/runs/{run_id}/screenshot":{"get":{"tags":["Evidence"],"summary":"Download Run Screenshot","description":"The run's screenshot file (PNG/JPEG/WebP only). Tenant-scoped: a\nforeign/unknown run, a run without a screenshot, or a file no longer in\nstorage is 404. X-Evidence-SHA256 is the hash of the bytes served;\nX-Evidence-Recorded-SHA256 the hash the worker recorded at capture time.","operationId":"download_run_screenshot_api_v1_evidence_runs__run_id__screenshot_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"image/png":{},"image/jpeg":{},"image/webp":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/runs/{run_id}/signed.json":{"get":{"tags":["Evidence"],"summary":"Download Run Signed Envelope","description":"Signed evidence record of one run as a downloadable file: {manifest,\nsignature, key_id} POST as-is to /api/v1/public/evidence/verify.","operationId":"download_run_signed_envelope_api_v1_evidence_runs__run_id__signed_json_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSignedEnvelopeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/{artifact_id}/manifest":{"get":{"tags":["Evidence"],"summary":"Get Evidence Manifest","operationId":"get_evidence_manifest_api_v1_evidence__artifact_id__manifest_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceManifestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/{artifact_id}/verify":{"get":{"tags":["Evidence"],"summary":"Verify Evidence","operationId":"verify_evidence_api_v1_evidence__artifact_id__verify_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/keys":{"get":{"tags":["Evidence"],"summary":"List Evidence Public Keys","description":"Public (no auth, no tenant scoping): lists every Ed25519 public key this\ndeployment has ever signed evidence with -- the active one plus any rotated\nout via EVIDENCE_PUBLIC_KEYS_JSON (Master Plan V15 SS12.1). Never returns\nprivate key material. Not under /public/ (see evidence_public_router below\nfor the actual Anexo-required \"verification endpoint\") because it is not\nitself an action on a specific piece of evidence -- it falls under\nRateLimitMiddleware's \"default\" per-caller class rather than \"public\",\nwhich is a wider, not a narrower, quota for an unauthenticated GET.","operationId":"list_evidence_public_keys_api_v1_evidence_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceKeysResponse"}}}}}}},"/api/v1/workers/retention/run":{"post":{"tags":["Retention"],"summary":"Worker Run Retention","operationId":"worker_run_retention_api_v1_workers_retention_run_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetentionRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/security-metrics":{"get":{"tags":["Security Metrics"],"summary":"Get Security Metrics","description":"Rolling 10-minute counters plus a live count of API keys overdue for\nrotation (created_at older than 90 days and still live).","operationId":"get_security_metrics_api_v1_admin_security_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Security Metrics Api V1 Admin Security Metrics Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/product-gates":{"get":{"tags":["Product Gate Engine"],"summary":"List Product Gates","operationId":"list_product_gates_api_v1_product_gates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductGateResponse"},"type":"array","title":"Response List Product Gates Api V1 Product Gates Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/product-gates/{product_code}/evaluate":{"post":{"tags":["Product Gate Engine"],"summary":"Evaluate Product Gate","operationId":"evaluate_product_gate_api_v1_product_gates__product_code__evaluate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_code","in":"path","required":true,"schema":{"type":"string","title":"Product Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductGateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/product-gates/{product_code}/advance":{"post":{"tags":["Product Gate Engine"],"summary":"Advance Product Gate","operationId":"advance_product_gate_api_v1_product_gates__product_code__advance_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_code","in":"path","required":true,"schema":{"type":"string","title":"Product Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductGateAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductGateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/product-gates/{product_code}":{"patch":{"tags":["Product Gate Engine"],"summary":"Patch Product Gate","operationId":"patch_product_gate_api_v1_product_gates__product_code__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_code","in":"path","required":true,"schema":{"type":"string","title":"Product Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductGatePatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductGateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/catalog":{"get":{"tags":["Public Catalog"],"summary":"Get Public Catalog","operationId":"get_public_catalog_api_v1_public_catalog_get","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Locale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/claims":{"get":{"tags":["Public Catalog"],"summary":"Get Public Claims","description":"Master Plan V15 SS12.4: only VERIFIED/PILOT claims are ever returned --\nSTAGING/SIMULATED/ESTIMATED/DEFERRED_EXTERNAL rows exist in the table\npurely as an audit trail of what was considered and refused.","operationId":"get_public_claims_api_v1_public_claims_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicClaimsResponse"}}}}}}},"/api/v1/public/plans":{"get":{"tags":["Public Catalog"],"summary":"Get Public Plans","description":"Premium checkout/pricing UI (worker P2, +1 add-on by Q-D): the real\nServicePlan rows (price, tier, limits) for the launch products in\n`_LAUNCH_PRODUCT_CODES`, so the frontend never hardcodes a price. Unlike\nGET /service-plans/public (owned by another worker, W1-B), this returns\nEVERY plan of a launch product -- public or\nnot -- because the checkout/waitlist pages must show what a plan costs\nand includes even while it is not yet purchasable (preamble: \"Today\nevery product is available=false: the pages must look finished and\npremium in that state\"). `price_monthly_usd` is the Master Plan V15\nSS3.1 authoritative price (seeds/service_plans_v15.py's own docstring);\nonly limits_status/is_public are still PROPOSED pending owner approval --\n`available` is the one field the UI must gate the \"Pagar\" CTA on, never\n`is_public` alone (a plan can be is_public without its product being\nSELLABLE, though that combination should not exist in practice).\nException: a plan whose promised corridors are not served by the corridor\nregistry (`_plan_corridors_served`) is omitted entirely, fail-closed.","operationId":"get_public_plans_api_v1_public_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PublicPlanItem"},"type":"array","title":"Response Get Public Plans Api V1 Public Plans Get"}}}}}}},"/api/v1/public/capacity":{"get":{"tags":["Public Capacity"],"summary":"Get Public Capacity","operationId":"get_public_capacity_api_v1_public_capacity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCapacityResponse"}}}}}}},"/api/v1/sales/companies/import":{"post":{"tags":["Sales Engine"],"summary":"Import Companies","operationId":"import_companies_api_v1_sales_companies_import_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyImportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyImportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/companies":{"get":{"tags":["Sales Engine"],"summary":"List Companies","operationId":"list_companies_api_v1_sales_companies_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SalesCompanyResponse"},"title":"Response List Companies Api V1 Sales Companies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/companies/{company_id}/score":{"post":{"tags":["Sales Engine"],"summary":"Score Company","operationId":"score_company_api_v1_sales_companies__company_id__score_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesCompanyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/opportunities":{"get":{"tags":["Sales Engine"],"summary":"List Opportunities","operationId":"list_opportunities_api_v1_sales_opportunities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OpportunityResponse"},"title":"Response List Opportunities Api V1 Sales Opportunities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/opportunities/{opportunity_id}":{"patch":{"tags":["Sales Engine"],"summary":"Patch Opportunity","operationId":"patch_opportunity_api_v1_sales_opportunities__opportunity_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"opportunity_id","in":"path","required":true,"schema":{"type":"string","title":"Opportunity Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/run-cycle":{"post":{"tags":["Sales Engine"],"summary":"Run Cycle","operationId":"run_cycle_api_v1_sales_run_cycle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCycleResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/messages":{"get":{"tags":["Sales Engine"],"summary":"List Messages","operationId":"list_messages_api_v1_sales_messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"opportunity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opportunity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OutreachMessageResponse"},"title":"Response List Messages Api V1 Sales Messages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/suppression":{"post":{"tags":["Sales Engine"],"summary":"Add Suppression","operationId":"add_suppression_api_v1_sales_suppression_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/metrics":{"get":{"tags":["Sales Engine"],"summary":"Get Metrics","operationId":"get_metrics_api_v1_sales_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesMetricsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sales/webhooks/inbound-email":{"post":{"tags":["Sales Engine"],"summary":"Inbound Email Webhook","operationId":"inbound_email_webhook_api_v1_sales_webhooks_inbound_email_post","parameters":[{"name":"X-Sales-Webhook-Secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Sales-Webhook-Secret"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__schemas__sales__InboundEmailWebhookRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutreachMessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/health-scores":{"get":{"tags":["Sales Engine"],"summary":"List Health Scores","operationId":"list_health_scores_api_v1_sales_health_scores_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerHealthScoreResponse"},"title":"Response List Health Scores Api V1 Sales Health Scores Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/health-scores/recompute":{"post":{"tags":["Sales Engine"],"summary":"Recompute Health Scores","operationId":"recompute_health_scores_api_v1_sales_health_scores_recompute_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerHealthScoreResponse"},"title":"Response Recompute Health Scores Api V1 Sales Health Scores Recompute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/upsell":{"get":{"tags":["Sales Engine"],"summary":"List Upsell Recommendations","operationId":"list_upsell_recommendations_api_v1_sales_upsell_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UpsellRecommendationResponse"},"title":"Response List Upsell Recommendations Api V1 Sales Upsell Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/upsell/recompute":{"post":{"tags":["Sales Engine"],"summary":"Recompute Upsell Recommendations","operationId":"recompute_upsell_recommendations_api_v1_sales_upsell_recompute_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UpsellRecommendationResponse"},"title":"Response Recompute Upsell Recommendations Api V1 Sales Upsell Recompute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/upsell/{recommendation_id}":{"patch":{"tags":["Sales Engine"],"summary":"Patch Upsell Recommendation","operationId":"patch_upsell_recommendation_api_v1_sales_upsell__recommendation_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","title":"Recommendation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsellPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsellRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/funnel":{"get":{"tags":["Sales Engine"],"summary":"Get Funnel Metrics","operationId":"get_funnel_metrics_api_v1_sales_funnel_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period","in":"query","required":true,"schema":{"type":"string","description":"YYYY-MM","title":"Period"},"description":"YYYY-MM"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunnelMetricsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/kill-rule-review":{"get":{"tags":["Sales Engine"],"summary":"Get Kill Rule Review","operationId":"get_kill_rule_review_api_v1_sales_kill_rule_review_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/KillRuleReviewItem"},"type":"array","title":"Response Get Kill Rule Review Api V1 Sales Kill Rule Review Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/public/unsubscribe":{"get":{"tags":["Public"],"summary":"Unsubscribe Get","operationId":"unsubscribe_get_api_v1_public_unsubscribe_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Public"],"summary":"Unsubscribe Post","operationId":"unsubscribe_post_api_v1_public_unsubscribe_post","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/metrics":{"get":{"tags":["Observability"],"summary":"Get Metrics","operationId":"get_metrics_api_v1_metrics_get","parameters":[{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/metrics/slo":{"get":{"tags":["Observability"],"summary":"Get Slo Metrics","description":"V15 SS18.2: raw SLO numbers (rate + numerator/denominator + any\napproximation/reason note) for a dashboard -- GET /metrics above only\nexposes the bare rate as a gauge, this is the human-readable detail\nbehind it. Superuser-only (see _require_superuser).","operationId":"get_slo_metrics_api_v1_metrics_slo_get","parameters":[{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Window Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/number-assignments":{"post":{"tags":["Admin - Number Assignments"],"summary":"Create Number Assignment","operationId":"create_number_assignment_api_v1_admin_number_assignments_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NumberAssignmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NumberAssignmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin - Number Assignments"],"summary":"List Number Assignments","operationId":"list_number_assignments_api_v1_admin_number_assignments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_serial","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NumberAssignmentResponse"},"title":"Response List Number Assignments Api V1 Admin Number Assignments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/number-assignments/{assignment_id}":{"delete":{"tags":["Admin - Number Assignments"],"summary":"Release Number Assignment","operationId":"release_number_assignment_api_v1_admin_number_assignments__assignment_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string","title":"Assignment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NumberAssignmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-provisioning/identities":{"get":{"tags":["Identity Provisioning Dashboard"],"summary":"List Provisioned Identities","description":"Returns all identities in IdentityVault with social platform statuses and avatar metadata.","operationId":"list_provisioned_identities_api_v1_identity_provisioning_identities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Provisioned Identities Api V1 Identity Provisioning Identities Get"}}}}}}},"/api/v1/identity-provisioning/identities/{email}":{"get":{"tags":["Identity Provisioning Dashboard"],"summary":"Get Identity Details","description":"Returns deep identity data, event history, and list of captured screens.","operationId":"get_identity_details_api_v1_identity_provisioning_identities__email__get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Identity Details Api V1 Identity Provisioning Identities  Email  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Identity Provisioning Dashboard"],"summary":"Delete Identity","description":"Permanently deletes an identity, all captured evidence, avatar, and stored passwords.","operationId":"delete_identity_api_v1_identity_provisioning_identities__email__delete","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Identity Api V1 Identity Provisioning Identities  Email  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-provisioning/identities/{email}/avatar":{"get":{"tags":["Identity Provisioning Dashboard"],"summary":"Get Identity Avatar","description":"Serves the canonical portrait JPEG for the identity.","operationId":"get_identity_avatar_api_v1_identity_provisioning_identities__email__avatar_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-provisioning/identities/{email}/screens/{filename}":{"get":{"tags":["Identity Provisioning Dashboard"],"summary":"Get Step Screenshot","description":"Safely serves a step screenshot PNG from the identity's screens directory.","operationId":"get_step_screenshot_api_v1_identity_provisioning_identities__email__screens__filename__get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-provisioning/identities/{email}/credentials":{"get":{"tags":["Identity Provisioning Dashboard"],"summary":"Get Identity Credentials","description":"Returns stored usernames and passwords for Google, IMAP OTP, and social platforms.","operationId":"get_identity_credentials_api_v1_identity_provisioning_identities__email__credentials_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Identity Credentials Api V1 Identity Provisioning Identities  Email  Credentials Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-provisioning/devices":{"get":{"tags":["Identity Provisioning Dashboard"],"summary":"List Connected Devices","description":"Inspects ADB to discover connected physical phones, SIM cards, carriers, and battery levels.","operationId":"list_connected_devices_api_v1_identity_provisioning_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Connected Devices Api V1 Identity Provisioning Devices Get"}}}}}}},"/api/v1/identity-provisioning/provision":{"post":{"tags":["Identity Provisioning Dashboard"],"summary":"Trigger Provisioning","description":"Asynchronously triggers the multi-platform provisioner on a specific device.","operationId":"trigger_provisioning_api_v1_identity_provisioning_provision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionTriggerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Trigger Provisioning Api V1 Identity Provisioning Provision Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/identities":{"get":{"tags":["Witnio Identity Forge"],"summary":"List Provisioned Identities","description":"Returns all identities in IdentityVault with social platform statuses and avatar metadata.","operationId":"list_provisioned_identities_api_v1_identity_forge_identities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Provisioned Identities Api V1 Identity Forge Identities Get"}}}}}}},"/api/v1/identity-forge/identities/{email}":{"get":{"tags":["Witnio Identity Forge"],"summary":"Get Identity Details","description":"Returns deep identity data, event history, and list of captured screens.","operationId":"get_identity_details_api_v1_identity_forge_identities__email__get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Identity Details Api V1 Identity Forge Identities  Email  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Witnio Identity Forge"],"summary":"Delete Identity","description":"Permanently deletes an identity, all captured evidence, avatar, and stored passwords.","operationId":"delete_identity_api_v1_identity_forge_identities__email__delete","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Identity Api V1 Identity Forge Identities  Email  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/identities/{email}/avatar":{"get":{"tags":["Witnio Identity Forge"],"summary":"Get Identity Avatar","description":"Serves the canonical portrait JPEG for the identity.","operationId":"get_identity_avatar_api_v1_identity_forge_identities__email__avatar_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/identities/{email}/screens/{filename}":{"get":{"tags":["Witnio Identity Forge"],"summary":"Get Step Screenshot","description":"Safely serves a step screenshot PNG from the identity's screens directory.","operationId":"get_step_screenshot_api_v1_identity_forge_identities__email__screens__filename__get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/identities/{email}/credentials":{"get":{"tags":["Witnio Identity Forge"],"summary":"Get Identity Credentials","description":"Returns stored usernames and passwords for Google, IMAP OTP, and social platforms.","operationId":"get_identity_credentials_api_v1_identity_forge_identities__email__credentials_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Identity Credentials Api V1 Identity Forge Identities  Email  Credentials Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/devices":{"get":{"tags":["Witnio Identity Forge"],"summary":"List Connected Devices","description":"Inspects ADB to discover connected physical phones, custom names, SIM cards, carriers, and battery levels.","operationId":"list_connected_devices_api_v1_identity_forge_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Connected Devices Api V1 Identity Forge Devices Get"}}}}}}},"/api/v1/identity-forge/devices/{serial}/rename":{"post":{"tags":["Witnio Identity Forge"],"summary":"Rename Device","description":"Sets a custom human-readable alias for a physical hardware device.","operationId":"rename_device_api_v1_identity_forge_devices__serial__rename_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRenameRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rename Device Api V1 Identity Forge Devices  Serial  Rename Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/devices/{serial}/test-touch":{"post":{"tags":["Witnio Identity Forge"],"summary":"Test Device Touch","description":"Tests ADB synthetic touch event injection to verify touch capability (Native or UHID bypass).","operationId":"test_device_touch_api_v1_identity_forge_devices__serial__test_touch_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Test Device Touch Api V1 Identity Forge Devices  Serial  Test Touch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/forge":{"post":{"tags":["Witnio Identity Forge"],"summary":"Trigger Forge","description":"Synthesizes persona and launches autonomous multi-platform forge in background.","operationId":"trigger_forge_api_v1_identity_forge_forge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgeTriggerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Trigger Forge Api V1 Identity Forge Forge Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/warmup":{"post":{"tags":["Witnio Identity Forge"],"summary":"Trigger Warmup","description":"Triggers an autonomous anti-ban warmup session on a connected device.","operationId":"trigger_warmup_api_v1_identity_forge_warmup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarmupTriggerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Trigger Warmup Api V1 Identity Forge Warmup Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/provision":{"post":{"tags":["Witnio Identity Forge"],"summary":"Trigger Provisioning","description":"Asynchronously triggers the multi-platform provisioner on a specific device.","operationId":"trigger_provisioning_api_v1_identity_forge_provision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionTriggerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Trigger Provisioning Api V1 Identity Forge Provision Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/devices/{serial}/rotate-ip":{"post":{"tags":["Witnio Identity Forge"],"summary":"Rotate Device Cellular Ip","description":"Forces cellular IP rotation on physical SIM via airplane mode toggle.","operationId":"rotate_device_cellular_ip_api_v1_identity_forge_devices__serial__rotate_ip_post","parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rotate Device Cellular Ip Api V1 Identity Forge Devices  Serial  Rotate Ip Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/identity-forge/export":{"get":{"tags":["Witnio Identity Forge"],"summary":"Export Identities","description":"Exports all identities and credentials as CSV or JSON.","operationId":"export_identities_api_v1_identity_forge_export_get","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(csv|json)$","default":"csv","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/kill-switch/{kind}/{entity_id}/suspend":{"post":{"tags":["Security Admin"],"summary":"Suspend Entity","operationId":"suspend_entity_api_v1_security_kill_switch__kind___entity_id__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"enum":["api_key","user","tenant"],"type":"string","title":"Kind"}},{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspensionStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/kill-switch/{kind}/{entity_id}/lift":{"post":{"tags":["Security Admin"],"summary":"Lift Entity","operationId":"lift_entity_api_v1_security_kill_switch__kind___entity_id__lift_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"enum":["api_key","user","tenant"],"type":"string","title":"Kind"}},{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspensionStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/kill-switch/tenant/{tenant_id}/stop-new-jobs":{"post":{"tags":["Security Admin"],"summary":"Stop New Jobs","operationId":"stop_new_jobs_api_v1_security_kill_switch_tenant__tenant_id__stop_new_jobs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopNewJobsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Stop New Jobs Api V1 Security Kill Switch Tenant  Tenant Id  Stop New Jobs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/kill-switch/tenant/{tenant_id}/allow-new-jobs":{"post":{"tags":["Security Admin"],"summary":"Allow New Jobs","description":"Lifts stop_new_jobs (not explicitly named in Master Plan V15 Anexo C's\nswitch list, but every kill switch here must be liftable -- see task\nacceptance \"Suspension lifts cleanly\").","operationId":"allow_new_jobs_api_v1_security_kill_switch_tenant__tenant_id__allow_new_jobs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Allow New Jobs Api V1 Security Kill Switch Tenant  Tenant Id  Allow New Jobs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/events":{"get":{"tags":["Security Admin"],"summary":"List Security Events","operationId":"list_security_events_api_v1_security_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityEventListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/maintenance-windows":{"post":{"tags":["Maintenance Windows"],"summary":"Open Maintenance Window","operationId":"open_maintenance_window_api_v1_maintenance_windows_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWindowOpenRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWindowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Maintenance Windows"],"summary":"List Maintenance Windows","operationId":"list_maintenance_windows_api_v1_maintenance_windows_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_serial","in":"query","required":true,"schema":{"type":"string","title":"Device Serial"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MaintenanceWindowResponse"},"title":"Response List Maintenance Windows Api V1 Maintenance Windows Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/maintenance-windows/worker/open":{"post":{"tags":["Maintenance Windows"],"summary":"Worker Open Maintenance Window","operationId":"worker_open_maintenance_window_api_v1_maintenance_windows_worker_open_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWindowOpenRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWindowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/maintenance-windows/worker/active":{"get":{"tags":["Maintenance Windows"],"summary":"Worker Get Active Maintenance Window","operationId":"worker_get_active_maintenance_window_api_v1_maintenance_windows_worker_active_get","parameters":[{"name":"device_serial","in":"query","required":true,"schema":{"type":"string","title":"Device Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/MaintenanceWindowResponse"},{"type":"null"}],"title":"Response Worker Get Active Maintenance Window Api V1 Maintenance Windows Worker Active Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/maintenance-windows/{window_id}/close":{"post":{"tags":["Maintenance Windows"],"summary":"Close Maintenance Window","operationId":"close_maintenance_window_api_v1_maintenance_windows__window_id__close_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"window_id","in":"path","required":true,"schema":{"type":"string","title":"Window Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWindowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/corridors":{"get":{"tags":["Corridors"],"summary":"List Corridors","operationId":"list_corridors_api_v1_corridors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CorridorResponse"},"type":"array","title":"Response List Corridors Api V1 Corridors Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/corridors/{corridor_id}/status":{"patch":{"tags":["Corridors"],"summary":"Update Corridor Status","description":"Anexo C (\"Carrier outage\" row): a superuser marks a corridor\ndegraded/down (or restores it to active); CorridorService.mark_status logs\na warning for degraded/down (V15 8.7 Carrier Health Adapter is the\nlonger-term automated source for this same transition).","operationId":"update_corridor_status_api_v1_corridors__corridor_id__status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"corridor_id","in":"path","required":true,"schema":{"type":"string","title":"Corridor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorridorStatusUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorridorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admission/capacity":{"get":{"tags":["Admission Control"],"summary":"Get Safe Available Capacity","operationId":"get_safe_available_capacity_api_v1_admission_capacity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SafeAvailableCapacityResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admission/evaluate":{"post":{"tags":["Admission Control"],"summary":"Evaluate Admission","operationId":"evaluate_admission_api_v1_admission_evaluate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionEvaluateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admission/decisions":{"get":{"tags":["Admission Control"],"summary":"List Admission Decisions","operationId":"list_admission_decisions_api_v1_admission_decisions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdmissionDecisionResponse"},"title":"Response List Admission Decisions Api V1 Admission Decisions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/service-plans":{"get":{"tags":["Service Plans"],"summary":"Get My Service Plans","description":"One row per active Subscription that already resolves to a V15\nServicePlan (a legacy Subscription with no matching ServicePlan yet is\nsilently skipped here -- there is nothing V15-shaped to report for it).","operationId":"get_my_service_plans_api_v1_service_plans_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TenantPlanResponse"},"title":"Response Get My Service Plans Api V1 Service Plans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Service Plans"],"summary":"Create Service Plan","operationId":"create_service_plan_api_v1_service_plans_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePlanCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/service-plans/admin/all":{"get":{"tags":["Service Plans"],"summary":"List All Service Plans Admin","description":"Every ServicePlan regardless of is_public/limits_status: the owner's review\nsurface for C.12 (approve limits). Superuser only (BFLA).","operationId":"list_all_service_plans_admin_api_v1_service_plans_admin_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ServicePlanResponse"},"type":"array","title":"Response List All Service Plans Admin Api V1 Service Plans Admin All Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/service-plans/public":{"get":{"tags":["Service Plans"],"summary":"List Public Service Plans","operationId":"list_public_service_plans_api_v1_service_plans_public_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ServicePlanResponse"},"type":"array","title":"Response List Public Service Plans Api V1 Service Plans Public Get"}}}}}}},"/api/v1/service-plans/{plan_code}":{"patch":{"tags":["Service Plans"],"summary":"Patch Service Plan","operationId":"patch_service_plan_api_v1_service_plans__plan_code__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"plan_code","in":"path","required":true,"schema":{"type":"string","title":"Plan Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePlanPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/service-plans/{plan_code}/approve-limits":{"post":{"tags":["Service Plans"],"summary":"Approve Service Plan Limits","operationId":"approve_service_plan_limits_api_v1_service_plans__plan_code__approve_limits_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"plan_code","in":"path","required":true,"schema":{"type":"string","title":"Plan Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveLimitsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/policies":{"get":{"tags":["AI Admin"],"summary":"List Policies","operationId":"list_policies_api_v1_ai_policies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIPolicyListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/ai/policies/{task_type}":{"patch":{"tags":["AI Admin"],"summary":"Patch Policy","operationId":"patch_policy_api_v1_ai_policies__task_type__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_type","in":"path","required":true,"schema":{"type":"string","title":"Task Type"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIPolicyPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIPolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/budgets":{"get":{"tags":["AI Admin"],"summary":"List Budgets","operationId":"list_budgets_api_v1_ai_budgets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AICostBudgetListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["AI Admin"],"summary":"Upsert Budget","operationId":"upsert_budget_api_v1_ai_budgets_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AICostBudgetUpsertRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AICostBudgetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/ai/usage":{"get":{"tags":["AI Admin"],"summary":"Get Usage","operationId":"get_usage_api_v1_ai_usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"product_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"}},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIUsageAggregateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/limit-tenant/{tenant_id}":{"post":{"tags":["AI Admin"],"summary":"Limit Tenant","description":"AI-only kill switch for one tenant (V15 SS10.8-style, scoped to AI\nspend only): sets its AICostBudget(scope=\"tenant\") daily/monthly to 0, so\napp.services.ai.ai_cost_guard.AICostGuardService.evaluate() refuses every\nfurther call for this tenant with AI_FEATURE_LIMITED. Does not touch the\ntenant's non-AI functionality.","operationId":"limit_tenant_api_v1_ai_limit_tenant__tenant_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AILimitTenantRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AILimitTenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/health":{"get":{"tags":["AI Admin"],"summary":"Ai Health","description":"Reachability probe -- never leaks AI_ROUTER_API_KEY. Uses a plain GET\nagainst the router's base URL (no token cost) rather than a chat\ncompletion, since this endpoint may be polled.","operationId":"ai_health_api_v1_ai_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIHealthResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/public/evidence/verify":{"post":{"tags":["Public Evidence"],"summary":"Public Verify Evidence","description":"Master Plan V15 SS12.1 \"verification endpoint\": anyone holding a\nmanifest, its signature, and its key_id (all published alongside the\nevidence -- none of this is a secret) can confirm the signature is valid,\nwith NO tenant/artifact lookup and NO auth. This is deliberately the exact\nsame evidence_signing.verify() used internally by EvidenceService, so a\npublic caller gets the identical answer this backend would get itself.\nLegacy HMAC manifests (no key_id) are not verifiable here -- they were\nnever publicly verifiable and still use the tenant-scoped GET\n/evidence/{id}/verify this router has always exposed.","operationId":"public_verify_evidence_api_v1_public_evidence_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvidenceVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvidenceVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security-findings":{"get":{"tags":["Security Findings"],"summary":"List Security Findings","operationId":"list_security_findings_api_v1_security_findings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"}},{"name":"status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecurityFindingResponse"},"title":"Response List Security Findings Api V1 Security Findings Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Security Findings"],"summary":"Create Security Finding","operationId":"create_security_finding_api_v1_security_findings_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityFindingCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityFindingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security-findings/{finding_id}":{"patch":{"tags":["Security Findings"],"summary":"Update Security Finding","operationId":"update_security_finding_api_v1_security_findings__finding_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"finding_id","in":"path","required":true,"schema":{"type":"string","title":"Finding Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityFindingUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityFindingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me/health":{"get":{"tags":["Tenant"],"summary":"Get Own Tenant Health","description":"Tenant-facing (Master Plan V15 17.7): the tenant's own latest\nCustomerHealthScore, never another tenant's, and never the raw\ncomponents_json breakdown -- only the score, risk bucket and a\nlabelled narrative sentence when the AI narrative succeeded.","operationId":"get_own_tenant_health_api_v1_tenants_me_health_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantHealthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/overview":{"get":{"tags":["Owner Console"],"summary":"Get Overview","operationId":"get_overview_api_v1_owner_console_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnerConsoleOverviewResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/tenants":{"get":{"tags":["Owner Console"],"summary":"List Tenants","operationId":"list_tenants_api_v1_owner_console_tenants_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TenantListItem"},"type":"array","title":"Response List Tenants Api V1 Owner Console Tenants Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/tenants/{tenant_id}":{"get":{"tags":["Owner Console"],"summary":"Get Tenant Detail","operationId":"get_tenant_detail_api_v1_owner_console_tenants__tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Owner Console"],"summary":"Patch Tenant","operationId":"patch_tenant_api_v1_owner_console_tenants__tenant_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/tenants/{tenant_id}/internal-subscriptions":{"post":{"tags":["Owner Console"],"summary":"Grant Internal Subscriptions","operationId":"grant_internal_subscriptions_api_v1_owner_console_tenants__tenant_id__internal_subscriptions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalSubscriptionGrantRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalSubscriptionGrantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/fleet":{"get":{"tags":["Owner Console"],"summary":"Get Fleet","operationId":"get_fleet_api_v1_owner_console_fleet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FleetResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/fleet/devices/{serial}/pool":{"post":{"tags":["Owner Console"],"summary":"Set Device Pool","operationId":"set_device_pool_api_v1_owner_console_fleet_devices__serial__pool_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string","title":"Serial"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePoolUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/operations":{"get":{"tags":["Owner Console"],"summary":"Get Operations","operationId":"get_operations_api_v1_owner_console_operations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/learning":{"get":{"tags":["Owner Console"],"summary":"Get Learning","operationId":"get_learning_api_v1_owner_console_learning_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LearningResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/catalog-guide":{"get":{"tags":["Owner Console"],"summary":"Get Catalog Guide","operationId":"get_catalog_guide_api_v1_owner_console_catalog_guide_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CatalogGuideItem"},"type":"array","title":"Response Get Catalog Guide Api V1 Owner Console Catalog Guide Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/checks":{"get":{"tags":["Owner Console"],"summary":"List Checks Admin","operationId":"list_checks_admin_api_v1_owner_console_checks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"product_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"}},{"name":"check_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check Type"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorCheckResponse"},"title":"Response List Checks Admin Api V1 Owner Console Checks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Owner Console"],"summary":"Create Check Admin","operationId":"create_check_admin_api_v1_owner_console_checks_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCheckCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/checks/{check_id}":{"patch":{"tags":["Owner Console"],"summary":"Patch Check Admin","operationId":"patch_check_admin_api_v1_owner_console_checks__check_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCheckPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/checks/{check_id}/run-now":{"post":{"tags":["Owner Console"],"summary":"Run Check Now Admin","operationId":"run_check_now_admin_api_v1_owner_console_checks__check_id__run_now_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCheckRunNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/checks/{check_id}/runs":{"get":{"tags":["Owner Console"],"summary":"List Check Runs Admin","operationId":"list_check_runs_admin_api_v1_owner_console_checks__check_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"check_id","in":"path","required":true,"schema":{"type":"string","title":"Check Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorRunResponse"},"title":"Response List Check Runs Admin Api V1 Owner Console Checks  Check Id  Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/oidc/config":{"get":{"tags":["Auth OIDC"],"summary":"Oidc Config","description":"Public, minimal, always 200 (even when disabled) so the login page can\ndecide whether to render the SSO button without a 404 round-trip.","operationId":"oidc_config_api_v1_auth_oidc_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OidcConfigResponse"}}}}}}},"/api/v1/auth/oidc/start":{"get":{"tags":["Auth OIDC"],"summary":"Oidc Start","operationId":"oidc_start_api_v1_auth_oidc_start_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/oidc/callback":{"get":{"tags":["Auth OIDC"],"summary":"Oidc Callback","operationId":"oidc_callback_api_v1_auth_oidc_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/waitlist":{"post":{"tags":["Public Catalog"],"summary":"Join Waitlist","operationId":"join_waitlist_api_v1_public_waitlist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistJoinRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistJoinResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/waitlist":{"get":{"tags":["Owner Console"],"summary":"List Waitlist Admin","operationId":"list_waitlist_admin_api_v1_owner_console_waitlist_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistLeadResponse"},"title":"Response List Waitlist Admin Api V1 Owner Console Waitlist Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/waitlist/{lead_id}/status":{"patch":{"tags":["Owner Console"],"summary":"Update Waitlist Ticket Status","operationId":"update_waitlist_ticket_status_api_v1_owner_console_waitlist__lead_id__status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistTicketStatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistLeadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/worker-credentials":{"get":{"tags":["Admin: Worker Credentials"],"summary":"List Worker Credentials","operationId":"list_worker_credentials_api_v1_admin_worker_credentials_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkerCredentialOut"},"type":"array","title":"Response List Worker Credentials Api V1 Admin Worker Credentials Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin: Worker Credentials"],"summary":"Issue Worker Credential","operationId":"issue_worker_credential_api_v1_admin_worker_credentials_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerCredentialIssueRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerCredentialIssueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/worker-credentials/{key_id}/rotate":{"post":{"tags":["Admin: Worker Credentials"],"summary":"Rotate Worker Credential","operationId":"rotate_worker_credential_api_v1_admin_worker_credentials__key_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerCredentialRotateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerCredentialIssueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/worker-credentials/{key_id}/revoke":{"post":{"tags":["Admin: Worker Credentials"],"summary":"Revoke Worker Credential","operationId":"revoke_worker_credential_api_v1_admin_worker_credentials__key_id__revoke_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerCredentialRevokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerCredentialOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intake/validate":{"post":{"tags":["Service Intake"],"summary":"Validate Intake Dry Run","operationId":"validate_intake_dry_run_api_v1_intake_validate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeValidateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeValidateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intake/{subscription_id}":{"get":{"tags":["Service Intake"],"summary":"Get Intake","operationId":"get_intake_api_v1_intake__subscription_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntakeResponse"},"title":"Response Get Intake Api V1 Intake  Subscription Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Service Intake"],"summary":"Put Intake","description":"Tenant-scoped: 404s a subscription_id that isn't this tenant's own\n(cross-tenant isolation, never a 403 that confirms existence).\nRe-validates and, when the subscription is already ACTIVE, immediately\nenqueues activation -- covers the \"paid first, filled in the form later\"\npath (INTAKE_REQUIRED_AT_CHECKOUT=False, today's default).\n\nplan_code/product_code are bound to what the tenant actually paid for\n(sub.plan_code + that plan's product_code), never to whatever the client\nsends in the body -- a mismatch is a 422, not a silent override, since a\nclient-supplied plan/product here would otherwise buy a cheaper plan's\nlimits or activate a different product than the one paid for.","operationId":"put_intake_api_v1_intake__subscription_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeUpsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntakeResponse"},"title":"Response Put Intake Api V1 Intake  Subscription Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intake/{subscription_id}/status":{"get":{"tags":["Service Intake"],"summary":"Get Intake Status","operationId":"get_intake_status_api_v1_intake__subscription_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntakeResponse"},"title":"Response Get Intake Status Api V1 Intake  Subscription Id  Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workers/intake/reminders":{"post":{"tags":["Service Intake"],"summary":"Run Intake Reminders","description":"Node-scoped tick (POST /api/v1/workers/intake/reminders), called hourly by\nomega-worker (agent/tick_maintenance.run_intake_reminders_if_due): sends the\n+1h/+24h/+72h nudge for every PENDING_INTAKE row (settings.INTAKE_REMINDER_HOURS)\nand retries / times out CAPACITY_WAIT rows.","operationId":"run_intake_reminders_api_v1_workers_intake_reminders_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/intake-schema/{product_code}":{"get":{"tags":["Public"],"summary":"Get Intake Schema","operationId":"get_intake_schema_api_v1_public_intake_schema__product_code__get","parameters":[{"name":"product_code","in":"path","required":true,"schema":{"type":"string","title":"Product Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Intake Schema Api V1 Public Intake Schema  Product Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/attribution":{"get":{"tags":["Marketing"],"summary":"Marketing Attribution","operationId":"marketing_attribution_api_v1_marketing_attribution_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"product_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Product Code"}},{"name":"X-Marketing-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Marketing-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/performance":{"post":{"tags":["Marketing"],"summary":"Report Marketing Performance","description":"Record campaign metrics (impressions, clicks, spend) reported by Marketing.","operationId":"report_marketing_performance_api_v1_marketing_performance_post","parameters":[{"name":"X-Marketing-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Marketing-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceReportIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Marketing"],"summary":"Get Marketing Performance","operationId":"get_marketing_performance_api_v1_marketing_performance_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"product_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Product Code"}},{"name":"X-Marketing-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Marketing-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/qualification/cep/definition":{"get":{"tags":["Owner Console"],"summary":"Definition","operationId":"definition_api_v1_owner_console_qualification_cep_definition_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Definition Api V1 Owner Console Qualification Cep Definition Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Owner Console"],"summary":"Decide Definition","operationId":"decide_definition_api_v1_owner_console_qualification_cep_definition_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefinitionDecision"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Decide Definition Api V1 Owner Console Qualification Cep Definition Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/owner-console/qualification/cep/snapshot":{"get":{"tags":["Owner Console"],"summary":"Snapshot","operationId":"snapshot_api_v1_owner_console_qualification_cep_snapshot_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"date_from","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date From"}},{"name":"date_to","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Snapshot Api V1 Owner Console Qualification Cep Snapshot Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/owner-console/qualification/cep/reviews":{"post":{"tags":["Owner Console"],"summary":"Review","operationId":"review_api_v1_owner_console_qualification_cep_reviews_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewBatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Review Api V1 Owner Console Qualification Cep Reviews Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/lab/social/accounts":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Lab Social Accounts","operationId":"list_lab_social_accounts_api_v1_lab_social_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/LabSocialAccountResponse"},"type":"array","title":"Response List Lab Social Accounts Api V1 Lab Social Accounts Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Social Engagement Lab (Admin)"],"summary":"Connect Lab Social Account","operationId":"connect_lab_social_account_api_v1_lab_social_accounts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabSocialAccountCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabSocialAccountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/lab/app-growth/campaigns":{"post":{"tags":["Social Engagement Lab"],"summary":"Create Campaign","operationId":"create_campaign_api_v1_lab_app_growth_campaigns_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitializeCampaignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/app-growth/events":{"post":{"tags":["Social Engagement Lab"],"summary":"Record Event","operationId":"record_event_api_v1_lab_app_growth_events_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordEventRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/app-growth/cross-promote":{"post":{"tags":["Social Engagement Lab"],"summary":"Cross Promote","operationId":"cross_promote_api_v1_lab_app_growth_cross_promote_post","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossPromotionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/app-growth/buildcalc-status/{campaign_id}":{"get":{"tags":["Social Engagement Lab"],"summary":"Get Buildcalc Status","operationId":"get_buildcalc_status_api_v1_lab_app_growth_buildcalc_status__campaign_id__get","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"days_elapsed","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days Elapsed"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/experiment-templates":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Experiment Templates","operationId":"list_experiment_templates_api_v1_lab_experiment_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Experiment Templates Api V1 Lab Experiment Templates Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/lab/experiments":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Experiments","operationId":"list_experiments_api_v1_lab_experiments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabExperimentResponse"},"title":"Response List Experiments Api V1 Lab Experiments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Social Engagement Lab (Admin)"],"summary":"Create Experiment","operationId":"create_experiment_api_v1_lab_experiments_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/experiments/{experiment_id}":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"Get Experiment","operationId":"get_experiment_api_v1_lab_experiments__experiment_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","title":"Experiment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Social Engagement Lab (Admin)"],"summary":"Patch Experiment","operationId":"patch_experiment_api_v1_lab_experiments__experiment_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","title":"Experiment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Social Engagement Lab (Admin)"],"summary":"Delete Experiment","operationId":"delete_experiment_api_v1_lab_experiments__experiment_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","title":"Experiment Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/experiments/{experiment_id}/run":{"post":{"tags":["Social Engagement Lab (Admin)"],"summary":"Run Experiment","operationId":"run_experiment_api_v1_lab_experiments__experiment_id__run_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","title":"Experiment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentRunTriggerRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/runs":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Runs","operationId":"list_runs_api_v1_lab_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabExperimentRunResponse"},"title":"Response List Runs Api V1 Lab Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/runs/{run_id}":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"Get Run","operationId":"get_run_api_v1_lab_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentRunDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/runs/{run_id}/cancel":{"post":{"tags":["Social Engagement Lab (Admin)"],"summary":"Cancel Run","operationId":"cancel_run_api_v1_lab_runs__run_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabExperimentRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/measurements":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Measurements","operationId":"list_measurements_api_v1_lab_measurements_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"account_id","in":"query","required":true,"schema":{"type":"string","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabMeasurementResponse"},"title":"Response List Measurements Api V1 Lab Measurements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Social Engagement Lab (Admin)"],"summary":"Record Measurement","operationId":"record_measurement_api_v1_lab_measurements_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabMeasurementCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabMeasurementResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/audit":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Audit Events","operationId":"list_audit_events_api_v1_lab_audit_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"}},{"name":"resource_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabAuditEventResponse"},"title":"Response List Audit Events Api V1 Lab Audit Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/devices":{"get":{"tags":["Social Engagement Lab (Admin)"],"summary":"List Lab Devices","operationId":"list_lab_devices_api_v1_lab_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/LabDeviceResponse"},"type":"array","title":"Response List Lab Devices Api V1 Lab Devices Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/lab/worker/devices":{"get":{"tags":["Social Engagement Lab (Worker)"],"summary":"Worker List Devices","operationId":"worker_list_devices_api_v1_lab_worker_devices_get","parameters":[{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabWorkerDeviceResponse"},"title":"Response Worker List Devices Api V1 Lab Worker Devices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/worker/due":{"get":{"tags":["Social Engagement Lab (Worker)"],"summary":"Worker Due Runs","operationId":"worker_due_runs_api_v1_lab_worker_due_get","parameters":[{"name":"device_serial","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabWorkerDueRun"},"title":"Response Worker Due Runs Api V1 Lab Worker Due Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/worker/runs/{run_id}/steps":{"post":{"tags":["Social Engagement Lab (Worker)"],"summary":"Worker Submit Step","operationId":"worker_submit_step_api_v1_lab_worker_runs__run_id__steps_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabWorkerStepSubmit"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab/worker/runs/{run_id}/complete":{"post":{"tags":["Social Engagement Lab (Worker)"],"summary":"Worker Complete Run","operationId":"worker_complete_run_api_v1_lab_worker_runs__run_id__complete_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"X-Worker-Key-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Key-Id"}},{"name":"X-Worker-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabWorkerCompleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AICostBudgetListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AICostBudgetResponse"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AICostBudgetListResponse"},"AICostBudgetResponse":{"properties":{"id":{"type":"string","title":"Id"},"scope":{"type":"string","title":"Scope"},"scope_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Ref"},"daily_usd":{"type":"number","title":"Daily Usd"},"monthly_usd":{"type":"number","title":"Monthly Usd"},"max_concurrency":{"type":"integer","title":"Max Concurrency"},"max_tokens_per_call":{"type":"integer","title":"Max Tokens Per Call"}},"type":"object","required":["id","scope","daily_usd","monthly_usd","max_concurrency","max_tokens_per_call"],"title":"AICostBudgetResponse"},"AICostBudgetUpsertRequest":{"properties":{"scope":{"type":"string","pattern":"^(tenant|product|task|global)$","title":"Scope"},"scope_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Ref"},"daily_usd":{"type":"number","minimum":0.0,"title":"Daily Usd"},"monthly_usd":{"type":"number","minimum":0.0,"title":"Monthly Usd"},"max_concurrency":{"type":"integer","minimum":1.0,"title":"Max Concurrency","default":5},"max_tokens_per_call":{"type":"integer","minimum":1.0,"title":"Max Tokens Per Call","default":4096}},"type":"object","required":["scope","daily_usd","monthly_usd"],"title":"AICostBudgetUpsertRequest"},"AIHealthResponse":{"properties":{"ai_layer_enabled":{"type":"boolean","title":"Ai Layer Enabled"},"provider":{"type":"string","title":"Provider"},"mock_mode":{"type":"boolean","title":"Mock Mode"},"reachable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reachable"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["ai_layer_enabled","provider","mock_mode"],"title":"AIHealthResponse"},"AILimitTenantRequest":{"properties":{"reason":{"type":"string","maxLength":300,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"AILimitTenantRequest"},"AILimitTenantResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"limited":{"type":"boolean","title":"Limited"},"budget_id":{"type":"string","title":"Budget Id"}},"type":"object","required":["tenant_id","limited","budget_id"],"title":"AILimitTenantResponse"},"AIPolicyListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AIPolicyResponse"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AIPolicyListResponse"},"AIPolicyPatchRequest":{"properties":{"allowed_models":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Models"},"max_cost_usd":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Max Cost Usd"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"timeout_seconds":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Timeout Seconds"},"retry_limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Retry Limit"},"fallback_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Model"},"confidence_threshold":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence Threshold"},"pii_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pii Policy"},"structured_output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Structured Output Schema"},"allowed_input_fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Input Fields"},"optional":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Optional"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"AIPolicyPatchRequest","description":"Every field optional: only the ones present get overridden. Unset\nfields keep whatever is currently effective (DB row value if one exists,\nelse the code default)."},"AIPolicyResponse":{"properties":{"task_type":{"type":"string","title":"Task Type"},"allowed_models":{"items":{"type":"string"},"type":"array","title":"Allowed Models"},"max_cost_usd":{"type":"number","title":"Max Cost Usd"},"max_tokens":{"type":"integer","title":"Max Tokens"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"retry_limit":{"type":"integer","title":"Retry Limit"},"fallback_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Model"},"confidence_threshold":{"type":"number","title":"Confidence Threshold"},"pii_policy":{"type":"string","title":"Pii Policy"},"structured_output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Structured Output Schema"},"allowed_input_fields":{"items":{"type":"string"},"type":"array","title":"Allowed Input Fields"},"optional":{"type":"boolean","title":"Optional"},"enabled":{"type":"boolean","title":"Enabled"},"source":{"type":"string","title":"Source"}},"type":"object","required":["task_type","allowed_models","max_cost_usd","max_tokens","timeout_seconds","retry_limit","confidence_threshold","pii_policy","allowed_input_fields","optional","enabled","source"],"title":"AIPolicyResponse"},"AIUsageAggregateResponse":{"properties":{"total_cost_usd":{"type":"number","title":"Total Cost Usd"},"total_calls":{"type":"integer","title":"Total Calls"},"total_input_tokens":{"type":"integer","title":"Total Input Tokens"},"total_output_tokens":{"type":"integer","title":"Total Output Tokens"},"degraded_count":{"type":"integer","title":"Degraded Count"},"limited_count":{"type":"integer","title":"Limited Count"},"succeeded_count":{"type":"integer","title":"Succeeded Count"},"from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},"type":"object","required":["total_cost_usd","total_calls","total_input_tokens","total_output_tokens","degraded_count","limited_count","succeeded_count"],"title":"AIUsageAggregateResponse"},"AdminCheckCreateRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"check_type":{"type":"string","title":"Check Type"},"target":{"type":"string","title":"Target"},"country_code":{"type":"string","title":"Country Code","default":"CR"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"frequency_minutes":{"type":"integer","title":"Frequency Minutes","default":15},"timeout_seconds":{"type":"integer","title":"Timeout Seconds","default":30},"max_latency_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Latency Seconds"},"failure_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Threshold"},"alert_telegram_chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Telegram Chat Id"},"alert_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Email"},"forward_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Webhook Url"},"forward_slack_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Slack Webhook Url"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"authorized_senders_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorized Senders Json"},"correlation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Token"},"expected_window_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Window Seconds"}},"type":"object","required":["tenant_id","name","check_type","target"],"title":"AdminCheckCreateRequest"},"AdminCheckPatchRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"frequency_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Frequency Minutes"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"authorized_senders_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorized Senders Json"},"paused_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Reason"}},"type":"object","title":"AdminCheckPatchRequest"},"AdminCheckRunNowResponse":{"properties":{"id":{"type":"string","title":"Id"},"next_due_at":{"type":"string","format":"date-time","title":"Next Due At"}},"type":"object","required":["id","next_due_at"],"title":"AdminCheckRunNowResponse"},"AdmissionDecisionResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"product_code":{"type":"string","title":"Product Code"},"requested_json":{"additionalProperties":true,"type":"object","title":"Requested Json"},"safe_available_json":{"additionalProperties":true,"type":"object","title":"Safe Available Json"},"decision":{"type":"string","title":"Decision"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","product_code","requested_json","safe_available_json","decision","created_at"],"title":"AdmissionDecisionResponse"},"AdmissionEvaluateRequest":{"properties":{"product_code":{"type":"string","title":"Product Code"},"requested":{"additionalProperties":true,"type":"object","title":"Requested"}},"type":"object","required":["product_code","requested"],"title":"AdmissionEvaluateRequest"},"ApiKeyCreate":{"properties":{"name":{"type":"string","title":"Name"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"}},"type":"object","required":["name"],"title":"ApiKeyCreate"},"ApiKeyCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"key":{"type":"string","title":"Key"},"scopes_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","name","key_prefix","key","created_at"],"title":"ApiKeyCreateResponse","description":"Returned only once, at creation time. `key` is the full secret; it is never\nretrievable again (only key_hash is persisted)."},"ApiKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"scopes_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes Json"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","name","key_prefix","last_used_at","revoked_at","created_at"],"title":"ApiKeyResponse"},"ApproveIdentityRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"proposal_id":{"type":"string","title":"Proposal Id"},"assigned_device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned Device Id"}},"type":"object","required":["tenant_id","proposal_id"],"title":"ApproveIdentityRequest"},"ApproveLimitsResponse":{"properties":{"plan_code":{"type":"string","title":"Plan Code"},"limits_status":{"type":"string","title":"Limits Status"},"is_public":{"type":"boolean","title":"Is Public"},"sellable":{"type":"boolean","title":"Sellable"}},"type":"object","required":["plan_code","limits_status","is_public","sellable"],"title":"ApproveLimitsResponse"},"AssetCreate":{"properties":{"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category","default":"other"},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"purchase_date":{"type":"string","format":"date-time","title":"Purchase Date"},"cost_usd":{"type":"number","title":"Cost Usd"},"useful_life_months":{"type":"integer","title":"Useful Life Months","default":18},"salvage_usd":{"type":"number","title":"Salvage Usd","default":0.0},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","purchase_date","cost_usd"],"title":"AssetCreate"},"AuditCreate":{"properties":{"domain_or_brand":{"type":"string","title":"Domain Or Brand"},"contact_email":{"type":"string","format":"email","title":"Contact Email"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","default":"Costa Rica"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","default":"es"},"social_links_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Social Links Json"}},"type":"object","required":["domain_or_brand","contact_email"],"title":"AuditCreate"},"AuditEventBrief":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"actor_type":{"type":"string","title":"Actor Type"},"actor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Id"},"action":{"type":"string","title":"Action"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","actor_type","action","created_at"],"title":"AuditEventBrief"},"AuditResponse":{"properties":{"id":{"type":"string","title":"Id"},"domain_or_brand":{"type":"string","title":"Domain Or Brand"},"contact_email":{"type":"string","title":"Contact Email"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"status":{"type":"string","title":"Status"},"social_links_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Social Links Json"},"report_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Report Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","domain_or_brand","contact_email","industry","country","language","score","status","social_links_json","report_json","created_at"],"title":"AuditResponse"},"BacktestActivityGroup":{"properties":{"product_code":{"type":"string","title":"Product Code"},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"},"status":{"type":"string","title":"Status"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["product_code","status","count"],"title":"BacktestActivityGroup"},"BestRecoveryResponse":{"properties":{"fingerprint":{"type":"string","title":"Fingerprint"},"steps":{"items":{"$ref":"#/components/schemas/RecoveryStepStat"},"type":"array","title":"Steps"},"best_recovery_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Best Recovery Step"},"ladder":{"items":{"type":"string"},"type":"array","title":"Ladder"}},"type":"object","required":["fingerprint","steps","best_recovery_step","ladder"],"title":"BestRecoveryResponse"},"BillingInvoiceItem":{"properties":{"id":{"type":"string","title":"Id"},"subscription_id":{"type":"string","title":"Subscription Id"},"plan_code":{"type":"string","title":"Plan Code"},"status":{"type":"string","title":"Status"},"provider":{"type":"string","title":"Provider"},"provider_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Reference"},"amount_usd":{"type":"number","title":"Amount Usd"},"period_start":{"type":"string","title":"Period Start"},"period_end":{"type":"string","title":"Period End"},"source":{"type":"string","title":"Source","default":"derived"}},"type":"object","required":["id","subscription_id","plan_code","status","provider","amount_usd","period_start","period_end"],"title":"BillingInvoiceItem","description":"GET /billing/invoices row (client dashboard v2, worker D-5). This\ncodebase has no Invoice/receipt model of its own (checked: only\nSubscription + the BillingEvent ledger exist) -- one row per Subscription\nthe tenant owns, representing its CURRENT billing period only, never a\nhistorical invoice list. `source=\"derived\"` always, on every row, so the\ndashboard never mistakes this for a real invoicing ledger; amounts are\nalways Subscription.amount_usd, never invented."},"BillingWarning":{"properties":{"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Id"},"plan_code":{"type":"string","title":"Plan Code"},"status":{"type":"string","title":"Status"},"past_due_since":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Past Due Since"},"grace_period_ends_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grace Period Ends At"},"grace_expired":{"type":"boolean","title":"Grace Expired","default":false}},"type":"object","required":["plan_code","status"],"title":"BillingWarning","description":"One Subscription currently inside (or past) its grace period,\nsurfaced to the owning tenant as a warning (V15 14.5 'allowed with a\nwarning flag' during grace)."},"BillingWarningsResponse":{"properties":{"warnings":{"items":{"$ref":"#/components/schemas/BillingWarning"},"type":"array","title":"Warnings"}},"type":"object","required":["warnings"],"title":"BillingWarningsResponse"},"CatalogGuideItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"name":{"type":"string","title":"Name"},"family":{"type":"string","title":"Family"},"price_monthly_usd":{"type":"number","title":"Price Monthly Usd"},"founder_price_monthly_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Founder Price Monthly Usd"},"standard_price_monthly_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Standard Price Monthly Usd"},"includes":{"items":{"type":"string"},"type":"array","title":"Includes"},"excludes":{"items":{"type":"string"},"type":"array","title":"Excludes"},"v15_catalog":{"type":"boolean","title":"V15 Catalog"},"gate_state":{"type":"string","title":"Gate State"},"sellable_eligible":{"type":"boolean","title":"Sellable Eligible"},"reason_es":{"type":"string","title":"Reason Es"}},"type":"object","required":["product_code","name","family","price_monthly_usd","includes","excludes","v15_catalog","gate_state","sellable_eligible","reason_es"],"title":"CatalogGuideItem"},"CheckoutResponse":{"properties":{"checkout_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Id"},"checkout_url":{"type":"string","title":"Checkout Url"},"provider":{"type":"string","title":"Provider"}},"additionalProperties":true,"type":"object","required":["checkout_url","provider"],"title":"CheckoutResponse","description":"Mirrors the P2/P3 contract: BillingService.initiate_checkout(...)\nreturns {\"checkout_id\", \"checkout_url\", \"provider\"} once P3 lands it --\nextra=allow so an adapter that returns additional debug fields (the\nSimulated/Mock adapter today) still validates."},"CheckoutStatusResponse":{"properties":{"status":{"type":"string","title":"Status"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Id"}},"type":"object","required":["status"],"title":"CheckoutStatusResponse","description":"GET /billing/checkout/{checkout_id} -- the success page polls this.\nstatus is one of pending|paid|active|cancelled|failed per the P2/P3\ncontract (BillingService.get_checkout_status)."},"CommentItem":{"properties":{"comment_id":{"type":"string","title":"Comment Id"},"author":{"type":"string","title":"Author"},"text":{"type":"string","title":"Text"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["comment_id","author","text"],"title":"CommentItem"},"CompanyImportRequest":{"properties":{"format":{"type":"string","enum":["csv","json"],"title":"Format"},"content":{"type":"string","title":"Content"}},"type":"object","required":["format","content"],"title":"CompanyImportRequest"},"CompanyImportResponse":{"properties":{"created":{"type":"integer","title":"Created"},"skipped_duplicate":{"type":"integer","title":"Skipped Duplicate"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"}},"type":"object","required":["created","skipped_duplicate","errors"],"title":"CompanyImportResponse"},"ComplianceReportGenerate":{"properties":{"check_id":{"type":"string","title":"Check Id"},"period":{"type":"string","title":"Period"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"type":"object","required":["check_id","period"],"title":"ComplianceReportGenerate"},"ComplianceReportManifestResponse":{"properties":{"report_id":{"type":"string","title":"Report Id"},"seal_sha256":{"type":"string","title":"Seal Sha256"},"signature_status":{"type":"string","title":"Signature Status"},"unsigned_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unsigned Reason"},"manifest":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Manifest"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Algorithm"},"canonicalization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonicalization"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"signed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed At"},"verification_endpoint":{"type":"string","title":"Verification Endpoint"}},"type":"object","required":["report_id","seal_sha256","signature_status","verification_endpoint"],"title":"ComplianceReportManifestResponse","description":"GET /compliance/reports/{id}/manifest.json: the signed bundle manifest\nready for the public verifier -- POST {manifest, signature, key_id} to\nverification_endpoint. manifest/signature are None for an unsigned or\npre-signing report (signature_status says which)."},"ComplianceReportResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"check_id":{"type":"string","title":"Check Id"},"period":{"type":"string","title":"Period"},"country_code":{"type":"string","title":"Country Code"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"totals_json":{"additionalProperties":true,"type":"object","title":"Totals Json"},"sha256":{"type":"string","title":"Sha256"},"storage_path":{"type":"string","title":"Storage Path"},"status":{"type":"string","title":"Status"},"manifest_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Manifest Json"}},"type":"object","required":["id","tenant_id","check_id","period","country_code","generated_at","totals_json","sha256","storage_path","status"],"title":"ComplianceReportResponse"},"ComplianceReportVerifyResponse":{"properties":{"report_id":{"type":"string","title":"Report Id"},"sha256":{"type":"string","title":"Sha256"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"reason":{"type":"string","title":"Reason"},"signature_status":{"type":"string","title":"Signature Status"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"run_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Run Count"}},"type":"object","required":["report_id","sha256","verified","reason","signature_status"],"title":"ComplianceReportVerifyResponse"},"ConsentReportCmp":{"properties":{"latest_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Name"},"latest_showing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Latest Showing"},"names_seen":{"items":{"$ref":"#/components/schemas/ConsentReportCmpSeen"},"type":"array","title":"Names Seen","default":[]}},"type":"object","title":"ConsentReportCmp"},"ConsentReportCmpSeen":{"properties":{"name":{"type":"string","title":"Name"},"runs_seen":{"type":"integer","title":"Runs Seen"}},"type":"object","required":["name","runs_seen"],"title":"ConsentReportCmpSeen"},"ConsentReportCookies":{"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"},"names":{"items":{"type":"string"},"type":"array","title":"Names","default":[]}},"type":"object","title":"ConsentReportCookies"},"ConsentReportEvidence":{"properties":{"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"}},"type":"object","title":"ConsentReportEvidence"},"ConsentReportOptionsAvailable":{"properties":{"latest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Latest"}},"type":"object","title":"ConsentReportOptionsAvailable"},"ConsentReportPeriod":{"properties":{"first_ran_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Ran At"},"last_ran_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Ran At"}},"type":"object","title":"ConsentReportPeriod"},"ConsentReportRejectAvailable":{"properties":{"latest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Latest"},"rate_of_runs_with_banner":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate Of Runs With Banner"},"options_only_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Options Only Rate"}},"type":"object","title":"ConsentReportRejectAvailable"},"ConsentReportThirdPartyDomain":{"properties":{"domain":{"type":"string","title":"Domain"},"runs_seen":{"type":"integer","title":"Runs Seen"}},"type":"object","required":["domain","runs_seen"],"title":"ConsentReportThirdPartyDomain"},"ConsentReportVerdict":{"properties":{"code":{"type":"string","title":"Code"},"rule":{"type":"string","title":"Rule"},"verdict":{"type":"string","title":"Verdict"},"explanation":{"type":"string","title":"Explanation"}},"type":"object","required":["code","rule","verdict","explanation"],"title":"ConsentReportVerdict"},"ContentPlanRequest":{"properties":{"topic":{"type":"string","title":"Topic"},"target_audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Audience"},"tone":{"type":"string","title":"Tone","default":"engaging"},"platforms":{"items":{"type":"string"},"type":"array","title":"Platforms","default":["instagram","tiktok","youtube"]}},"type":"object","required":["topic"],"title":"ContentPlanRequest"},"ContentPlanResponse":{"properties":{"topic":{"type":"string","title":"Topic"},"tone":{"type":"string","title":"Tone"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"posts":{"items":{"$ref":"#/components/schemas/PlatformPostDraft"},"type":"array","title":"Posts"}},"type":"object","required":["topic","tone","generated_at","posts"],"title":"ContentPlanResponse"},"CorridorResponse":{"properties":{"id":{"type":"string","title":"Id"},"code":{"type":"string","title":"Code"},"number_country":{"type":"string","title":"Number Country"},"carrier_code":{"type":"string","title":"Carrier Code"},"physical_country":{"type":"string","title":"Physical Country"},"network_context":{"type":"string","title":"Network Context"},"access_method":{"type":"string","title":"Access Method"},"status":{"type":"string","title":"Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"honesty_label":{"type":"string","title":"Honesty Label"}},"type":"object","required":["id","code","number_country","carrier_code","physical_country","network_context","access_method","status","honesty_label"],"title":"CorridorResponse"},"CorridorStatusUpdateRequest":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"CorridorStatusUpdateRequest"},"CrossPromotionRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"source_app_package":{"type":"string","title":"Source App Package"},"target_app_package":{"type":"string","title":"Target App Package"}},"type":"object","required":["tenant_id","source_app_package","target_app_package"],"title":"CrossPromotionRequest"},"CustomerHealthScoreResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"score":{"type":"number","title":"Score"},"components_json":{"additionalProperties":true,"type":"object","title":"Components Json"},"churn_risk_level":{"type":"string","title":"Churn Risk Level"},"narrative_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Narrative Json"}},"type":"object","required":["id","tenant_id","computed_at","score","components_json","churn_risk_level"],"title":"CustomerHealthScoreResponse"},"CustomerPortalRequest":{"properties":{"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url"}},"type":"object","title":"CustomerPortalRequest"},"CustomerPortalResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"CustomerPortalResponse"},"DefinitionDecision":{"properties":{"definition_ref":{"type":"string","maxLength":71,"title":"Definition Ref"},"decision":{"type":"string","pattern":"^(APPROVED|REVOKED)$","title":"Decision"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"additionalProperties":false,"type":"object","required":["definition_ref","decision","expires_at"],"title":"DefinitionDecision"},"DeviceCapabilitiesResponse":{"properties":{"device_id":{"type":"string","title":"Device Id"},"capabilities":{"additionalProperties":true,"type":"object","title":"Capabilities"}},"type":"object","required":["device_id","capabilities"],"title":"DeviceCapabilitiesResponse"},"DeviceCapabilitiesUpdateRequest":{"properties":{"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"carrier_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carrier Code"},"sim_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sim Present"},"sms_receive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sms Receive"},"call_log_receive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Call Log Receive"},"cellular_data":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cellular Data"},"wifi":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Wifi"},"egress_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Egress Type"},"public_ip_observed":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Ip Observed"},"network_generation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Generation"},"device_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Tier"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"hardware_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hardware Serial"},"worker_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Worker Node Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"DeviceCapabilitiesUpdateRequest","description":"Worker-reported capabilities (V13 15). All fields optional; only sent ones are applied.\nCreates the Device (status AVAILABLE) if the serial is unknown."},"DeviceHealthReadingRequest":{"properties":{"battery_pct":{"type":"integer","title":"Battery Pct"},"temperature_c":{"type":"number","title":"Temperature C"},"charging":{"type":"boolean","title":"Charging"},"storage_free_gb":{"type":"number","title":"Storage Free Gb"},"uptime_s":{"type":"integer","title":"Uptime S"},"adb_ok":{"type":"boolean","title":"Adb Ok"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"usb_ok":{"type":"boolean","title":"Usb Ok"},"crash_count":{"type":"integer","title":"Crash Count"},"reboot_count":{"type":"integer","title":"Reboot Count"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["battery_pct","temperature_c","charging","storage_free_gb","uptime_s","adb_ok","usb_ok","crash_count","reboot_count"],"title":"DeviceHealthReadingRequest"},"DeviceHealthResponse":{"properties":{"health_score":{"type":"integer","title":"Health Score"},"status":{"type":"string","title":"Status"}},"type":"object","required":["health_score","status"],"title":"DeviceHealthResponse"},"DeviceHeartbeatRequest":{"properties":{"battery_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Level"},"temperature_celsius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature Celsius"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"DeviceHeartbeatRequest"},"DevicePatchRequest":{"properties":{"dedicated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dedicated"},"dedicated_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dedicated Tenant Id"},"pool":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pool"},"device_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Tier"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"DevicePatchRequest","description":"Admin-only partial update (§45 Human ladder step: e.g. QUARANTINED -> AVAILABLE)."},"DevicePoolUpdateRequest":{"properties":{"pool":{"type":"string","title":"Pool"}},"type":"object","required":["pool"],"title":"DevicePoolUpdateRequest"},"DeviceRegisterRequest":{"properties":{"serial":{"type":"string","title":"Serial"},"name":{"type":"string","title":"Name"},"device_type":{"type":"string","title":"Device Type","default":"emulator"},"os_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Version"},"worker_node_id":{"type":"string","title":"Worker Node Id","default":"omega-linux-cr"},"capabilities_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Capabilities Json"}},"type":"object","required":["serial","name"],"title":"DeviceRegisterRequest"},"DeviceRenameRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"DeviceRenameRequest"},"DeviceResponse":{"properties":{"id":{"type":"string","title":"Id"},"serial":{"type":"string","title":"Serial"},"name":{"type":"string","title":"Name"},"device_type":{"type":"string","title":"Device Type"},"status":{"type":"string","title":"Status"},"os_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Version"},"battery_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Level"},"temperature_celsius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature Celsius"},"worker_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Worker Node Id"},"last_heartbeat_at":{"type":"string","format":"date-time","title":"Last Heartbeat At"},"capabilities_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Capabilities Json"},"platform":{"type":"string","title":"Platform"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"carrier_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carrier Code"},"sim_present":{"type":"boolean","title":"Sim Present","default":false},"sms_receive":{"type":"boolean","title":"Sms Receive","default":false},"cellular_data":{"type":"boolean","title":"Cellular Data","default":false},"wifi":{"type":"boolean","title":"Wifi","default":true},"egress_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Egress Type"},"public_ip_observed":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Ip Observed"},"network_generation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Generation"},"device_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Tier"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"dedicated":{"type":"boolean","title":"Dedicated","default":false},"dedicated_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dedicated Tenant Id"},"pool":{"type":"string","title":"Pool"},"health_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Health Score"},"health_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Health Json"},"needs_sanitization":{"type":"boolean","title":"Needs Sanitization","default":false},"capabilities_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Capabilities Updated At"}},"type":"object","required":["id","serial","name","device_type","status","os_version","battery_level","temperature_celsius","worker_node_id","last_heartbeat_at","capabilities_json","platform","pool"],"title":"DeviceResponse"},"DiscoverDeviceRequest":{"properties":{"device_id":{"type":"string","title":"Device Id"},"serial":{"type":"string","title":"Serial"},"manufacturer":{"type":"string","title":"Manufacturer","default":"POCO"},"model":{"type":"string","title":"Model","default":"C71"},"android_version":{"type":"string","title":"Android Version","default":"14"},"ram_mb":{"type":"integer","title":"Ram Mb","default":4096},"storage_gb":{"type":"integer","title":"Storage Gb","default":128}},"type":"object","required":["device_id","serial"],"title":"DiscoverDeviceRequest"},"DomainVerificationCheckRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"DomainVerificationCheckRequest"},"DomainVerificationCheckResponse":{"properties":{"domain":{"type":"string","title":"Domain"},"status":{"type":"string","title":"Status"},"verified":{"type":"boolean","title":"Verified"}},"type":"object","required":["domain","status","verified"],"title":"DomainVerificationCheckResponse"},"DomainVerificationStartRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"DomainVerificationStartRequest"},"DomainVerificationStartResponse":{"properties":{"domain":{"type":"string","title":"Domain"},"txt_record_name":{"type":"string","title":"Txt Record Name"},"txt_record_value":{"type":"string","title":"Txt Record Value"},"status":{"type":"string","title":"Status"}},"type":"object","required":["domain","txt_record_name","txt_record_value","status"],"title":"DomainVerificationStartResponse"},"ErrorIngestRequest":{"properties":{"error_type":{"type":"string","title":"Error Type"},"subsystem":{"type":"string","title":"Subsystem"},"normalized_stack":{"type":"string","title":"Normalized Stack"},"workflow_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Step"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Code"},"severity":{"type":"string","title":"Severity","default":"P3"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"symptoms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symptoms"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},"type":"object","required":["error_type","subsystem","normalized_stack"],"title":"ErrorIngestRequest"},"ErrorIngestResponse":{"properties":{"error_record_id":{"type":"string","title":"Error Record Id"},"fingerprint":{"type":"string","title":"Fingerprint"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"policy_case":{"type":"string","title":"Policy Case"},"best_recovery_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Best Recovery Step"}},"type":"object","required":["error_record_id","fingerprint","occurrence_count","policy_case"],"title":"ErrorIngestResponse"},"ErrorRecordBrief":{"properties":{"id":{"type":"string","title":"Id"},"fingerprint":{"type":"string","title":"Fingerprint"},"subsystem":{"type":"string","title":"Subsystem"},"severity":{"type":"string","title":"Severity"},"status":{"type":"string","title":"Status"},"release_blocked":{"type":"boolean","title":"Release Blocked"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"last_seen_at":{"type":"string","format":"date-time","title":"Last Seen At"}},"type":"object","required":["id","fingerprint","subsystem","severity","status","release_blocked","occurrence_count","last_seen_at"],"title":"ErrorRecordBrief"},"ErrorRecordResponse":{"properties":{"id":{"type":"string","title":"Id"},"fingerprint":{"type":"string","title":"Fingerprint"},"parent_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Fingerprint"},"error_type":{"type":"string","title":"Error Type"},"subsystem":{"type":"string","title":"Subsystem"},"workflow_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Step"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Code"},"severity":{"type":"string","title":"Severity"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"symptoms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symptoms"},"first_seen_at":{"type":"string","format":"date-time","title":"First Seen At"},"last_seen_at":{"type":"string","format":"date-time","title":"Last Seen At"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"root_cause":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Cause"},"corrective_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrective Action"},"preventive_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preventive Action"},"regression_test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regression Test Id"},"regression_not_viable_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regression Not Viable Reason"},"runbook_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runbook Id"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"status":{"type":"string","title":"Status"},"release_blocked":{"type":"boolean","title":"Release Blocked"},"fixed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Fixed At"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"requires_rca":{"type":"boolean","title":"Requires Rca"}},"type":"object","required":["id","fingerprint","parent_fingerprint","error_type","subsystem","workflow_step","failure_code","severity","environment","device_serial","workflow_version","symptoms","first_seen_at","last_seen_at","occurrence_count","root_cause","corrective_action","preventive_action","regression_test_id","regression_not_viable_reason","runbook_id","owner","status","release_blocked","fixed_at","verified_at","requires_rca"],"title":"ErrorRecordResponse"},"ErrorRecordUpdate":{"properties":{"root_cause":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Root Cause"},"corrective_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrective Action"},"preventive_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preventive Action"},"runbook_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runbook Id"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"regression_not_viable_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Regression Not Viable Reason"}},"type":"object","title":"ErrorRecordUpdate"},"EvidenceArtifactSummary":{"properties":{"id":{"type":"string","title":"Id"},"file_name":{"type":"string","title":"File Name"},"artifact_type":{"type":"string","title":"Artifact Type"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"file_size_bytes":{"type":"integer","title":"File Size Bytes"}},"type":"object","required":["id","file_name","artifact_type","sha256","file_size_bytes"],"title":"EvidenceArtifactSummary"},"EvidenceItemIn":{"properties":{"path":{"type":"string","title":"Path"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bytes"},"kind":{"type":"string","title":"Kind","default":"log"},"captured_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Captured At"}},"type":"object","required":["path"],"title":"EvidenceItemIn"},"EvidenceKeysResponse":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/EvidencePublicKeyOut"},"type":"array","title":"Keys"}},"type":"object","required":["keys"],"title":"EvidenceKeysResponse"},"EvidenceListItem":{"properties":{"id":{"type":"string","title":"Id"},"file_name":{"type":"string","title":"File Name"},"artifact_type":{"type":"string","title":"Artifact Type"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"file_size_bytes":{"type":"integer","title":"File Size Bytes"},"captured_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Captured At"},"integrity_status":{"type":"string","title":"Integrity Status"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"check_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check Id"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"run_signature_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Signature Status"}},"type":"object","required":["id","file_name","artifact_type","file_size_bytes","integrity_status"],"title":"EvidenceListItem","description":"One row of GET /evidence (client dashboard v2, worker D-5) -- either a\nreal Artifact registry row or a derived entry synthesized from a\nMonitorRun.evidence_json item (see EvidenceService.list_evidence). The two\nsources share this exact shape so the dashboard never has to special-case\none over the other; job_id is only ever populated for the former,\ncheck_id/run_id only ever for the latter."},"EvidenceListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EvidenceListItem"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"EvidenceListResponse"},"EvidenceManifestResponse":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"execution_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Execution Id"},"artifact_type":{"type":"string","title":"Artifact Type"},"file_name":{"type":"string","title":"File Name"},"storage_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storage Path"},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Url"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"file_size_bytes":{"type":"integer","title":"File Size Bytes"},"captured_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Captured At"},"signature":{"type":"string","title":"Signature"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Algorithm"},"canonicalization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonicalization"},"verification_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Endpoint"}},"type":"object","required":["artifact_id","tenant_id","artifact_type","file_name","file_size_bytes","signature"],"title":"EvidenceManifestResponse","description":"Shared shape for both signing generations (Master Plan V15 SS12.1):\nlegacy HMAC rows never carry manifest_sha256/key_id/canonicalization/\nverification_endpoint/storage_path/public_url (those fields did not exist\nyet when they were signed) -- all Optional so both shapes validate."},"EvidencePublicKeyOut":{"properties":{"key_id":{"type":"string","title":"Key Id"},"algorithm":{"type":"string","title":"Algorithm"},"public_key_b64":{"type":"string","title":"Public Key B64"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["key_id","algorithm","public_key_b64"],"title":"EvidencePublicKeyOut"},"EvidenceRegisterRequest":{"properties":{"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"execution_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Execution Id"},"items":{"items":{"$ref":"#/components/schemas/EvidenceItemIn"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"EvidenceRegisterRequest"},"EvidenceRegisterResponse":{"properties":{"artifacts":{"items":{"$ref":"#/components/schemas/EvidenceArtifactSummary"},"type":"array","title":"Artifacts"}},"type":"object","required":["artifacts"],"title":"EvidenceRegisterResponse"},"EvidenceVerifyResponse":{"properties":{"artifact_id":{"type":"string","title":"Artifact Id"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"recomputed_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recomputed Sha256"},"reason":{"type":"string","title":"Reason"},"manifest_signature_valid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Manifest Signature Valid"},"manifest_algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Algorithm"},"integrity_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integrity Status"},"is_publishable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Publishable"}},"type":"object","required":["artifact_id","verified","recomputed_sha256","reason"],"title":"EvidenceVerifyResponse"},"ExecuteProvisioningRequest":{"properties":{"device_id":{"type":"string","title":"Device Id"},"template_code":{"type":"string","title":"Template Code"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"sim_iccid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sim Iccid"},"identity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Id"}},"type":"object","required":["device_id","template_code"],"title":"ExecuteProvisioningRequest"},"ExpenseCreate":{"properties":{"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"period_month":{"type":"string","pattern":"^\\d{4}-\\d{2}$","title":"Period Month"},"category_code":{"type":"string","title":"Category Code"},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"amount_usd":{"type":"number","title":"Amount Usd"},"currency":{"type":"string","title":"Currency","default":"USD"},"fx_rate_to_usd":{"type":"number","title":"Fx Rate To Usd","default":1.0},"description":{"type":"string","title":"Description"},"source":{"type":"string","title":"Source","default":"manual"},"source_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Ref"},"allocation_dimension":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allocation Dimension"},"allocation_target_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allocation Target Id"},"evidence_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Ref"}},"type":"object","required":["occurred_at","period_month","category_code","amount_usd","description"],"title":"ExpenseCreate"},"FleetResponse":{"properties":{"devices":{"items":{"$ref":"#/components/schemas/OverviewDeviceItem"},"type":"array","title":"Devices"},"corridors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Corridors"},"numbers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Numbers"},"maintenance_windows_active":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Maintenance Windows Active"},"admission_capacity":{"additionalProperties":{"type":"number"},"type":"object","title":"Admission Capacity"},"number_assignments":{"items":{"$ref":"#/components/schemas/NumberAssignmentBrief"},"type":"array","title":"Number Assignments"}},"type":"object","required":["devices","corridors","numbers","maintenance_windows_active","admission_capacity","number_assignments"],"title":"FleetResponse"},"ForgeTriggerRequest":{"properties":{"serial":{"type":"string","title":"Serial"},"platforms":{"items":{"type":"string"},"type":"array","title":"Platforms","default":["google","facebook","instagram","tiktok","whatsapp"]},"rotate_ip":{"type":"boolean","title":"Rotate Ip","default":true},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender","default":"M"},"province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Province"},"canton":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canton"},"archetype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Archetype"},"min_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Age","default":21},"max_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Age","default":42},"cdp_port":{"type":"integer","title":"Cdp Port","default":9222}},"type":"object","required":["serial"],"title":"ForgeTriggerRequest"},"FunnelMetricsResponse":{"properties":{"period":{"type":"string","title":"Period"},"stage_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Stage Counts"},"lead_to_qualified":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lead To Qualified"},"qualified_to_trial":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Qualified To Trial"},"trial_to_paid":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trial To Paid"},"lead_to_paid":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lead To Paid"},"arpa_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Arpa Usd"},"churn":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Churn"},"expansion_revenue_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expansion Revenue Usd"}},"type":"object","required":["period","stage_counts"],"title":"FunnelMetricsResponse"},"GateSummaryItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"state":{"type":"string","title":"State"},"sellable_eligible":{"type":"boolean","title":"Sellable Eligible"},"eligibility_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Reason"},"qualified_backtest_runs":{"type":"integer","title":"Qualified Backtest Runs"},"backtest_runs_required":{"type":"integer","title":"Backtest Runs Required"},"autonomy_measured":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Autonomy Measured"},"min_autonomy":{"type":"number","title":"Min Autonomy"},"real_world_samples_observed":{"type":"integer","title":"Real World Samples Observed"},"real_world_samples_required":{"type":"integer","title":"Real World Samples Required"},"stop_new_sales":{"type":"boolean","title":"Stop New Sales"}},"type":"object","required":["product_code","state","sellable_eligible","qualified_backtest_runs","backtest_runs_required","min_autonomy","real_world_samples_observed","real_world_samples_required","stop_new_sales"],"title":"GateSummaryItem","description":"Mirrors app.schemas.product_gate.ProductGateResponse's fields that\nmatter for an at-a-glance owner view; the full gate is available at\nGET /owner-console/catalog-guide or GET /product-gates."},"GracePeriodEnforcementResponse":{"properties":{"checked_at":{"type":"string","title":"Checked At"},"grace_expired_count":{"type":"integer","title":"Grace Expired Count"},"tenants_new_jobs_stopped":{"items":{"type":"string"},"type":"array","title":"Tenants New Jobs Stopped"},"canceled_at_period_end_count":{"type":"integer","title":"Canceled At Period End Count"},"tenants_canceled":{"items":{"type":"string"},"type":"array","title":"Tenants Canceled"},"trials_expired_count":{"type":"integer","title":"Trials Expired Count","default":0},"tenants_trial_expired":{"items":{"type":"string"},"type":"array","title":"Tenants Trial Expired","default":[]}},"type":"object","required":["checked_at","grace_expired_count","tenants_new_jobs_stopped","canceled_at_period_end_count","tenants_canceled"],"title":"GracePeriodEnforcementResponse","description":"V15 14.5/14.6: response of the periodic BillingService.enforce_grace_periods\nsweep -- see docs/products/BILLING_READINESS_2026-09-03.md's V15 addendum\nfor the worker upkeep hook this is meant to be called from."},"GroupActionRequest":{"properties":{"target_device_ids":{"items":{"type":"string"},"type":"array","uniqueItems":true,"title":"Target Device Ids","description":"Set of target device IDs"},"action":{"$ref":"#/components/schemas/WorkflowActionType"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Id"}},"type":"object","required":["target_device_ids","action"],"title":"GroupActionRequest"},"GroupActionResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"total_devices":{"type":"integer","title":"Total Devices"},"results":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Results"}},"type":"object","required":["success","total_devices","results"],"title":"GroupActionResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IncidentBrief":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"subsystem":{"type":"string","title":"Subsystem"},"severity":{"type":"string","title":"Severity"},"status":{"type":"string","title":"Status"},"opened_at":{"type":"string","format":"date-time","title":"Opened At"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"}},"type":"object","required":["id","title","subsystem","severity","status","opened_at"],"title":"IncidentBrief"},"IncidentCloseRequest":{"properties":{"rca":{"additionalProperties":{"type":"string"},"type":"object","title":"Rca"}},"type":"object","required":["rca"],"title":"IncidentCloseRequest","description":"The 10 mandatory RCA fields (Master Plan V13 SS40), any casing on keys."},"IncidentCreate":{"properties":{"title":{"type":"string","title":"Title"},"subsystem":{"type":"string","title":"Subsystem"},"severity":{"type":"string","title":"Severity","default":"P2"},"error_record_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Record Id"}},"type":"object","required":["title","subsystem"],"title":"IncidentCreate"},"IncidentResponse":{"properties":{"id":{"type":"string","title":"Id"},"error_record_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Record Id"},"title":{"type":"string","title":"Title"},"subsystem":{"type":"string","title":"Subsystem"},"severity":{"type":"string","title":"Severity"},"status":{"type":"string","title":"Status"},"opened_at":{"type":"string","format":"date-time","title":"Opened At"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"},"rca_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rca Json"}},"type":"object","required":["id","error_record_id","title","subsystem","severity","status","opened_at","closed_at","rca_json"],"title":"IncidentResponse"},"InitializeCampaignRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"app_name":{"type":"string","title":"App Name"},"package_name":{"type":"string","title":"Package Name"},"target_store":{"type":"string","title":"Target Store","default":"google_play"},"initial_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Initial Keywords"}},"type":"object","required":["tenant_id","app_name","package_name"],"title":"InitializeCampaignRequest"},"IntakeResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Id"},"product_code":{"type":"string","title":"Product Code"},"plan_code":{"type":"string","title":"Plan Code"},"schema_version":{"type":"integer","title":"Schema Version"},"status":{"type":"string","title":"Status"},"payload_json":{"additionalProperties":true,"type":"object","title":"Payload Json"},"rejection_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rejection Json"},"created_check_ids_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Created Check Ids Json"},"assigned_numbers_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Assigned Numbers Json"},"live_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Live At"}},"type":"object","required":["id","tenant_id","subscription_id","product_code","plan_code","schema_version","status","payload_json"],"title":"IntakeResponse"},"IntakeUpsertRequest":{"properties":{"product_code":{"type":"string","title":"Product Code"},"plan_code":{"type":"string","title":"Plan Code"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["product_code","plan_code","payload"],"title":"IntakeUpsertRequest"},"IntakeValidateRequest":{"properties":{"product_code":{"type":"string","title":"Product Code"},"plan_code":{"type":"string","title":"Plan Code"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["product_code","plan_code","payload"],"title":"IntakeValidateRequest"},"IntakeValidateResponse":{"properties":{"valid":{"type":"boolean","title":"Valid"},"problems":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Problems","default":[]}},"type":"object","required":["valid"],"title":"IntakeValidateResponse"},"InternalSubscriptionGrantRequest":{"properties":{"product_codes":{"items":{"type":"string"},"type":"array","title":"Product Codes"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["product_codes"],"title":"InternalSubscriptionGrantRequest"},"InternalSubscriptionGrantResponse":{"properties":{"granted":{"items":{"type":"string"},"type":"array","title":"Granted"},"already_active":{"items":{"type":"string"},"type":"array","title":"Already Active"}},"type":"object","required":["granted","already_active"],"title":"InternalSubscriptionGrantResponse"},"JobCreate":{"properties":{"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"job_type":{"type":"string","title":"Job Type"},"target_type":{"type":"string","title":"Target Type","default":"api"},"priority":{"type":"integer","title":"Priority","default":50},"payload_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"product_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"}},"type":"object","required":["job_type"],"title":"JobCreate"},"JobResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"job_type":{"type":"string","title":"Job Type"},"target_type":{"type":"string","title":"Target Type"},"status":{"type":"string","title":"Status"},"priority":{"type":"integer","title":"Priority"},"retry_count":{"type":"integer","title":"Retry Count"},"max_retries":{"type":"integer","title":"Max Retries"},"payload_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"},"result_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result Json"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","workflow_id","job_type","target_type","status","priority","retry_count","max_retries","payload_json","result_json","error_message","scheduled_at","started_at","finished_at","created_at"],"title":"JobResponse"},"KillRuleReviewItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"gate_state":{"type":"string","title":"Gate State"},"signal_count_90d":{"type":"integer","title":"Signal Count 90D"},"last_sale_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sale At"},"days_without_sale":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Without Sale"},"severity":{"type":"string","title":"Severity"},"recommendation":{"type":"string","title":"Recommendation"}},"type":"object","required":["product_code","gate_state","signal_count_90d","severity","recommendation"],"title":"KillRuleReviewItem"},"LabAuditEventResponse":{"properties":{"id":{"type":"string","title":"Id"},"actor":{"type":"string","title":"Actor"},"action":{"type":"string","title":"Action"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","actor","action","resource_type","resource_id","metadata_json","created_at"],"title":"LabAuditEventResponse"},"LabDeviceResponse":{"properties":{"serial":{"type":"string","title":"Serial"},"pool":{"type":"string","title":"Pool"},"status":{"type":"string","title":"Status"},"health_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Health Score"},"battery_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Level"},"last_heartbeat_at":{"type":"string","format":"date-time","title":"Last Heartbeat At"},"worker_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Worker Node Id"}},"type":"object","required":["serial","pool","status","health_score","battery_level","last_heartbeat_at","worker_node_id"],"title":"LabDeviceResponse"},"LabExperimentCreate":{"properties":{"name":{"type":"string","title":"Name"},"platform":{"type":"string","title":"Platform"},"app_package":{"type":"string","title":"App Package"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"steps":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"workflow_version":{"type":"string","title":"Workflow Version","default":"lab_experiment/1.0"},"schedule":{"type":"string","title":"Schedule","default":"manual"},"is_active":{"type":"boolean","title":"Is Active","default":true},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["name","platform","app_package","steps"],"title":"LabExperimentCreate"},"LabExperimentResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"platform":{"type":"string","title":"Platform"},"app_package":{"type":"string","title":"App Package"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"steps_json":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps Json"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"workflow_version":{"type":"string","title":"Workflow Version"},"schedule":{"type":"string","title":"Schedule"},"is_active":{"type":"boolean","title":"Is Active"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_by":{"type":"string","title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","platform","app_package","account_id","device_serial","steps_json","timeout_seconds","workflow_version","schedule","is_active","notes","created_by","created_at"],"title":"LabExperimentResponse"},"LabExperimentRunDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"experiment_id":{"type":"string","title":"Experiment Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"metrics_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics Json"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"steps":{"items":{"$ref":"#/components/schemas/LabStepResultResponse"},"type":"array","title":"Steps"}},"type":"object","required":["id","experiment_id","device_serial","status","started_at","finished_at","summary","metrics_json","trace_id","created_at"],"title":"LabExperimentRunDetailResponse"},"LabExperimentRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"experiment_id":{"type":"string","title":"Experiment Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"metrics_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics Json"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","experiment_id","device_serial","status","started_at","finished_at","summary","metrics_json","trace_id","created_at"],"title":"LabExperimentRunResponse"},"LabExperimentRunTriggerRequest":{"properties":{"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"}},"type":"object","title":"LabExperimentRunTriggerRequest"},"LabExperimentUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform"},"app_package":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Package"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps"},"timeout_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout Seconds"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"LabExperimentUpdate"},"LabMeasurementCreate":{"properties":{"account_id":{"type":"string","title":"Account Id"},"metric":{"type":"string","title":"Metric"},"value":{"type":"number","title":"Value"},"measured_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Measured At"}},"type":"object","required":["account_id","metric","value"],"title":"LabMeasurementCreate"},"LabMeasurementResponse":{"properties":{"id":{"type":"string","title":"Id"},"account_id":{"type":"string","title":"Account Id"},"metric":{"type":"string","title":"Metric"},"value":{"type":"number","title":"Value"},"source":{"type":"string","title":"Source"},"measured_at":{"type":"string","format":"date-time","title":"Measured At"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},"type":"object","required":["id","account_id","metric","value","source","measured_at","run_id"],"title":"LabMeasurementResponse"},"LabSocialAccountCreate":{"properties":{"lab_account_owner":{"type":"string","title":"Lab Account Owner"},"platform":{"type":"string","title":"Platform"},"account_name":{"type":"string","title":"Account Name"},"external_account_id":{"type":"string","title":"External Account Id"},"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"}},"type":"object","required":["lab_account_owner","platform","account_name","external_account_id"],"title":"LabSocialAccountCreate"},"LabSocialAccountResponse":{"properties":{"id":{"type":"string","title":"Id"},"lab_account_owner":{"type":"string","title":"Lab Account Owner"},"platform":{"type":"string","title":"Platform"},"account_name":{"type":"string","title":"Account Name"},"external_account_id":{"type":"string","title":"External Account Id"},"status":{"type":"string","title":"Status"},"has_token":{"type":"boolean","title":"Has Token"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","lab_account_owner","platform","account_name","external_account_id","status","has_token","created_at"],"title":"LabSocialAccountResponse"},"LabStepResultResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"step_index":{"type":"integer","title":"Step Index"},"label":{"type":"string","title":"Label"},"action":{"type":"string","title":"Action"},"status":{"type":"string","title":"Status"},"duration_ms":{"type":"integer","title":"Duration Ms"},"evidence_json":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence Json"},"detail_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail Json"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"}},"type":"object","required":["id","run_id","step_index","label","action","status","duration_ms","evidence_json","detail_json","trace_id","recorded_at"],"title":"LabStepResultResponse"},"LabWorkerCompleteRequest":{"properties":{"status":{"type":"string","title":"Status"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"metrics":{"additionalProperties":true,"type":"object","title":"Metrics"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["status"],"title":"LabWorkerCompleteRequest"},"LabWorkerDeviceResponse":{"properties":{"serial":{"type":"string","title":"Serial"},"pool":{"type":"string","title":"Pool"},"status":{"type":"string","title":"Status"}},"type":"object","required":["serial","pool","status"],"title":"LabWorkerDeviceResponse"},"LabWorkerDueRun":{"properties":{"run_id":{"type":"string","title":"Run Id"},"experiment_id":{"type":"string","title":"Experiment Id"},"app_package":{"type":"string","title":"App Package"},"steps":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps"},"account_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Ref"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"workflow_version":{"type":"string","title":"Workflow Version"}},"type":"object","required":["run_id","experiment_id","app_package","steps","timeout_seconds","workflow_version"],"title":"LabWorkerDueRun"},"LabWorkerEvidenceItem":{"properties":{"path":{"type":"string","title":"Path"},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256"},"bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bytes"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"captured_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Captured At"}},"type":"object","required":["path"],"title":"LabWorkerEvidenceItem"},"LabWorkerStepSubmit":{"properties":{"step_index":{"type":"integer","title":"Step Index"},"label":{"type":"string","title":"Label"},"action":{"type":"string","title":"Action"},"status":{"type":"string","title":"Status"},"duration_ms":{"type":"integer","title":"Duration Ms","default":0},"evidence":{"items":{"$ref":"#/components/schemas/LabWorkerEvidenceItem"},"type":"array","title":"Evidence"},"detail":{"additionalProperties":true,"type":"object","title":"Detail"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["step_index","label","action","status"],"title":"LabWorkerStepSubmit"},"LearningMetricsResponse":{"properties":{"unique_errors":{"type":"integer","title":"Unique Errors"},"recurring_errors":{"type":"integer","title":"Recurring Errors"},"recurring_preventable":{"type":"integer","title":"Recurring Preventable"},"pct_with_rca":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct With Rca"},"pct_with_regression_test":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct With Regression Test"},"median_hours_error_to_fix":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Hours Error To Fix"},"median_hours_fix_to_verify":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Hours Fix To Verify"},"runbooks_updated_30d":{"type":"integer","title":"Runbooks Updated 30D"},"prevention_rules_created":{"type":"integer","title":"Prevention Rules Created"}},"type":"object","required":["unique_errors","recurring_errors","recurring_preventable","pct_with_rca","pct_with_regression_test","median_hours_error_to_fix","median_hours_fix_to_verify","runbooks_updated_30d","prevention_rules_created"],"title":"LearningMetricsResponse"},"LearningResponse":{"properties":{"open_incidents":{"items":{"$ref":"#/components/schemas/IncidentBrief"},"type":"array","title":"Open Incidents"},"error_records":{"items":{"$ref":"#/components/schemas/ErrorRecordBrief"},"type":"array","title":"Error Records"},"runbooks":{"items":{"$ref":"#/components/schemas/RunbookBrief"},"type":"array","title":"Runbooks"},"regression_tests":{"items":{"$ref":"#/components/schemas/RegressionTestBrief"},"type":"array","title":"Regression Tests"}},"type":"object","required":["open_incidents","error_records","runbooks","regression_tests"],"title":"LearningResponse"},"LeaseAcquireRequest":{"properties":{"worker_node_id":{"type":"string","title":"Worker Node Id"},"job_id":{"type":"string","title":"Job Id"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds","default":300},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["worker_node_id","job_id"],"title":"LeaseAcquireRequest"},"LeaseResponse":{"properties":{"id":{"type":"string","title":"Id"},"device_id":{"type":"string","title":"Device Id"},"job_id":{"type":"string","title":"Job Id"},"worker_node_id":{"type":"string","title":"Worker Node Id"},"lease_token":{"type":"string","title":"Lease Token"},"status":{"type":"string","title":"Status"},"acquired_at":{"type":"string","format":"date-time","title":"Acquired At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["id","device_id","job_id","worker_node_id","lease_token","status","acquired_at","expires_at"],"title":"LeaseResponse"},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"MaintenanceRequest":{"properties":{"device_id":{"type":"string","title":"Device Id"},"reason":{"type":"string","title":"Reason","default":"Operator manual maintenance"}},"type":"object","required":["device_id"],"title":"MaintenanceRequest"},"MaintenanceWindowOpenRequest":{"properties":{"device_serial":{"type":"string","title":"Device Serial"},"reason":{"type":"string","title":"Reason"},"duration_seconds":{"type":"integer","title":"Duration Seconds","default":180},"disruptive":{"type":"boolean","title":"Disruptive","default":true},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["device_serial","reason"],"title":"MaintenanceWindowOpenRequest"},"MaintenanceWindowResponse":{"properties":{"id":{"type":"string","title":"Id"},"device_serial":{"type":"string","title":"Device Serial"},"disruptive":{"type":"boolean","title":"Disruptive"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"ends_at":{"type":"string","format":"date-time","title":"Ends At"},"reason":{"type":"string","title":"Reason"},"created_by":{"type":"string","title":"Created By"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"}},"type":"object","required":["id","device_serial","disruptive","starts_at","ends_at","reason","created_by"],"title":"MaintenanceWindowResponse"},"MfaChallengeRequest":{"properties":{"mfa_token":{"type":"string","title":"Mfa Token"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"recovery_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recovery Code"}},"type":"object","required":["mfa_token"],"title":"MfaChallengeRequest"},"MfaDisableRequest":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"MfaDisableRequest"},"MfaEnrollResponse":{"properties":{"secret":{"type":"string","title":"Secret"},"otpauth_uri":{"type":"string","title":"Otpauth Uri"},"recovery_codes":{"items":{"type":"string"},"type":"array","title":"Recovery Codes"},"qr_svg":{"type":"string","title":"Qr Svg"},"qr_data_uri":{"type":"string","title":"Qr Data Uri"}},"type":"object","required":["secret","otpauth_uri","recovery_codes","qr_svg","qr_data_uri"],"title":"MfaEnrollResponse"},"MfaResetResponse":{"properties":{"user_id":{"type":"string","title":"User Id"},"mfa_enabled":{"type":"boolean","title":"Mfa Enabled","default":false}},"type":"object","required":["user_id"],"title":"MfaResetResponse","description":"Response for POST /auth/admin/users/{user_id}/mfa/reset (PANELS V2\nspec SS3, RB-10 runbook): the owner's escape hatch for a tenant user\nlocked out by MFA_REQUIRED_FOR_TENANT_USERS, never a silent bypass -- it\nforces mfa_enabled back to False so the flag simply re-requires\nenrollment on that user's next authenticated request while the setting\nstays on, and always leaves an audit trail."},"MfaVerifyRequest":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"MfaVerifyRequest"},"ModeratedCommentResult":{"properties":{"comment_id":{"type":"string","title":"Comment Id"},"author":{"type":"string","title":"Author"},"original_text":{"type":"string","title":"Original Text"},"intent_score":{"type":"number","title":"Intent Score"},"is_lead":{"type":"boolean","title":"Is Lead"},"sentiment":{"type":"string","title":"Sentiment"},"suggested_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Reply"},"action_taken":{"type":"string","title":"Action Taken"}},"type":"object","required":["comment_id","author","original_text","intent_score","is_lead","sentiment","suggested_reply","action_taken"],"title":"ModeratedCommentResult"},"ModerationBatchRequest":{"properties":{"social_account_id":{"type":"string","title":"Social Account Id"},"comments":{"items":{"$ref":"#/components/schemas/CommentItem"},"type":"array","title":"Comments"}},"type":"object","required":["social_account_id","comments"],"title":"ModerationBatchRequest"},"ModerationBatchResponse":{"properties":{"processed_count":{"type":"integer","title":"Processed Count"},"leads_detected_count":{"type":"integer","title":"Leads Detected Count"},"results":{"items":{"$ref":"#/components/schemas/ModeratedCommentResult"},"type":"array","title":"Results"}},"type":"object","required":["processed_count","leads_detected_count","results"],"title":"ModerationBatchResponse"},"MonitorAlertResponse":{"properties":{"id":{"type":"string","title":"Id"},"check_id":{"type":"string","title":"Check Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"kind":{"type":"string","title":"Kind"},"channel":{"type":"string","title":"Channel"},"message":{"type":"string","title":"Message"},"sent_at":{"type":"string","format":"date-time","title":"Sent At"}},"type":"object","required":["id","check_id","tenant_id","run_id","kind","channel","message","sent_at"],"title":"MonitorAlertResponse"},"MonitorCallIngest":{"properties":{"device_serial":{"type":"string","title":"Device Serial"},"caller_number":{"type":"string","title":"Caller Number"},"connected_at":{"type":"string","format":"date-time","title":"Connected At"},"duration_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration S"},"call_state":{"type":"string","title":"Call State","default":"unknown"},"caller_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Name"},"observed_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Observed Label"},"dialer_package":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialer Package"},"dialer_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialer Version"},"os_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Version"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"evidence":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence"},"dedupe_key":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Dedupe Key"}},"type":"object","required":["device_serial","caller_number","connected_at"],"title":"MonitorCallIngest"},"MonitorCallIngestOutcome":{"properties":{"check_type":{"type":"string","title":"Check Type"},"outcome":{"type":"string","title":"Outcome"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"run":{"anyOf":[{"$ref":"#/components/schemas/MonitorRunResponse"},{"type":"null"}]}},"type":"object","required":["check_type","outcome"],"title":"MonitorCallIngestOutcome","description":"One correlation decision (V15 s8.6) for one candidate check_type group\n(call_observe or spam_label). `run` is populated only when outcome==\"matched\"."},"MonitorCallIngestResponse":{"properties":{"outcomes":{"items":{"$ref":"#/components/schemas/MonitorCallIngestOutcome"},"type":"array","title":"Outcomes"}},"type":"object","required":["outcomes"],"title":"MonitorCallIngestResponse"},"MonitorCheckCreate":{"properties":{"name":{"type":"string","title":"Name"},"check_type":{"type":"string","title":"Check Type"},"target":{"type":"string","title":"Target"},"country_code":{"type":"string","title":"Country Code","default":"CR"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"frequency_minutes":{"type":"integer","minimum":1.0,"title":"Frequency Minutes","default":15},"timeout_seconds":{"type":"integer","title":"Timeout Seconds","default":30},"max_latency_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Latency Seconds"},"failure_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Threshold"},"alert_telegram_chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Telegram Chat Id"},"alert_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Email"},"forward_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Webhook Url"},"forward_slack_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Slack Webhook Url"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"authorized_senders_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorized Senders Json"},"correlation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Token"},"expected_window_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Window Seconds"}},"type":"object","required":["name","check_type","target"],"title":"MonitorCheckCreate"},"MonitorCheckResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"check_type":{"type":"string","title":"Check Type"},"target":{"type":"string","title":"Target"},"country_code":{"type":"string","title":"Country Code"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"frequency_minutes":{"type":"integer","title":"Frequency Minutes"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"max_latency_seconds":{"type":"integer","title":"Max Latency Seconds"},"failure_threshold":{"type":"integer","title":"Failure Threshold"},"alert_telegram_chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Telegram Chat Id"},"alert_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Email"},"forward_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Webhook Url"},"forward_slack_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Slack Webhook Url"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"authorized_senders_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorized Senders Json"},"correlation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Token"},"expected_window_seconds":{"type":"integer","title":"Expected Window Seconds"},"is_active":{"type":"boolean","title":"Is Active"},"last_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"next_due_at":{"type":"string","format":"date-time","title":"Next Due At"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"open_incident":{"type":"boolean","title":"Open Incident"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"overdue_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Overdue Since","readOnly":true},"is_overdue":{"type":"boolean","title":"Is Overdue","readOnly":true},"paused_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Reason","readOnly":true}},"type":"object","required":["id","tenant_id","name","check_type","target","country_code","device_serial","frequency_minutes","timeout_seconds","max_latency_seconds","failure_threshold","alert_telegram_chat_id","alert_email","forward_webhook_url","forward_slack_webhook_url","expected_window_seconds","is_active","last_status","last_run_at","next_due_at","consecutive_failures","open_incident","created_at","overdue_since","is_overdue","paused_reason"],"title":"MonitorCheckResponse"},"MonitorCheckSummary":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"check_type":{"type":"string","title":"Check Type"},"country_code":{"type":"string","title":"Country Code"},"last_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"open_incident":{"type":"boolean","title":"Open Incident"},"uptime_pct_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Uptime Pct 24H"},"avg_duration_ms_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Ms 24H"},"avg_latency_ms_24h":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Latency Ms 24H"},"runs_24h":{"type":"integer","title":"Runs 24H"},"uptime_pct_7d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Uptime Pct 7D"},"is_overdue":{"type":"boolean","title":"Is Overdue","default":false},"overdue_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Overdue Since"},"paused_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Reason"}},"type":"object","required":["id","name","check_type","country_code","last_status","last_run_at","open_incident","uptime_pct_24h","avg_duration_ms_24h","avg_latency_ms_24h","runs_24h"],"title":"MonitorCheckSummary"},"MonitorCheckUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"frequency_minutes":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Frequency Minutes"},"timeout_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout Seconds"},"max_latency_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Latency Seconds"},"failure_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failure Threshold"},"alert_telegram_chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Telegram Chat Id"},"alert_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Email"},"forward_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Webhook Url"},"forward_slack_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Slack Webhook Url"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"authorized_senders_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorized Senders Json"},"correlation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Token"},"expected_window_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Window Seconds"}},"type":"object","title":"MonitorCheckUpdate"},"MonitorConsentReportResponse":{"properties":{"check_id":{"type":"string","title":"Check Id"},"check_name":{"type":"string","title":"Check Name"},"target":{"type":"string","title":"Target"},"country_code":{"type":"string","title":"Country Code"},"period":{"$ref":"#/components/schemas/ConsentReportPeriod"},"runs_analyzed":{"type":"integer","title":"Runs Analyzed"},"banner_found_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Banner Found Rate"},"reject_available":{"$ref":"#/components/schemas/ConsentReportRejectAvailable"},"options_available":{"$ref":"#/components/schemas/ConsentReportOptionsAvailable","default":{}},"third_party_domains_before_consent":{"items":{"$ref":"#/components/schemas/ConsentReportThirdPartyDomain"},"type":"array","title":"Third Party Domains Before Consent"},"cmp":{"$ref":"#/components/schemas/ConsentReportCmp","default":{"names_seen":[]}},"cookies_before_consent":{"$ref":"#/components/schemas/ConsentReportCookies"},"cookies_after_consent":{"$ref":"#/components/schemas/ConsentReportCookies"},"verdicts":{"additionalProperties":{"$ref":"#/components/schemas/ConsentReportVerdict"},"type":"object","title":"Verdicts"},"latest_evidence":{"$ref":"#/components/schemas/ConsentReportEvidence"},"summary":{"type":"string","title":"Summary"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"report_language":{"type":"string","title":"Report Language"}},"type":"object","required":["check_id","check_name","target","country_code","period","runs_analyzed","reject_available","third_party_domains_before_consent","cookies_before_consent","cookies_after_consent","verdicts","latest_evidence","summary","generated_at","report_language"],"title":"MonitorConsentReportResponse"},"MonitorDueCheckResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"check_type":{"type":"string","title":"Check Type"},"target":{"type":"string","title":"Target"},"timeout_seconds":{"type":"integer","title":"Timeout Seconds"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"country_code":{"type":"string","title":"Country Code"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"authorized_senders_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Authorized Senders Json"},"correlation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Token"}},"type":"object","required":["id","tenant_id","check_type","target","timeout_seconds","device_serial","country_code"],"title":"MonitorDueCheckResponse"},"MonitorMetricPoint":{"properties":{"ran_at":{"type":"string","format":"date-time","title":"Ran At"},"value":{"type":"number","title":"Value"}},"type":"object","required":["ran_at","value"],"title":"MonitorMetricPoint"},"MonitorRunClientResponse":{"properties":{"id":{"type":"string","title":"Id"},"check_id":{"type":"string","title":"Check Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"status":{"type":"string","title":"Status"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency Ms"},"detail_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail Json"},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"ran_at":{"type":"string","format":"date-time","title":"Ran At"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"failure_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Class"},"recovery_actions_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Actions Json"},"evidence_json":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence Json"},"evidence_signature_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Evidence Signature Json"},"is_backtest":{"type":"boolean","title":"Is Backtest","default":false},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id","readOnly":true},"network":{"additionalProperties":true,"type":"object","title":"Network","readOnly":true}},"type":"object","required":["id","check_id","tenant_id","status","duration_ms","latency_ms","detail_json","screenshot_path","ran_at","device_id","network"],"title":"MonitorRunClientResponse","description":"Tenant-facing run: `device_serial` (the ADB connection id -- an internal LAN\naddress for Wi-Fi phones) is read but never serialized; clients get `device_id`.\nOwner/worker endpoints keep MonitorRunResponse."},"MonitorRunCreate":{"properties":{"check_id":{"type":"string","title":"Check Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"status":{"type":"string","title":"Status"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency Ms"},"detail_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail Json"},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"failure_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Class"},"recovery_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Actions"},"evidence":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence"},"is_backtest":{"type":"boolean","title":"Is Backtest","default":false},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"}},"type":"object","required":["check_id","status"],"title":"MonitorRunCreate"},"MonitorRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"check_id":{"type":"string","title":"Check Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"status":{"type":"string","title":"Status"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency Ms"},"detail_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail Json"},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"ran_at":{"type":"string","format":"date-time","title":"Ran At"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"failure_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Class"},"recovery_actions_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Actions Json"},"evidence_json":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence Json"},"evidence_signature_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Evidence Signature Json"},"is_backtest":{"type":"boolean","title":"Is Backtest","default":false},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id","readOnly":true},"network":{"additionalProperties":true,"type":"object","title":"Network","readOnly":true}},"type":"object","required":["id","check_id","tenant_id","device_serial","status","duration_ms","latency_ms","detail_json","screenshot_path","ran_at","device_id","network"],"title":"MonitorRunResponse"},"MonitorRunWithAlertResponse":{"properties":{"run":{"$ref":"#/components/schemas/MonitorRunResponse"},"alert_fired":{"type":"boolean","title":"Alert Fired"},"alert_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Kind"}},"type":"object","required":["run","alert_fired"],"title":"MonitorRunWithAlertResponse"},"MonitorSmsIngest":{"properties":{"device_serial":{"type":"string","title":"Device Serial"},"sender":{"type":"string","title":"Sender"},"body":{"type":"string","title":"Body"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"received_at":{"type":"string","format":"date-time","title":"Received At"},"country_code":{"type":"string","title":"Country Code","default":"CR"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"failure_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Class"},"recovery_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Actions"},"evidence":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence"},"dedupe_key":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Dedupe Key"}},"type":"object","required":["device_serial","sender","body","received_at"],"title":"MonitorSmsIngest"},"NumberAssignmentBrief":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"device_serial":{"type":"string","title":"Device Serial"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"carrier_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carrier Code"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"}},"type":"object","required":["id","tenant_id","device_serial","assigned_at"],"title":"NumberAssignmentBrief"},"NumberAssignmentCreate":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"device_serial":{"type":"string","title":"Device Serial"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["tenant_id","device_serial"],"title":"NumberAssignmentCreate"},"NumberAssignmentResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"device_serial":{"type":"string","title":"Device Serial"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"carrier_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carrier Code"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"},"released_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Released At"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["id","tenant_id","device_serial","phone_number","country_code","carrier_code","assigned_at","released_at","notes"],"title":"NumberAssignmentResponse"},"OidcConfigResponse":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"button_label":{"type":"string","title":"Button Label"}},"type":"object","required":["enabled","button_label"],"title":"OidcConfigResponse","description":"GET /auth/oidc/config: lets the login page decide whether to render\nthe \"Entrar con Brenes Group (Authentik)\" button, without leaking issuer/\nclient_id/anything provider-specific."},"OperationsResponse":{"properties":{"slos":{"additionalProperties":true,"type":"object","title":"Slos"},"audit_events":{"items":{"$ref":"#/components/schemas/AuditEventBrief"},"type":"array","title":"Audit Events"},"security_events":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Security Events"},"release":{"$ref":"#/components/schemas/ReleaseInfo"},"backups":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Backups"},"backups_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Backups Note"},"retention_status":{"$ref":"#/components/schemas/RetentionStatus"}},"type":"object","required":["slos","audit_events","security_events","release","retention_status"],"title":"OperationsResponse"},"OpportunityPatchRequest":{"properties":{"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"}},"type":"object","title":"OpportunityPatchRequest"},"OpportunityResponse":{"properties":{"id":{"type":"string","title":"Id"},"company_id":{"type":"string","title":"Company Id"},"contact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Id"},"product_codes_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Product Codes Json"},"stage":{"type":"string","title":"Stage"},"value_usd_estimate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Usd Estimate"},"lead_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Id"},"next_action_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Action At"},"escalation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Escalation Reason"},"owner":{"type":"string","title":"Owner"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","company_id","stage","owner","updated_at"],"title":"OpportunityResponse"},"OutreachMessageResponse":{"properties":{"id":{"type":"string","title":"Id"},"opportunity_id":{"type":"string","title":"Opportunity Id"},"direction":{"type":"string","title":"Direction"},"channel":{"type":"string","title":"Channel"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"body":{"type":"string","title":"Body"},"intent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intent"},"intent_confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intent Confidence"},"status":{"type":"string","title":"Status"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","opportunity_id","direction","channel","body","status","created_at"],"title":"OutreachMessageResponse"},"OverviewCheckItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"check_type":{"type":"string","title":"Check Type"},"product_code":{"type":"string","title":"Product Code"},"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Name"},"frequency_minutes":{"type":"integer","title":"Frequency Minutes"},"next_due_at":{"type":"string","format":"date-time","title":"Next Due At"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status"},"is_active":{"type":"boolean","title":"Is Active"},"paused_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paused Reason"}},"type":"object","required":["id","name","check_type","product_code","tenant_id","frequency_minutes","next_due_at","is_active"],"title":"OverviewCheckItem"},"OverviewDeviceItem":{"properties":{"serial":{"type":"string","title":"Serial"},"name":{"type":"string","title":"Name"},"pool":{"type":"string","title":"Pool"},"status":{"type":"string","title":"Status"},"health_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Health Score"},"sim_present":{"type":"boolean","title":"Sim Present"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"carrier_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carrier Code"},"last_heartbeat_at":{"type":"string","format":"date-time","title":"Last Heartbeat At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"awake":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Awake"}},"type":"object","required":["serial","name","pool","status","sim_present","last_heartbeat_at","updated_at"],"title":"OverviewDeviceItem"},"OwnerConsoleOverviewResponse":{"properties":{"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"production":{"$ref":"#/components/schemas/ProductionInfo"},"devices":{"items":{"$ref":"#/components/schemas/OverviewDeviceItem"},"type":"array","title":"Devices"},"active_checks":{"items":{"$ref":"#/components/schemas/OverviewCheckItem"},"type":"array","title":"Active Checks"},"last_runs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Last Runs"},"backtest_activity_24h":{"items":{"$ref":"#/components/schemas/BacktestActivityGroup"},"type":"array","title":"Backtest Activity 24H"},"open_incidents_count":{"type":"integer","title":"Open Incidents Count"},"last_incidents":{"items":{"$ref":"#/components/schemas/IncidentBrief"},"type":"array","title":"Last Incidents"},"open_security_findings":{"$ref":"#/components/schemas/SecurityFindingCounts"},"gates":{"items":{"$ref":"#/components/schemas/GateSummaryItem"},"type":"array","title":"Gates"},"sellable_capacity":{"items":{"$ref":"#/components/schemas/SellableCapacityItem"},"type":"array","title":"Sellable Capacity"},"quota_usage":{"items":{"$ref":"#/components/schemas/TenantQuotaUsageItem"},"type":"array","title":"Quota Usage"},"worker_nodes":{"items":{"$ref":"#/components/schemas/WorkerNodeItem"},"type":"array","title":"Worker Nodes"},"pending_decisions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pending Decisions"},"pending_decisions_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pending Decisions Source"}},"type":"object","required":["generated_at","production","devices","active_checks","last_runs","backtest_activity_24h","open_incidents_count","last_incidents","open_security_findings","gates","sellable_capacity","quota_usage","worker_nodes"],"title":"OwnerConsoleOverviewResponse"},"PasswordForgotAccepted":{"properties":{"status":{"type":"string","title":"Status","default":"accepted"}},"type":"object","title":"PasswordForgotAccepted","description":"Always the same body, whether or not the e-mail belongs to an account."},"PasswordForgotRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"PasswordForgotRequest"},"PasswordResetRequest":{"properties":{"token":{"type":"string","maxLength":256,"minLength":16,"title":"Token"},"new_password":{"type":"string","minLength":8,"title":"New Password"}},"type":"object","required":["token","new_password"],"title":"PasswordResetRequest"},"PendingSanitizationItem":{"properties":{"serial":{"type":"string","title":"Serial"},"device_id":{"type":"string","title":"Device Id"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["serial","device_id","reason"],"title":"PendingSanitizationItem"},"PerformanceItemIn":{"properties":{"campaign_id":{"type":"string","maxLength":100,"minLength":1,"title":"Campaign Id"},"campaign_name":{"anyOf":[{"type":"string","maxLength":150},{"type":"null"}],"title":"Campaign Name"},"product_code":{"type":"string","maxLength":100,"minLength":1,"title":"Product Code"},"impressions":{"type":"integer","minimum":0.0,"title":"Impressions"},"clicks":{"type":"integer","minimum":0.0,"title":"Clicks"},"spend_usd":{"type":"number","minimum":0.0,"title":"Spend Usd"},"conversions_reported":{"type":"integer","minimum":0.0,"title":"Conversions Reported","default":0},"currency":{"type":"string","maxLength":10,"title":"Currency","default":"USD"},"channel":{"type":"string","maxLength":50,"title":"Channel","default":"google_search"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"}},"type":"object","required":["campaign_id","product_code","impressions","clicks","spend_usd"],"title":"PerformanceItemIn"},"PerformanceItemSummary":{"properties":{"campaign_id":{"type":"string","title":"Campaign Id"},"campaign_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Name"},"product_code":{"type":"string","title":"Product Code"},"channel":{"type":"string","title":"Channel"},"impressions":{"type":"integer","title":"Impressions"},"clicks":{"type":"integer","title":"Clicks"},"spend_usd":{"type":"number","title":"Spend Usd"},"conversions_reported":{"type":"integer","title":"Conversions Reported"},"ctr_percent":{"type":"number","title":"Ctr Percent"},"cpc_usd":{"type":"number","title":"Cpc Usd"}},"type":"object","required":["campaign_id","campaign_name","product_code","channel","impressions","clicks","spend_usd","conversions_reported","ctr_percent","cpc_usd"],"title":"PerformanceItemSummary"},"PerformanceReportIn":{"properties":{"report_date":{"type":"string","format":"date","title":"Report Date"},"items":{"items":{"$ref":"#/components/schemas/PerformanceItemIn"},"type":"array","maxItems":100,"minItems":1,"title":"Items"}},"type":"object","required":["report_date","items"],"title":"PerformanceReportIn"},"PerformanceReportResponse":{"properties":{"status":{"type":"string","title":"Status","default":"OK"},"report_date":{"type":"string","format":"date","title":"Report Date"},"items_recorded":{"type":"integer","title":"Items Recorded"},"total_spend_usd":{"type":"number","title":"Total Spend Usd"},"total_impressions":{"type":"integer","title":"Total Impressions"},"total_clicks":{"type":"integer","title":"Total Clicks"},"event_ids":{"items":{"type":"string"},"type":"array","title":"Event Ids"}},"type":"object","required":["report_date","items_recorded","total_spend_usd","total_impressions","total_clicks","event_ids"],"title":"PerformanceReportResponse"},"PerformanceSummaryResponse":{"properties":{"version":{"type":"integer","title":"Version","default":1},"date_from":{"type":"string","format":"date","title":"Date From"},"date_to":{"type":"string","format":"date","title":"Date To"},"total_spend_usd":{"type":"number","title":"Total Spend Usd"},"total_impressions":{"type":"integer","title":"Total Impressions"},"total_clicks":{"type":"integer","title":"Total Clicks"},"overall_ctr_percent":{"type":"number","title":"Overall Ctr Percent"},"campaigns":{"items":{"$ref":"#/components/schemas/PerformanceItemSummary"},"type":"array","title":"Campaigns"}},"type":"object","required":["date_from","date_to","total_spend_usd","total_impressions","total_clicks","overall_ctr_percent","campaigns"],"title":"PerformanceSummaryResponse"},"PlatformPostDraft":{"properties":{"platform":{"type":"string","title":"Platform"},"caption":{"type":"string","title":"Caption"},"hashtags":{"type":"string","title":"Hashtags"},"aspect_ratio":{"type":"string","title":"Aspect Ratio"},"recommended_time":{"type":"string","title":"Recommended Time"},"call_to_action":{"type":"string","title":"Call To Action"}},"type":"object","required":["platform","caption","hashtags","aspect_ratio","recommended_time","call_to_action"],"title":"PlatformPostDraft"},"ProductGateAdvanceRequest":{"properties":{"to_state":{"type":"string","title":"To State"},"approved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["to_state"],"title":"ProductGateAdvanceRequest"},"ProductGateEvaluateAllItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"state":{"type":"string","title":"State"},"backtest_runs_done":{"type":"integer","title":"Backtest Runs Done"},"autonomy_measured":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Autonomy Measured"},"gross_margin_measured":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gross Margin Measured"},"backtest_ok":{"type":"boolean","title":"Backtest Ok"},"autonomy_ok":{"type":"boolean","title":"Autonomy Ok"},"unit_economics_ok":{"type":"boolean","title":"Unit Economics Ok"},"security_ok":{"type":"boolean","title":"Security Ok"}},"type":"object","required":["product_code","state","backtest_runs_done","backtest_ok","autonomy_ok","unit_economics_ok","security_ok"],"title":"ProductGateEvaluateAllItem","description":"One row of POST /workers/product-gates/evaluate-all (Master Plan V13\nSS12): the worker calls this hourly to refresh every product's measured\ngate columns in one request instead of 12 separate ones."},"ProductGatePatchRequest":{"properties":{"security_ok":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Security Ok"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"ProductGatePatchRequest"},"ProductGateResponse":{"properties":{"id":{"type":"string","title":"Id"},"product_code":{"type":"string","title":"Product Code"},"state":{"type":"string","title":"State"},"criticality":{"type":"string","title":"Criticality"},"min_autonomy":{"type":"number","title":"Min Autonomy"},"min_gross_margin":{"type":"number","title":"Min Gross Margin"},"backtest_runs_required":{"type":"integer","title":"Backtest Runs Required"},"backtest_runs_done":{"type":"integer","title":"Backtest Runs Done"},"autonomy_measured":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Autonomy Measured"},"gross_margin_measured":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gross Margin Measured"},"backtest_ok":{"type":"boolean","title":"Backtest Ok"},"autonomy_ok":{"type":"boolean","title":"Autonomy Ok"},"unit_economics_ok":{"type":"boolean","title":"Unit Economics Ok"},"security_ok":{"type":"boolean","title":"Security Ok"},"human_approved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Approved By"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"evaluated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Evaluated At"},"ga_min_autonomy":{"type":"number","title":"Ga Min Autonomy","default":0.95},"real_world_samples_required":{"type":"integer","title":"Real World Samples Required","default":0},"real_world_samples_observed":{"type":"integer","title":"Real World Samples Observed","default":0},"real_world_evidence_ok":{"type":"boolean","title":"Real World Evidence Ok","default":false},"plan_limits_ok":{"type":"boolean","title":"Plan Limits Ok","default":false},"capacity_ok":{"type":"boolean","title":"Capacity Ok","default":false},"fault_profiles_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fault Profiles Json"},"sellable_eligible":{"type":"boolean","title":"Sellable Eligible","default":false},"eligibility_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Reason"},"stop_new_sales":{"type":"boolean","title":"Stop New Sales","default":false},"variant_checks_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Variant Checks Json"},"v15_catalog":{"type":"boolean","title":"V15 Catalog","default":false},"software_test_runs":{"type":"integer","title":"Software Test Runs","default":0},"pilot_runs":{"type":"integer","title":"Pilot Runs","default":0},"qualified_backtest_runs":{"type":"integer","title":"Qualified Backtest Runs","default":0},"real_device_runs":{"type":"integer","title":"Real Device Runs","default":0},"unit_economics_status":{"type":"string","title":"Unit Economics Status","default":"UNKNOWN"},"unit_economics_missing":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Unit Economics Missing"}},"type":"object","required":["id","product_code","state","criticality","min_autonomy","min_gross_margin","backtest_runs_required","backtest_runs_done","backtest_ok","autonomy_ok","unit_economics_ok","security_ok","updated_at"],"title":"ProductGateResponse"},"ProductionInfo":{"properties":{"app_version":{"type":"string","title":"App Version"},"commit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commit"},"database_ok":{"type":"boolean","title":"Database Ok"},"database_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Database Detail"}},"type":"object","required":["app_version","database_ok"],"title":"ProductionInfo"},"ProposeIdentitiesRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"niche":{"type":"string","title":"Niche","default":"general"}},"type":"object","required":["tenant_id"],"title":"ProposeIdentitiesRequest"},"ProvisionTriggerRequest":{"properties":{"serial":{"type":"string","title":"Serial"},"email":{"type":"string","title":"Email"},"platform":{"type":"string","title":"Platform","default":"ALL"},"display_name":{"type":"string","title":"Display Name","default":"Carlos Brenes"},"cdp_port":{"type":"integer","title":"Cdp Port","default":9222}},"type":"object","required":["serial","email"],"title":"ProvisionTriggerRequest"},"PublicBundle":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"product_codes":{"items":{"type":"string"},"type":"array","title":"Product Codes"},"discount_pct":{"type":"number","title":"Discount Pct"},"available":{"type":"boolean","title":"Available"}},"type":"object","required":["key","name","product_codes","discount_pct","available"],"title":"PublicBundle"},"PublicCapacityItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"accepting":{"type":"boolean","title":"Accepting"},"band":{"type":"string","enum":["open","last_slots","waitlist"],"title":"Band"}},"type":"object","required":["product_code","accepting","band"],"title":"PublicCapacityItem"},"PublicCapacityResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicCapacityItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PublicCapacityResponse"},"PublicCatalogResponse":{"properties":{"products":{"items":{"$ref":"#/components/schemas/PublicProduct"},"type":"array","title":"Products"},"bundles":{"items":{"$ref":"#/components/schemas/PublicBundle"},"type":"array","title":"Bundles"}},"type":"object","required":["products","bundles"],"title":"PublicCatalogResponse"},"PublicChannelStat":{"properties":{"channel_index":{"type":"integer","title":"Channel Index"},"samples_30d":{"type":"integer","title":"Samples 30D"},"delivery_pct_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delivery Pct 30D"},"avg_latency_ms_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Latency Ms 30D"},"p95_latency_ms_30d":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Latency Ms 30D"},"last_measured_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Measured At"}},"type":"object","required":["channel_index","samples_30d"],"title":"PublicChannelStat","description":"Anonymized replacement for MonitorService's per-operator breakdown\n(Master Plan V13 SS7.3: operator names are never published)."},"PublicClaimItem":{"properties":{"claim_key":{"type":"string","title":"Claim Key"},"text_en":{"type":"string","title":"Text En"},"text_es":{"type":"string","title":"Text Es"},"text_de":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text De"},"text_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Fr"},"text_it":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text It"},"text_pt_br":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Pt Br"},"state":{"type":"string","title":"State"},"product_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"}},"type":"object","required":["claim_key","text_en","text_es","state"],"title":"PublicClaimItem"},"PublicClaimsResponse":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/PublicClaimItem"},"type":"array","title":"Claims"}},"type":"object","required":["claims"],"title":"PublicClaimsResponse"},"PublicCountryStatsResponse":{"properties":{"country":{"type":"string","title":"Country"},"sample_size":{"type":"integer","title":"Sample Size"},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate"},"latency_p50_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency P50 Ms"},"latency_p95_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency P95 Ms"},"last_measurement_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Measurement At"},"device_tiers":{"items":{"type":"string"},"type":"array","title":"Device Tiers"},"products_available":{"items":{"type":"string"},"type":"array","title":"Products Available"}},"type":"object","required":["country","sample_size","device_tiers","products_available"],"title":"PublicCountryStatsResponse"},"PublicCoverageCorridor":{"properties":{"code":{"type":"string","title":"Code"},"number_country":{"type":"string","title":"Number Country"},"physical_country":{"type":"string","title":"Physical Country"},"carrier_code":{"type":"string","title":"Carrier Code"},"access_method":{"type":"string","title":"Access Method"},"status":{"type":"string","title":"Status"}},"type":"object","required":["code","number_country","physical_country","carrier_code","access_method","status"],"title":"PublicCoverageCorridor","description":"One corridor as published on the Coverage page (owner decision 2026-09-05: the only\npublic place that names countries; never a phone number)."},"PublicCoverageResponse":{"properties":{"corridors":{"items":{"$ref":"#/components/schemas/PublicCoverageCorridor"},"type":"array","title":"Corridors"}},"type":"object","required":["corridors"],"title":"PublicCoverageResponse"},"PublicDeliveryStatsAnonymizedResponse":{"properties":{"country":{"type":"string","title":"Country"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"channels":{"items":{"$ref":"#/components/schemas/PublicChannelStat"},"type":"array","title":"Channels"}},"type":"object","required":["country","updated_at","channels"],"title":"PublicDeliveryStatsAnonymizedResponse"},"PublicEvidenceVerifyRequest":{"properties":{"manifest":{"additionalProperties":true,"type":"object","title":"Manifest"},"signature":{"type":"string","maxLength":200,"title":"Signature"},"key_id":{"type":"string","maxLength":32,"minLength":1,"title":"Key Id"}},"type":"object","required":["manifest","signature","key_id"],"title":"PublicEvidenceVerifyRequest","description":"Body for POST /api/v1/public/evidence/verify -- no auth, so this is\ndeliberately the ONLY input the endpoint accepts: nothing here can be used\nto look up a tenant or artifact by id (see the API route for why: the\nresponse must never reveal anything beyond \"this manifest/signature/\nkey_id combination is or isn't valid\")."},"PublicEvidenceVerifyResponse":{"properties":{"valid":{"type":"boolean","title":"Valid"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"algorithm":{"type":"string","title":"Algorithm","default":"ed25519"}},"type":"object","required":["valid"],"title":"PublicEvidenceVerifyResponse","description":"Deliberately just these 4 fields -- never a tenant_id, artifact_id, or\nanything else that would turn a public integrity-check endpoint into an\nenumeration/leak vector."},"PublicPlanItem":{"properties":{"code":{"type":"string","title":"Code"},"product_code":{"type":"string","title":"Product Code"},"tier":{"type":"string","title":"Tier"},"price_monthly_usd":{"type":"number","title":"Price Monthly Usd"},"currency":{"type":"string","title":"Currency"},"limits":{"items":{"$ref":"#/components/schemas/PublicPlanLimit"},"type":"array","title":"Limits"},"is_public":{"type":"boolean","title":"Is Public"},"available":{"type":"boolean","title":"Available"}},"type":"object","required":["code","product_code","tier","price_monthly_usd","currency","limits","is_public","available"],"title":"PublicPlanItem","description":"GET /public/plans row: one ServicePlan for one of the launch products,\nso the checkout/pricing UI never hardcodes a price or limit. `available`\nis the real purchase gate (is_public AND the product gate is SELLABLE);\n`is_public` alone only reflects the ServicePlan-side half of that gate."},"PublicPlanLimit":{"properties":{"limit_key":{"type":"string","title":"Limit Key"},"included_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Value"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["limit_key","unit"],"title":"PublicPlanLimit"},"PublicProduct":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"price_usd":{"type":"number","title":"Price Usd"},"billing_unit":{"type":"string","title":"Billing Unit"},"state":{"type":"string","title":"State"},"available":{"type":"boolean","title":"Available"},"preview":{"type":"boolean","title":"Preview"},"features":{"items":{"type":"string"},"type":"array","title":"Features"},"criticality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criticality"},"family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family"},"sku_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku Type"},"founder_price_monthly_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Founder Price Monthly Usd"},"standard_price_monthly_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Standard Price Monthly Usd"},"includes":{"items":{"type":"string"},"type":"array","title":"Includes","default":[]},"excludes":{"items":{"type":"string"},"type":"array","title":"Excludes","default":[]},"bundle_components":{"items":{"type":"string"},"type":"array","title":"Bundle Components","default":[]},"corridor_honesty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corridor Honesty"}},"type":"object","required":["code","name","description","price_usd","billing_unit","state","available","preview","features"],"title":"PublicProduct"},"PublicStatusComponent":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"last_checked_at":{"type":"string","format":"date-time","title":"Last Checked At"}},"type":"object","required":["key","name","status","last_checked_at"],"title":"PublicStatusComponent"},"PublicStatusResponse":{"properties":{"components":{"items":{"$ref":"#/components/schemas/PublicStatusComponent"},"type":"array","title":"Components"},"status_page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Page Url"}},"type":"object","required":["components"],"title":"PublicStatusResponse"},"QaCompleteRequest":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"QaCompleteRequest"},"QaDeviceAssignmentResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"device_serial":{"type":"string","title":"Device Serial"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["id","run_id","device_serial","job_id","status","started_at","finished_at"],"title":"QaDeviceAssignmentResponse"},"QaPendingAssignmentResponse":{"properties":{"assignment_id":{"type":"string","title":"Assignment Id"},"run_id":{"type":"string","title":"Run Id"},"plan_id":{"type":"string","title":"Plan Id"},"device_serial":{"type":"string","title":"Device Serial"},"steps":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps"},"app_package":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Package"},"start_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Url"}},"type":"object","required":["assignment_id","run_id","plan_id","device_serial","steps","app_package","start_url"],"title":"QaPendingAssignmentResponse"},"QaRunCreateRequest":{"properties":{"device_serials":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Device Serials"},"is_backtest":{"type":"boolean","title":"Is Backtest","default":false},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"}},"type":"object","title":"QaRunCreateRequest"},"QaRunDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"plan_id":{"type":"string","title":"Plan Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"status":{"type":"string","title":"Status"},"device_serials_json":{"items":{"type":"string"},"type":"array","title":"Device Serials Json"},"requested_device_count":{"type":"integer","title":"Requested Device Count"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"report_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Path"},"summary_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_backtest":{"type":"boolean","title":"Is Backtest","default":false},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"},"assignments":{"items":{"$ref":"#/components/schemas/QaDeviceAssignmentResponse"},"type":"array","title":"Assignments"},"step_results":{"items":{"$ref":"#/components/schemas/QaStepResultResponse"},"type":"array","title":"Step Results"}},"type":"object","required":["id","plan_id","tenant_id","status","device_serials_json","requested_device_count","started_at","finished_at","report_path","summary_json","created_at"],"title":"QaRunDetailResponse"},"QaRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"plan_id":{"type":"string","title":"Plan Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"status":{"type":"string","title":"Status"},"device_serials_json":{"items":{"type":"string"},"type":"array","title":"Device Serials Json"},"requested_device_count":{"type":"integer","title":"Requested Device Count"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"report_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Path"},"summary_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_backtest":{"type":"boolean","title":"Is Backtest","default":false},"fault_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fault Profile"}},"type":"object","required":["id","plan_id","tenant_id","status","device_serials_json","requested_device_count","started_at","finished_at","report_path","summary_json","created_at"],"title":"QaRunResponse"},"QaScheduleCreateRequest":{"properties":{"plan_id":{"type":"string","title":"Plan Id"},"name":{"type":"string","title":"Name"},"cadence":{"type":"string","title":"Cadence","default":"weekly"},"weekday":{"type":"integer","title":"Weekday","default":0},"hour_utc":{"type":"integer","title":"Hour Utc","default":6},"device_policy":{"type":"string","title":"Device Policy","default":"all_physical"},"device_serials":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Device Serials"}},"type":"object","required":["plan_id","name"],"title":"QaScheduleCreateRequest"},"QaScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"plan_id":{"type":"string","title":"Plan Id"},"name":{"type":"string","title":"Name"},"cadence":{"type":"string","title":"Cadence"},"weekday":{"type":"integer","title":"Weekday"},"hour_utc":{"type":"integer","title":"Hour Utc"},"device_policy":{"type":"string","title":"Device Policy"},"device_serials_json":{"items":{"type":"string"},"type":"array","title":"Device Serials Json"},"is_active":{"type":"boolean","title":"Is Active"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Id"},"next_run_at":{"type":"string","format":"date-time","title":"Next Run At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","plan_id","name","cadence","weekday","hour_utc","device_policy","device_serials_json","is_active","last_run_at","last_run_id","next_run_at","created_at"],"title":"QaScheduleResponse"},"QaScheduleRunDueResponse":{"properties":{"started":{"items":{"type":"string"},"type":"array","title":"Started"}},"type":"object","required":["started"],"title":"QaScheduleRunDueResponse"},"QaScheduleUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"cadence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cadence"},"weekday":{"anyOf":[{"type":"integer","maximum":6.0,"minimum":0.0},{"type":"null"}],"title":"Weekday"},"hour_utc":{"anyOf":[{"type":"integer","maximum":23.0,"minimum":0.0},{"type":"null"}],"title":"Hour Utc"},"device_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Policy"},"device_serials":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Device Serials"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"QaScheduleUpdateRequest"},"QaStep":{"properties":{"action":{"$ref":"#/components/schemas/QaStepAction"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"label":{"type":"string","title":"Label"}},"type":"object","required":["action","label"],"title":"QaStep"},"QaStepAction":{"type":"string","enum":["launch_app","open_url","tap","tap_text","type_text","wait","assert_text","screenshot","scroll","press_back"],"title":"QaStepAction"},"QaStepResultCreate":{"properties":{"step_index":{"type":"integer","title":"Step Index"},"label":{"type":"string","title":"Label"},"action":{"type":"string","title":"Action"},"status":{"type":"string","title":"Status"},"duration_ms":{"type":"integer","title":"Duration Ms","default":0},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"workflow_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Version"},"failure_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Class"},"recovery_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Actions"},"evidence":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence"}},"type":"object","required":["step_index","label","action","status"],"title":"QaStepResultCreate"},"QaStepResultResponse":{"properties":{"id":{"type":"string","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"device_serial":{"type":"string","title":"Device Serial"},"step_index":{"type":"integer","title":"Step Index"},"label":{"type":"string","title":"Label"},"action":{"type":"string","title":"Action"},"status":{"type":"string","title":"Status"},"duration_ms":{"type":"integer","title":"Duration Ms"},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"failure_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Class"},"recovery_actions_json":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recovery Actions Json"},"evidence_json":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Evidence Json"}},"type":"object","required":["id","run_id","device_serial","step_index","label","action","status","duration_ms","screenshot_path","error","recorded_at"],"title":"QaStepResultResponse"},"QaTestPlanCreate":{"properties":{"name":{"type":"string","title":"Name"},"app_package":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Package"},"start_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Url"},"steps":{"items":{"$ref":"#/components/schemas/QaStep"},"type":"array","title":"Steps"},"device_count":{"type":"integer","title":"Device Count","default":3}},"type":"object","required":["name","steps"],"title":"QaTestPlanCreate"},"QaTestPlanResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"app_package":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Package"},"start_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Url"},"steps_json":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps Json"},"device_count":{"type":"integer","title":"Device Count"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","name","app_package","start_url","steps_json","device_count","is_active","created_at"],"title":"QaTestPlanResponse"},"ReassignDeviceRequest":{"properties":{"identity_id":{"type":"string","title":"Identity Id"},"new_device_id":{"type":"string","title":"New Device Id"},"reason":{"type":"string","title":"Reason","default":"Hardware maintenance"}},"type":"object","required":["identity_id","new_device_id"],"title":"ReassignDeviceRequest"},"ReconciliationReportResponse":{"properties":{"generated_at":{"type":"string","title":"Generated At"},"matched":{"items":{"type":"string"},"type":"array","title":"Matched"},"missing_locally":{"items":{"type":"string"},"type":"array","title":"Missing Locally"},"missing_remotely":{"items":{"type":"string"},"type":"array","title":"Missing Remotely"},"status_mismatch":{"items":{"$ref":"#/components/schemas/ReconciliationStatusMismatch"},"type":"array","title":"Status Mismatch"},"mrr_usd_remote":{"type":"number","title":"Mrr Usd Remote"},"mrr_usd_local":{"type":"number","title":"Mrr Usd Local"}},"type":"object","required":["generated_at","matched","missing_locally","missing_remotely","status_mismatch","mrr_usd_remote","mrr_usd_local"],"title":"ReconciliationReportResponse"},"ReconciliationStatusMismatch":{"properties":{"subscription_id":{"type":"string","title":"Subscription Id"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"local_status":{"type":"string","title":"Local Status"},"remote_status":{"type":"string","title":"Remote Status"}},"type":"object","required":["subscription_id","local_status","remote_status"],"title":"ReconciliationStatusMismatch"},"RecordEventRequest":{"properties":{"campaign_id":{"type":"string","title":"Campaign Id"},"event_type":{"type":"string","title":"Event Type"},"user_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Identifier"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["campaign_id","event_type"],"title":"RecordEventRequest"},"RecoveryActionCreate":{"properties":{"fingerprint":{"type":"string","title":"Fingerprint"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"step":{"type":"string","title":"Step"},"ok":{"type":"boolean","title":"Ok"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["fingerprint","step","ok"],"title":"RecoveryActionCreate"},"RecoveryActionResponse":{"properties":{"id":{"type":"string","title":"Id"}},"type":"object","required":["id"],"title":"RecoveryActionResponse"},"RecoveryNextResponse":{"properties":{"fingerprint":{"type":"string","title":"Fingerprint"},"next_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step"}},"type":"object","required":["fingerprint","next_step"],"title":"RecoveryNextResponse"},"RecoveryStepStat":{"properties":{"step":{"type":"string","title":"Step"},"attempts":{"type":"integer","title":"Attempts"},"successes":{"type":"integer","title":"Successes"},"success_rate":{"type":"number","title":"Success Rate"}},"type":"object","required":["step","attempts","successes","success_rate"],"title":"RecoveryStepStat"},"RecurringExpenseCreate":{"properties":{"category_code":{"type":"string","title":"Category Code"},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"amount_usd":{"type":"number","title":"Amount Usd"},"description":{"type":"string","title":"Description"},"cadence":{"type":"string","title":"Cadence","default":"monthly"},"starts_on":{"type":"string","format":"date-time","title":"Starts On"},"ends_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends On"}},"type":"object","required":["category_code","amount_usd","description","starts_on"],"title":"RecurringExpenseCreate"},"RecurringExpenseUpdate":{"properties":{"amount_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount Usd"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"ends_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends On"}},"type":"object","title":"RecurringExpenseUpdate"},"RefreshRequest":{"properties":{"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}},"type":"object","title":"RefreshRequest"},"RefundRequest":{"properties":{"amount_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Cents"}},"type":"object","title":"RefundRequest"},"RefundResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"provider":{"type":"string","title":"Provider"},"amount_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Cents"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["provider"],"title":"RefundResponse"},"RegisterIdentityRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"email":{"type":"string","title":"Email"},"purpose":{"type":"string","title":"Purpose","default":"OPERATIONAL"},"recovery_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recovery Phone"}},"type":"object","required":["tenant_id","email"],"title":"RegisterIdentityRequest"},"RegisterPlatformConnectionRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"identity_id":{"type":"string","title":"Identity Id"},"platform":{"type":"string","title":"Platform"},"account_handle":{"type":"string","title":"Account Handle"},"connection_type":{"type":"string","title":"Connection Type","default":"API_OAUTH"}},"type":"object","required":["tenant_id","identity_id","platform","account_handle"],"title":"RegisterPlatformConnectionRequest"},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"full_name":{"type":"string","title":"Full Name"},"tenant_name":{"type":"string","title":"Tenant Name"},"tenant_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Slug"},"locale":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Locale"},"attribution":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Attribution"}},"type":"object","required":["email","password","full_name","tenant_name"],"title":"RegisterRequest"},"RegisterSimRequest":{"properties":{"iccid":{"type":"string","title":"Iccid"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"carrier":{"type":"string","title":"Carrier","default":"kolbi"}},"type":"object","required":["iccid"],"title":"RegisterSimRequest"},"RegressionTestBrief":{"properties":{"id":{"type":"string","title":"Id"},"error_record_id":{"type":"string","title":"Error Record Id"},"test_path":{"type":"string","title":"Test Path"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","error_record_id","test_path","status"],"title":"RegressionTestBrief"},"RegressionTestCreate":{"properties":{"test_path":{"type":"string","title":"Test Path"},"status":{"type":"string","title":"Status","default":"pending"}},"type":"object","required":["test_path"],"title":"RegressionTestCreate"},"RegressionTestResponse":{"properties":{"id":{"type":"string","title":"Id"},"error_record_id":{"type":"string","title":"Error Record Id"},"test_path":{"type":"string","title":"Test Path"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","error_record_id","test_path","status"],"title":"RegressionTestResponse"},"ReinvestmentDecisionPatch":{"properties":{"decision":{"type":"string","title":"Decision"},"approved_by":{"type":"string","title":"Approved By"}},"type":"object","required":["decision","approved_by"],"title":"ReinvestmentDecisionPatch"},"ReleaseInfo":{"properties":{"app_version":{"type":"string","title":"App Version"},"commit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commit"},"note":{"type":"string","title":"Note"}},"type":"object","required":["app_version","note"],"title":"ReleaseInfo"},"RetentionRunResponse":{"properties":{"artifacts_video_purged":{"type":"integer","title":"Artifacts Video Purged"},"artifacts_screenshot_purged":{"type":"integer","title":"Artifacts Screenshot Purged"},"operational_logs_purged":{"type":"integer","title":"Operational Logs Purged"},"ran_at":{"type":"string","title":"Ran At"},"sms_observations_purged":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sms Observations Purged"}},"type":"object","required":["artifacts_video_purged","artifacts_screenshot_purged","operational_logs_purged","ran_at"],"title":"RetentionRunResponse"},"RetentionStatus":{"properties":{"raw_video_ttl_days":{"type":"integer","title":"Raw Video Ttl Days"},"screenshot_ttl_days":{"type":"integer","title":"Screenshot Ttl Days"},"operational_log_ttl_days":{"type":"integer","title":"Operational Log Ttl Days"},"artifacts_video_count":{"type":"integer","title":"Artifacts Video Count"},"artifacts_screenshot_count":{"type":"integer","title":"Artifacts Screenshot Count"},"oldest_artifact_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest Artifact At"}},"type":"object","required":["raw_video_ttl_days","screenshot_ttl_days","operational_log_ttl_days","artifacts_video_count","artifacts_screenshot_count"],"title":"RetentionStatus"},"RevalidateRequest":{"properties":{"device_id":{"type":"string","title":"Device Id"}},"type":"object","required":["device_id"],"title":"RevalidateRequest"},"ReviewBatch":{"properties":{"date_from":{"type":"string","format":"date","title":"Date From"},"date_to":{"type":"string","format":"date","title":"Date To"},"inventory_digest":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Inventory Digest"},"reviews":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":500,"title":"Reviews"},"empty_inventory_reviewed":{"type":"boolean","title":"Empty Inventory Reviewed","default":false},"invalidate":{"type":"boolean","title":"Invalidate","default":false}},"additionalProperties":false,"type":"object","required":["date_from","date_to","inventory_digest"],"title":"ReviewBatch"},"RiskStatusUpdateRequest":{"properties":{"risk_status":{"type":"string","title":"Risk Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["risk_status"],"title":"RiskStatusUpdateRequest","description":"Body for PATCH /admin/tenants/{id}/risk-status. `risk_status` must be\none of active/review/restricted (validated against TenantRiskStatus in\nthe route, not here, so an invalid value gets a clean 422 detail instead\nof a bare pydantic error)."},"RunCycleResponse":{"properties":{"converted_from_leads":{"type":"integer","title":"Converted From Leads"},"scored":{"type":"integer","title":"Scored"},"opportunities_created":{"type":"integer","title":"Opportunities Created"},"composed":{"type":"integer","title":"Composed"},"sent":{"type":"integer","title":"Sent"},"dry_run":{"type":"integer","title":"Dry Run"},"replies_read":{"type":"integer","title":"Replies Read"},"classified":{"type":"integer","title":"Classified"},"auto_replied":{"type":"integer","title":"Auto Replied"},"followed_up":{"type":"integer","title":"Followed Up"},"escalated":{"type":"integer","title":"Escalated"}},"type":"object","required":["converted_from_leads","scored","opportunities_created","composed","sent","dry_run","replies_read","classified","auto_replied","followed_up","escalated"],"title":"RunCycleResponse"},"RunEvidenceResponse":{"properties":{"run_id":{"type":"string","title":"Run Id"},"check_id":{"type":"string","title":"Check Id"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"signature_status":{"type":"string","title":"Signature Status"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Algorithm"},"canonicalization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonicalization"},"signed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed At"},"unsigned_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unsigned Reason"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"reason":{"type":"string","title":"Reason"},"verification_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Endpoint"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"network":{"additionalProperties":true,"type":"object","title":"Network"}},"type":"object","required":["run_id","check_id","payload","signature_status","verified","reason"],"title":"RunEvidenceResponse","description":"GET /evidence/runs/{run_id} (audit 2026-09-15): the customer-downloadable\nsigned record of one monitor run. `payload` is the exact RFC 8785 JCS\npayload that was signed; `verified` is recomputed on every read."},"RunEvidenceVerifyResponse":{"properties":{"run_id":{"type":"string","title":"Run Id"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"reason":{"type":"string","title":"Reason"},"signature_status":{"type":"string","title":"Signature Status"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"}},"type":"object","required":["run_id","verified","reason","signature_status"],"title":"RunEvidenceVerifyResponse"},"RunSignedEnvelopeResponse":{"properties":{"run_id":{"type":"string","title":"Run Id"},"check_id":{"type":"string","title":"Check Id"},"signature_status":{"type":"string","title":"Signature Status"},"unsigned_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unsigned Reason"},"manifest":{"additionalProperties":true,"type":"object","title":"Manifest"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"algorithm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Algorithm"},"canonicalization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonicalization"},"manifest_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifest Sha256"},"signed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed At"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"reason":{"type":"string","title":"Reason"},"verification_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Endpoint"}},"type":"object","required":["run_id","check_id","signature_status","manifest","verified","reason"],"title":"RunSignedEnvelopeResponse","description":"GET /evidence/runs/{run_id}/signed.json: downloadable signed record.\n`manifest` is the exact signed payload; POST {manifest, signature, key_id}\nto verification_endpoint to check it without an account."},"RunbookBrief":{"properties":{"id":{"type":"string","title":"Id"},"key":{"type":"string","title":"Key"},"title":{"type":"string","title":"Title"},"version":{"type":"integer","title":"Version"},"subsystem":{"type":"string","title":"Subsystem"}},"type":"object","required":["id","key","title","version","subsystem"],"title":"RunbookBrief"},"RunbookResponse":{"properties":{"id":{"type":"string","title":"Id"},"key":{"type":"string","title":"Key"},"title":{"type":"string","title":"Title"},"version":{"type":"integer","title":"Version"},"path":{"type":"string","title":"Path"},"subsystem":{"type":"string","title":"Subsystem"}},"type":"object","required":["id","key","title","version","path","subsystem"],"title":"RunbookResponse"},"RunbookUpsert":{"properties":{"key":{"type":"string","title":"Key"},"title":{"type":"string","title":"Title"},"path":{"type":"string","title":"Path"},"subsystem":{"type":"string","title":"Subsystem"}},"type":"object","required":["key","title","path","subsystem"],"title":"RunbookUpsert"},"SafeAvailableCapacityResponse":{"properties":{"safe_available":{"additionalProperties":{"type":"number"},"type":"object","title":"Safe Available"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["safe_available","computed_at"],"title":"SafeAvailableCapacityResponse","description":"GET /admission/capacity: safe_available_capacity per resource type,\nalready net of active/reserved CapacityReservation rows (V15 SS10.5)."},"SalesCompanyResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"domain":{"type":"string","title":"Domain"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"segment":{"type":"string","title":"Segment"},"size_bucket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size Bucket"},"source":{"type":"string","title":"Source"},"fit_score":{"type":"number","title":"Fit Score"},"fit_reasons_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Fit Reasons Json"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","domain","segment","source","fit_score","status","created_at"],"title":"SalesCompanyResponse"},"SalesMetricsResponse":{"properties":{"contacted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contacted"},"replied":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Replied"},"reply_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reply Rate"},"qualified":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Qualified"},"escalated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Escalated"},"won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Won"},"opt_outs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Opt Outs"}},"type":"object","title":"SalesMetricsResponse"},"SanitizationResultRequest":{"properties":{"result":{"type":"string","title":"Result"},"steps":{"items":{"$ref":"#/components/schemas/SanitizationStepResult"},"type":"array","title":"Steps","default":[]},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["result"],"title":"SanitizationResultRequest"},"SanitizationStatusResponse":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"SanitizationStatusResponse"},"SanitizationStepResult":{"properties":{"name":{"type":"string","title":"Name"},"ok":{"type":"boolean","title":"Ok"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["name","ok"],"title":"SanitizationStepResult"},"SchedulePostRequest":{"properties":{"social_account_id":{"type":"string","title":"Social Account Id"},"caption":{"type":"string","title":"Caption"},"media_urls":{"items":{"type":"string"},"type":"array","title":"Media Urls"},"target_execution_type":{"type":"string","title":"Target Execution Type","default":"api"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"approval_mode":{"type":"string","title":"Approval Mode","default":"autopilot"}},"type":"object","required":["social_account_id","caption","media_urls"],"title":"SchedulePostRequest"},"SecurityEventListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SecurityEventResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["items","total","limit"],"title":"SecurityEventListResponse"},"SecurityEventResponse":{"properties":{"id":{"type":"string","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"actor_type":{"type":"string","title":"Actor Type"},"actor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Id"},"event_type":{"type":"string","title":"Event Type"},"severity":{"type":"string","title":"Severity"},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"detail_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail Json"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["id","created_at","actor_type","event_type","severity"],"title":"SecurityEventResponse"},"SecurityFindingCounts":{"properties":{"critical":{"type":"integer","title":"Critical"},"high":{"type":"integer","title":"High"},"medium":{"type":"integer","title":"Medium"},"low":{"type":"integer","title":"Low"}},"type":"object","required":["critical","high","medium","low"],"title":"SecurityFindingCounts"},"SecurityFindingCreateRequest":{"properties":{"product_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"},"severity":{"type":"string","title":"Severity"},"title":{"type":"string","title":"Title"},"source":{"type":"string","title":"Source"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"}},"type":"object","required":["severity","title","source"],"title":"SecurityFindingCreateRequest"},"SecurityFindingResponse":{"properties":{"id":{"type":"string","title":"Id"},"product_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Code"},"severity":{"type":"string","title":"Severity"},"status":{"type":"string","title":"Status"},"title":{"type":"string","title":"Title"},"source":{"type":"string","title":"Source"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"opened_at":{"type":"string","format":"date-time","title":"Opened At"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"}},"type":"object","required":["id","severity","status","title","source","opened_at"],"title":"SecurityFindingResponse"},"SecurityFindingUpdateRequest":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"SecurityFindingUpdateRequest","description":"PATCH: only status may move (open -> fixed|accepted, or reopen).\nseverity/title/source/reference/product_code are the finding's identity\nand are never edited in place -- close the row and open a new one if the\nfinding itself changes."},"SellableCapacityItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"capacity_bound":{"type":"boolean","title":"Capacity Bound"},"safe_available":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Safe Available"},"max_concurrency_per_subscription":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Concurrency Per Subscription"},"active_subscriptions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Subscriptions"},"remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Remaining"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"p95_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Seconds"},"plan_minutes_per_month":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Plan Minutes Per Month"},"monthly_supply_minutes":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Monthly Supply Minutes"},"slots":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slots"}},"type":"object","required":["product_code","capacity_bound"],"title":"SellableCapacityItem","description":"V15 SS10.5/SS16.4: how many MORE subscriptions of this product the\nfleet can still take. `remaining` is None whenever any input is unmeasured\n(no APPROVED ServicePlan, unknown max_concurrency, unknown resource) or\nthe resource is a budget rather than a slot -- `reason` carries the\nmachine string that says which (see app/services/sellable_capacity_service.py).\nNever a guessed number.\n\nC.27 (2026-09-06): screen products are sold by measured phone MINUTES, so\nthe last four fields show the whole arithmetic -- p95 seconds per check,\nminutes/month the largest approved plan occupies, the monthly supply of the\nshared pool, and the gross slots that division yields. They stay null for\nthe number/corridor family and for the AI-budget add-on, which are not\npriced in minutes."},"ServicePlanCreateRequest":{"properties":{"product_code":{"type":"string","title":"Product Code"},"plan_code":{"type":"string","title":"Plan Code"},"tier":{"type":"string","title":"Tier"},"price_monthly_usd":{"type":"number","title":"Price Monthly Usd"},"currency":{"type":"string","title":"Currency","default":"USD"},"period":{"type":"string","title":"Period","default":"month"},"overage_policy":{"type":"string","title":"Overage Policy","default":"hard"},"admission_capacity_required_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Admission Capacity Required Json"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"limits":{"items":{"$ref":"#/components/schemas/ServicePlanLimitUpsert"},"type":"array","title":"Limits","default":[]}},"type":"object","required":["product_code","plan_code","tier","price_monthly_usd"],"title":"ServicePlanCreateRequest"},"ServicePlanLimitResponse":{"properties":{"limit_key":{"type":"string","title":"Limit Key"},"included_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Value"},"unit":{"type":"string","title":"Unit"},"hard_cap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hard Cap"}},"type":"object","required":["limit_key","unit"],"title":"ServicePlanLimitResponse"},"ServicePlanLimitUpsert":{"properties":{"limit_key":{"type":"string","title":"Limit Key"},"included_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Value"},"unit":{"type":"string","title":"Unit"},"hard_cap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hard Cap"}},"type":"object","required":["limit_key","unit"],"title":"ServicePlanLimitUpsert"},"ServicePlanPatchRequest":{"properties":{"price_monthly_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Monthly Usd"},"overage_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overage Policy"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"limits":{"anyOf":[{"items":{"$ref":"#/components/schemas/ServicePlanLimitUpsert"},"type":"array"},{"type":"null"}],"title":"Limits"}},"type":"object","title":"ServicePlanPatchRequest"},"ServicePlanResponse":{"properties":{"id":{"type":"string","title":"Id"},"product_code":{"type":"string","title":"Product Code"},"plan_code":{"type":"string","title":"Plan Code"},"tier":{"type":"string","title":"Tier"},"price_monthly_usd":{"type":"number","title":"Price Monthly Usd"},"currency":{"type":"string","title":"Currency"},"period":{"type":"string","title":"Period"},"is_public":{"type":"boolean","title":"Is Public"},"limits_status":{"type":"string","title":"Limits Status"},"overage_policy":{"type":"string","title":"Overage Policy"},"admission_capacity_required_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Admission Capacity Required Json"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"limits":{"items":{"$ref":"#/components/schemas/ServicePlanLimitResponse"},"type":"array","title":"Limits","default":[]},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","product_code","plan_code","tier","price_monthly_usd","currency","period","is_public","limits_status","overage_policy","updated_at"],"title":"ServicePlanResponse"},"SessionCreateRequest":{"properties":{"ttl_minutes":{"type":"integer","exclusiveMinimum":0.0,"title":"Ttl Minutes","default":480}},"type":"object","title":"SessionCreateRequest"},"ShadowBillingReport":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"type":"string","title":"Tenant Name"},"period_month":{"type":"string","title":"Period Month"},"plan_tier":{"type":"string","title":"Plan Tier"},"plan_price_usd":{"type":"number","title":"Plan Price Usd"},"estimated_cost_usd":{"type":"number","title":"Estimated Cost Usd"},"contribution_margin_usd":{"type":"number","title":"Contribution Margin Usd"},"contribution_margin_pct":{"type":"number","title":"Contribution Margin Pct"},"human_minutes_spent":{"type":"number","title":"Human Minutes Spent"}},"type":"object","required":["tenant_id","tenant_name","period_month","plan_tier","plan_price_usd","estimated_cost_usd","contribution_margin_usd","contribution_margin_pct","human_minutes_spent"],"title":"ShadowBillingReport"},"SlotCreateRequest":{"properties":{"country_code":{"type":"string","title":"Country Code","default":"CR"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"duration_hours":{"type":"integer","exclusiveMinimum":0.0,"title":"Duration Hours","default":720}},"type":"object","title":"SlotCreateRequest"},"SlotResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id"},"device_serial":{"type":"string","title":"Device Serial"},"country_code":{"type":"string","title":"Country Code"},"status":{"type":"string","title":"Status"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"released_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Released At"},"release_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Release Reason"},"deprovision_result_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Deprovision Result Json"}},"type":"object","required":["id","tenant_id","device_id","device_serial","country_code","status","assigned_at","expires_at","released_at","release_reason","deprovision_result_json"],"title":"SlotResponse"},"StopNewJobsRequest":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Reason"}},"type":"object","title":"StopNewJobsRequest"},"SubscriptionActionResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"provider":{"type":"string","title":"Provider"}},"type":"object","required":["provider"],"title":"SubscriptionActionResponse","description":"Shared response shape for cancel/pause/resume (Master Plan V13 SS28,\nbilling readiness section 8)."},"SubscriptionListItem":{"properties":{"id":{"type":"string","title":"Id"},"plan_code":{"type":"string","title":"Plan Code"},"status":{"type":"string","title":"Status"},"provider":{"type":"string","title":"Provider"},"amount_usd":{"type":"number","title":"Amount Usd"},"current_period_start":{"type":"string","title":"Current Period Start"},"current_period_end":{"type":"string","title":"Current Period End"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End","default":false},"price_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Tier"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"checkout_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Id"}},"type":"object","required":["id","plan_code","status","provider","amount_usd","current_period_start","current_period_end"],"title":"SubscriptionListItem","description":"One row of GET /billing/subscriptions -- the tenant's own\nsubscriptions, with the id the cancel/pause/resume endpoints need\n(unlike GET /service-plans, which never exposes a subscription id).\ntier is the purchased ServicePlan's own tier (founder/standard/...),\ndistinct from price_tier (the Founder-COHORT billing discount, V15 4.1)."},"SuppressionCreateRequest":{"properties":{"value":{"type":"string","title":"Value"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["value","reason"],"title":"SuppressionCreateRequest"},"SuppressionResponse":{"properties":{"id":{"type":"string","title":"Id"},"value":{"type":"string","title":"Value"},"reason":{"type":"string","title":"Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","value","reason","created_at"],"title":"SuppressionResponse"},"SuspendRequest":{"properties":{"reason":{"type":"string","maxLength":300,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"SuspendRequest"},"SuspensionStatusResponse":{"properties":{"id":{"type":"string","title":"Id"},"suspended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended At"},"suspended_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended Reason"},"suspended_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended By"}},"type":"object","required":["id"],"title":"SuspensionStatusResponse"},"SyncEntitlementsResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"provider":{"type":"string","title":"Provider"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"synced":{"type":"boolean","title":"Synced","default":false}},"type":"object","required":["provider"],"title":"SyncEntitlementsResponse"},"TenantCreate":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"plan_tier":{"type":"string","title":"Plan Tier","default":"starter"},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"}},"type":"object","required":["name","slug"],"title":"TenantCreate"},"TenantDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"type":"string","title":"Status"},"plan_tier":{"type":"string","title":"Plan Tier"},"risk_status":{"type":"string","title":"Risk Status"},"abuse_score":{"type":"integer","title":"Abuse Score"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"suspended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended At"},"subscriptions":{"items":{"$ref":"#/components/schemas/TenantSubscriptionItem"},"type":"array","title":"Subscriptions"},"active_checks_count":{"type":"integer","title":"Active Checks Count"},"api_keys_count":{"type":"integer","title":"Api Keys Count"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"usage":{"items":{"$ref":"#/components/schemas/TenantUsageItem"},"type":"array","title":"Usage"},"checks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Checks"},"overage_events":{"items":{"$ref":"#/components/schemas/TenantOverageEventItem"},"type":"array","title":"Overage Events"},"security_events_recent":{"items":{"$ref":"#/components/schemas/TenantSecurityEventItem"},"type":"array","title":"Security Events Recent"},"health_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Health Score"},"health_computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Health Computed At"},"use_case_declaration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case Declaration"},"domain_verification_status":{"type":"string","title":"Domain Verification Status"},"abuse_signals_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Abuse Signals Json"}},"type":"object","required":["id","name","slug","status","plan_tier","risk_status","abuse_score","subscriptions","active_checks_count","api_keys_count","usage","checks","overage_events","security_events_recent","domain_verification_status"],"title":"TenantDetailResponse"},"TenantHealthResponse":{"properties":{"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"churn_risk_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Churn Risk Level"},"computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Computed At"},"narrative_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Narrative Text"}},"type":"object","title":"TenantHealthResponse","description":"Tenant-facing view of its own health score -- deliberately narrower\nthan CustomerHealthScoreResponse: no raw components_json breakdown, only\nthe score, risk bucket and a labelled narrative sentence when one was\ngenerated."},"TenantListItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"type":"string","title":"Status"},"plan_tier":{"type":"string","title":"Plan Tier"},"risk_status":{"type":"string","title":"Risk Status"},"abuse_score":{"type":"integer","title":"Abuse Score"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"suspended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended At"},"subscriptions":{"items":{"$ref":"#/components/schemas/TenantSubscriptionItem"},"type":"array","title":"Subscriptions"},"active_checks_count":{"type":"integer","title":"Active Checks Count"},"api_keys_count":{"type":"integer","title":"Api Keys Count"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"usage":{"items":{"$ref":"#/components/schemas/TenantUsageItem"},"type":"array","title":"Usage"}},"type":"object","required":["id","name","slug","status","plan_tier","risk_status","abuse_score","subscriptions","active_checks_count","api_keys_count","usage"],"title":"TenantListItem"},"TenantNumberResponse":{"properties":{"assignment_id":{"type":"string","title":"Assignment Id"},"device_serial":{"type":"string","title":"Device Serial"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"carrier_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carrier Code"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"},"device_status":{"type":"string","title":"Device Status"},"device_health_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Health Score"}},"type":"object","required":["assignment_id","device_serial","phone_number","country_code","carrier_code","assigned_at","device_status","device_health_score"],"title":"TenantNumberResponse","description":"What a customer sees on the monitor page (GET /monitor/numbers): their\ndedicated number plus the health of the device it lives on -- never any\nother tenant's data."},"TenantOverageEventItem":{"properties":{"id":{"type":"string","title":"Id"},"product_code":{"type":"string","title":"Product Code"},"limit_key":{"type":"string","title":"Limit Key"},"used_value":{"type":"number","title":"Used Value"},"included_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Included Value"},"policy_applied":{"type":"string","title":"Policy Applied"},"action":{"type":"string","title":"Action"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","product_code","limit_key","used_value","policy_applied","action","created_at"],"title":"TenantOverageEventItem"},"TenantPatchRequest":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"risk_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"suspend_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspend Reason"}},"type":"object","title":"TenantPatchRequest"},"TenantPlanResponse":{"properties":{"plan_code":{"type":"string","title":"Plan Code"},"product_code":{"type":"string","title":"Product Code"},"tier":{"type":"string","title":"Tier"},"limits_status":{"type":"string","title":"Limits Status"},"overage_policy":{"type":"string","title":"Overage Policy"},"usage":{"items":{"$ref":"#/components/schemas/TenantPlanUsageItem"},"type":"array","title":"Usage"}},"type":"object","required":["plan_code","product_code","tier","limits_status","overage_policy","usage"],"title":"TenantPlanResponse"},"TenantPlanUsageItem":{"properties":{"limit_key":{"type":"string","title":"Limit Key"},"included_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Value"},"unit":{"type":"string","title":"Unit"},"used_value":{"type":"number","title":"Used Value","default":0.0},"pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct"}},"type":"object","required":["limit_key","unit"],"title":"TenantPlanUsageItem","description":"One row of GET /service-plans: a limit key plus the tenant's current\nusage against it (null pct when the counter has no rows yet this period)."},"TenantQuotaUsageItem":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"tenant_name":{"type":"string","title":"Tenant Name"},"product_code":{"type":"string","title":"Product Code"},"limit_key":{"type":"string","title":"Limit Key"},"included_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Value"},"used_value":{"type":"number","title":"Used Value"},"pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["tenant_id","tenant_name","product_code","limit_key","used_value","unit"],"title":"TenantQuotaUsageItem"},"TenantResponse":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"plan_tier":{"type":"string","title":"Plan Tier","default":"starter"},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"use_case_declaration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case Declaration"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"}},"type":"object","required":["name","slug","id","status","created_at","updated_at"],"title":"TenantResponse"},"TenantRiskResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"risk_status":{"type":"string","title":"Risk Status"},"abuse_score":{"type":"integer","title":"Abuse Score"},"abuse_signals_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Abuse Signals Json"},"domain_verification_status":{"type":"string","title":"Domain Verification Status"},"domain_verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Domain Verified At"}},"type":"object","required":["tenant_id","risk_status","abuse_score","domain_verification_status"],"title":"TenantRiskResponse","description":"GET /tenants/me/risk (Master Plan V15 14.4)."},"TenantSecurityEventItem":{"properties":{"id":{"type":"string","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"severity":{"type":"string","title":"Severity"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"detail_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Detail Json"}},"type":"object","required":["id","event_type","severity","created_at"],"title":"TenantSecurityEventItem"},"TenantSettingsResponse":{"properties":{"locale":{"type":"string","title":"Locale"},"supported_locales":{"items":{"type":"string"},"type":"array","title":"Supported Locales"}},"type":"object","required":["locale","supported_locales"],"title":"TenantSettingsResponse"},"TenantSettingsUpdate":{"properties":{"locale":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Locale"}},"type":"object","title":"TenantSettingsUpdate","description":"PATCH /tenants/me/settings (owner/admin). Only whitelisted keys; the\ninternal flags in tenant.settings (e.g. new_jobs_blocked) are never writable."},"TenantSubscriptionItem":{"properties":{"id":{"type":"string","title":"Id"},"plan_code":{"type":"string","title":"Plan Code"},"status":{"type":"string","title":"Status"},"provider":{"type":"string","title":"Provider"},"amount_usd":{"type":"number","title":"Amount Usd"},"current_period_end":{"type":"string","format":"date-time","title":"Current Period End"},"is_internal":{"type":"boolean","title":"Is Internal"}},"type":"object","required":["id","plan_code","status","provider","amount_usd","current_period_end","is_internal"],"title":"TenantSubscriptionItem"},"TenantUsageItem":{"properties":{"product_code":{"type":"string","title":"Product Code"},"limit_key":{"type":"string","title":"Limit Key"},"included_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Included Value"},"used_value":{"type":"number","title":"Used Value"},"pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct"}},"type":"object","required":["product_code","limit_key","used_value"],"title":"TenantUsageItem"},"TenantVerificationRequest":{"properties":{"use_case_declaration":{"type":"string","title":"Use Case Declaration"}},"type":"object","required":["use_case_declaration"],"title":"TenantVerificationRequest","description":"Body for PATCH /tenants/me/verification (Master Plan V13 SS14). Declaring\na use case does not verify the tenant by itself — an admin still has to\napprove via POST /admin/tenants/{id}/verify before otp_sms checks unlock."},"Token":{"properties":{"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"mfa_required":{"type":"boolean","title":"Mfa Required","default":false},"mfa_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mfa Token"}},"type":"object","title":"Token","description":"Login/refresh response. When MFA is enabled `mfa_required=True` and only\n`mfa_token` is set (POST it to /auth/mfa/challenge to get real tokens);\notherwise `access_token` (and, unless AUTH_COOKIE_MODE, `refresh_token`)\ncarry the session. The frontend keeps the access token in memory and,\nwhen AUTH_COOKIE_MODE=true, the refresh token in a `Secure; HttpOnly;\nSameSite=Strict` cookie instead of the JSON body."},"TrackEventRequest":{"properties":{"event_name":{"type":"string","title":"Event Name"},"visitor_id":{"type":"string","title":"Visitor Id"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"properties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Properties"}},"type":"object","required":["event_name","visitor_id"],"title":"TrackEventRequest"},"UnsubscribeResponse":{"properties":{"status":{"type":"string","enum":["unsubscribed","already_unsubscribed","invalid_token"],"title":"Status"}},"type":"object","required":["status"],"title":"UnsubscribeResponse","description":"Response for the public, unauthenticated one-click unsubscribe\nendpoint (debt #18, RFC 8058 List-Unsubscribe-Post)."},"UpsellPatchRequest":{"properties":{"status":{"type":"string","enum":["open","sent","accepted","dismissed"],"title":"Status"}},"type":"object","required":["status"],"title":"UpsellPatchRequest"},"UpsellRecommendationResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"trigger_key":{"type":"string","title":"Trigger Key"},"from_product_code":{"type":"string","title":"From Product Code"},"to_product_code":{"type":"string","title":"To Product Code"},"reason":{"type":"string","title":"Reason"},"evidence_json":{"additionalProperties":true,"type":"object","title":"Evidence Json"},"status":{"type":"string","title":"Status"},"explanation_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Explanation Json"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","trigger_key","from_product_code","to_product_code","reason","evidence_json","status","created_at"],"title":"UpsellRecommendationResponse"},"UserResponse":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"is_active":{"type":"boolean","title":"Is Active","default":true},"id":{"type":"string","title":"Id"},"is_superuser":{"type":"boolean","title":"Is Superuser"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"mfa_enabled":{"type":"boolean","title":"Mfa Enabled","default":false},"mfa_enrollment_required":{"type":"boolean","title":"Mfa Enrollment Required","default":false},"tenant_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tenant Verified"}},"type":"object","required":["email","id","is_superuser","created_at"],"title":"UserResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WaitlistJoinRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"product_code":{"type":"string","title":"Product Code"},"locale":{"type":"string","title":"Locale","default":"en"},"source":{"type":"string","title":"Source","default":"waitlist_page"},"consent_marketing":{"type":"boolean","title":"Consent Marketing","default":false},"message":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Message"},"attribution":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Attribution"}},"type":"object","required":["email","product_code"],"title":"WaitlistJoinRequest"},"WaitlistJoinResponse":{"properties":{"joined":{"type":"boolean","title":"Joined","default":true},"product_code":{"type":"string","title":"Product Code"}},"type":"object","required":["product_code"],"title":"WaitlistJoinResponse","description":"Deliberately minimal: never echoes another lead's data, never reveals\nwhether this email was already on the list for this product (see\nWaitlistService.create_lead's docstring)."},"WaitlistLeadResponse":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"product_code":{"type":"string","title":"Product Code"},"locale":{"type":"string","title":"Locale"},"source":{"type":"string","title":"Source"},"consent_marketing":{"type":"boolean","title":"Consent Marketing"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"status":{"type":"string","title":"Status","default":"lead"},"answered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Answered At"},"answered_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answered By"}},"type":"object","required":["id","email","product_code","locale","source","consent_marketing","created_at"],"title":"WaitlistLeadResponse"},"WaitlistTicketStatusUpdate":{"properties":{"status":{"type":"string","enum":["answered","closed","open"],"title":"Status"}},"type":"object","required":["status"],"title":"WaitlistTicketStatusUpdate"},"WarmupTriggerRequest":{"properties":{"serial":{"type":"string","title":"Serial"},"email":{"type":"string","title":"Email"},"platforms":{"items":{"type":"string"},"type":"array","title":"Platforms","default":["instagram","tiktok","facebook"]},"min_duration_s":{"type":"number","title":"Min Duration S","default":30.0},"max_duration_s":{"type":"number","title":"Max Duration S","default":60.0}},"type":"object","required":["serial","email"],"title":"WarmupTriggerRequest"},"WorkerCredentialIssueRequest":{"properties":{"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"expires_in_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In Days"},"label":{"type":"string","title":"Label"}},"type":"object","required":["label"],"title":"WorkerCredentialIssueRequest"},"WorkerCredentialIssueResponse":{"properties":{"key_id":{"type":"string","title":"Key Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"label":{"type":"string","title":"Label"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"revoked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked Reason"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"rotated_from_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rotated From Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"secret":{"type":"string","title":"Secret"}},"type":"object","required":["key_id","device_serial","scopes","label","expires_at","revoked_at","revoked_reason","last_used_at","rotated_from_id","created_at","secret"],"title":"WorkerCredentialIssueResponse"},"WorkerCredentialOut":{"properties":{"key_id":{"type":"string","title":"Key Id"},"device_serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Serial"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"label":{"type":"string","title":"Label"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"revoked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked Reason"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"rotated_from_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rotated From Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["key_id","device_serial","scopes","label","expires_at","revoked_at","revoked_reason","last_used_at","rotated_from_id","created_at"],"title":"WorkerCredentialOut"},"WorkerCredentialRevokeRequest":{"properties":{"reason":{"type":"string","title":"Reason"}},"type":"object","required":["reason"],"title":"WorkerCredentialRevokeRequest"},"WorkerCredentialRotateRequest":{"properties":{"grace_minutes":{"type":"integer","title":"Grace Minutes","default":30}},"type":"object","title":"WorkerCredentialRotateRequest"},"WorkerExpireResponse":{"properties":{"sessions_expired":{"type":"integer","title":"Sessions Expired"},"slots_released":{"type":"integer","title":"Slots Released"}},"type":"object","required":["sessions_expired","slots_released"],"title":"WorkerExpireResponse"},"WorkerHeartbeatRequest":{"properties":{"current_load":{"type":"number","title":"Current Load","default":0.0},"status":{"type":"string","title":"Status","default":"online"},"active_emulators":{"type":"integer","title":"Active Emulators","default":0},"active_physical_devices":{"type":"integer","title":"Active Physical Devices","default":0}},"type":"object","title":"WorkerHeartbeatRequest"},"WorkerNodeItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"hostname":{"type":"string","title":"Hostname"},"status":{"type":"string","title":"Status"},"last_heartbeat_at":{"type":"string","format":"date-time","title":"Last Heartbeat At"},"capabilities_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Capabilities Json"},"physical_devices_count":{"type":"integer","title":"Physical Devices Count"},"current_load":{"type":"number","title":"Current Load"}},"type":"object","required":["id","name","hostname","status","last_heartbeat_at","physical_devices_count","current_load"],"title":"WorkerNodeItem"},"WorkerNodeResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"hostname":{"type":"string","title":"Hostname"},"platform":{"type":"string","title":"Platform"},"status":{"type":"string","title":"Status"},"max_emulators":{"type":"integer","title":"Max Emulators"},"physical_devices_count":{"type":"integer","title":"Physical Devices Count"},"current_load":{"type":"number","title":"Current Load"},"capabilities_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Capabilities Json"},"sim_cards_json":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Sim Cards Json"},"last_heartbeat_at":{"type":"string","format":"date-time","title":"Last Heartbeat At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","hostname","platform","status","max_emulators","physical_devices_count","current_load","last_heartbeat_at","created_at"],"title":"WorkerNodeResponse"},"WorkerRegisterRequest":{"properties":{"worker_id":{"type":"string","title":"Worker Id"},"name":{"type":"string","title":"Name"},"hostname":{"type":"string","title":"Hostname"},"platform":{"type":"string","title":"Platform","default":"linux"},"max_emulators":{"type":"integer","title":"Max Emulators","default":6},"physical_devices_count":{"type":"integer","title":"Physical Devices Count","default":0},"capabilities":{"items":{"type":"string"},"type":"array","title":"Capabilities","default":[]},"sim_cards":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Sim Cards","default":[]}},"type":"object","required":["worker_id","name","hostname"],"title":"WorkerRegisterRequest"},"WorkflowActionType":{"type":"string","enum":["OPEN_APP","CLOSE_APP","TAP","SWIPE","TYPE_TEXT","WAIT","ASSERT_TEXT","SCREENSHOT","REBOOT"],"title":"WorkflowActionType"},"app__api__v1__identities__InboundEmailWebhookRequest":{"properties":{"recipient_alias":{"type":"string","title":"Recipient Alias"},"sender":{"type":"string","title":"Sender"},"subject":{"type":"string","title":"Subject"},"body_text":{"type":"string","title":"Body Text"},"source_type":{"type":"string","title":"Source Type","default":"webhook"}},"type":"object","required":["recipient_alias","sender","subject","body_text"],"title":"InboundEmailWebhookRequest"},"app__schemas__auth__SessionResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["id","created_at","expires_at"],"title":"SessionResponse"},"app__schemas__device_rental__SessionResponse":{"properties":{"id":{"type":"string","title":"Id"},"slot_id":{"type":"string","title":"Slot Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"device_serial":{"type":"string","title":"Device Serial"},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"remote_connect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remote Connect Url"},"control_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Control Url"},"end_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Reason"},"stf_configured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stf Configured"}},"type":"object","required":["id","slot_id","tenant_id","device_serial","status","started_at","expires_at","ended_at","remote_connect_url","control_url","end_reason"],"title":"SessionResponse"},"app__schemas__sales__InboundEmailWebhookRequest":{"properties":{"from_email":{"type":"string","title":"From Email"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"body":{"type":"string","title":"Body"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id"}},"type":"object","required":["from_email","body"],"title":"InboundEmailWebhookRequest"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Self-service tenant API key (see docs/products/API_QUICKSTART.md step 2)."}}}}