{"openapi":"3.1.0","info":{"title":"Planisphere Compliant-AI API","description":"Tenant-owned AI action gates for compliant workflows. Law is core-backed; additional registered verticals expose manifest-backed gates with explicit claim boundaries.","version":"0.1.0"},"servers":[{"url":"https://api.planisphere.ooo","description":"Production"}],"paths":{"/account/me":{"get":{"tags":["account"],"summary":"Account Me","operationId":"account_me_account_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountMeResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"PlanisphereAccountSession":[]}]},"patch":{"tags":["account"],"summary":"Update Account Me","description":"Update signed-in organization settings.\n\nTwo independent fields, each behind its own capability: the display name\n(the tenant id and isolation boundary never change), and whether declared\nstatutory metadata values are retained. Supplying neither is a no-op read.","operationId":"update_account_me_account_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountMeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"PlanisphereAccountSession":[]}]}},"/account/logout":{"post":{"tags":["account"],"summary":"Account Logout","operationId":"account_logout_account_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountLogoutResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"PlanisphereAccountSession":[]}]}},"/account/billing/upgrade-checkout":{"post":{"tags":["account"],"summary":"Account Upgrade Checkout","description":"One-click upgrade for a signed-in sandbox tenant.\n\nThe session already names the person and the tenant, so no form: email\ncomes from the account's person row, the organization from the tenant, and\nthe tenant id is pinned from the session — a typo can never upgrade a\ndifferent tenant. Falls back to 409 with a reason when the session predates\nthe people model, so the console can show the email form instead.","operationId":"account_upgrade_checkout_account_billing_upgrade_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCheckoutResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"PlanisphereAccountSession":[]}]}},"/account/billing/complete-upgrade":{"post":{"tags":["account"],"summary":"Account Complete Upgrade","description":"Finish a verified upgrade from the console — no signup cookies needed.\n\nThe anonymous claim path authenticates with browser-bound signup cookies\nbecause a stranger on the return URL must prove they started the checkout.\nA signed-in owner with billing:manage IS that proof, and stronger: the\nsession names the tenant, so only that tenant's own verified checkout can\ncomplete. Built because a real customer lost the return tab (2026-07-30)\nand the raw key would otherwise have been unreachable.","operationId":"account_complete_upgrade_account_billing_complete_upgrade_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCompleteResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"PlanisphereAccountSession":[]}]}},"/account/billing-portal":{"post":{"tags":["account"],"summary":"Account Billing Portal","description":"Hand a signed-in production tenant to the Stripe Customer Portal.\n\nCard and invoice management live on Stripe's hosted page, so Planisphere\nnever touches payment data. Sandbox tenants, tenants without a Stripe\ncustomer, or an unconfigured Stripe return an unavailable reason (never a\n500) so the console can explain instead of dead-linking.","operationId":"account_billing_portal_account_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountBillingPortalResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"PlanisphereAccountSession":[]}]}},"/active-manifest":{"get":{"tags":["active-manifest"],"summary":"Active Manifest","operationId":"active_manifest_active_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveManifestResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/product-map":{"get":{"tags":["control-plane"],"summary":"Product Map","operationId":"product_map_product_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductMapResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/vertical-packs":{"get":{"tags":["control-plane"],"summary":"Vertical Packs","operationId":"vertical_packs_vertical_packs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerticalPackResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/pack-registry":{"get":{"tags":["control-plane"],"summary":"Pack Registry","operationId":"pack_registry_pack_registry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackRegistryResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/catalog-map":{"get":{"tags":["control-plane"],"summary":"Catalog Map","operationId":"catalog_map_catalog_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogMapResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/corpus-map":{"get":{"tags":["control-plane"],"summary":"Corpus Map","operationId":"corpus_map_corpus_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorpusMapResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/integration-recipes":{"get":{"tags":["control-plane"],"summary":"Integration Recipes","operationId":"integration_recipes_integration_recipes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationRecipesResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/workflow-map":{"get":{"tags":["control-plane"],"summary":"Workflow Map","operationId":"workflow_map_workflow_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowMapResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/demo-fixtures":{"get":{"tags":["demo"],"summary":"Demo Fixtures","operationId":"demo_fixtures_demo_fixtures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoFixturesResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/website-demo-export":{"get":{"tags":["demo"],"summary":"Website Demo Export","operationId":"website_demo_export_website_demo_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteDemoExportResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/image-plan":{"get":{"tags":["deployment"],"summary":"Deployment Image Plan","operationId":"deployment_image_plan_deployment_image_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedImageReleasePlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/hosting-plan":{"get":{"tags":["deployment"],"summary":"Deployment Hosting Plan","operationId":"deployment_hosting_plan_deployment_hosting_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedApiHostingPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/domain-plan":{"get":{"tags":["deployment"],"summary":"Deployment Domain Plan","operationId":"deployment_domain_plan_deployment_domain_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedApiDomainPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/environment-plan":{"get":{"tags":["deployment"],"summary":"Deployment Environment Plan","operationId":"deployment_environment_plan_deployment_environment_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedEnvironmentPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/cta-bridge-plan":{"get":{"tags":["deployment"],"summary":"Deployment Cta Bridge Plan","operationId":"deployment_cta_bridge_plan_deployment_cta_bridge_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedCtaBridgePlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/website-cta-inventory":{"get":{"tags":["deployment"],"summary":"Deployment Website Cta Inventory","operationId":"deployment_website_cta_inventory_deployment_website_cta_inventory_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedWebsiteCtaInventoryResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/proxy-plan":{"get":{"tags":["deployment"],"summary":"Deployment Proxy Plan","operationId":"deployment_proxy_plan_deployment_proxy_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedCtaProxyPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/tenant-console-plan":{"get":{"tags":["deployment"],"summary":"Deployment Tenant Console Plan","operationId":"deployment_tenant_console_plan_deployment_tenant_console_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedTenantConsolePlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/database-plan":{"get":{"tags":["deployment"],"summary":"Deployment Database Plan","operationId":"deployment_database_plan_deployment_database_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedDatabaseDeploymentPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/signer-plan":{"get":{"tags":["deployment"],"summary":"Deployment Signer Plan","operationId":"deployment_signer_plan_deployment_signer_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedEvidenceSignerPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/secret-plan":{"get":{"tags":["deployment"],"summary":"Deployment Secret Plan","operationId":"deployment_secret_plan_deployment_secret_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedSecretManagementPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/worker-plan":{"get":{"tags":["deployment"],"summary":"Deployment Worker Plan","operationId":"deployment_worker_plan_deployment_worker_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedWorkerDeploymentPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/operations-plan":{"get":{"tags":["deployment"],"summary":"Deployment Operations Plan","operationId":"deployment_operations_plan_deployment_operations_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedOperationsDeploymentPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/signup-plan":{"get":{"tags":["deployment"],"summary":"Deployment Signup Plan","operationId":"deployment_signup_plan_deployment_signup_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedSignupDeploymentPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/deployment/readiness":{"get":{"tags":["deployment"],"summary":"Deployment Readiness","operationId":"deployment_readiness_deployment_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostedApiReadinessResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/evidence-packets/proof-kit":{"get":{"tags":["evidence-packets"],"summary":"Proof Kit","operationId":"proof_kit_evidence_packets_proof_kit_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceProofKitResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/evidence-packets/verify-seal":{"post":{"tags":["evidence-packets"],"summary":"Verify Seal","operationId":"verify_seal_evidence_packets_verify_seal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketSealVerificationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketSealVerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/evidence-packets/seal-bundle":{"post":{"tags":["evidence-packets"],"summary":"Seal Bundle","description":"Package a tenant's evidence packet into the offline-verifiable 4-file\nPLANIVERSE-SEAL bundle (payload + ATTESTATION.json + attestation_signature\nsidecar). Stateless and raw-safe: the posted packet is canonicalized and\nPlanisphere-signed, nothing is stored.","operationId":"seal_bundle_evidence_packets_seal_bundle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SealBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SealBundleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/evidence-packets/seal-bundle/batch":{"post":{"tags":["evidence-packets"],"summary":"Seal Bundle Batch","description":"Package many sealed records into one offline-verifiable evidence package.\n\nBody shape: a wrapped object — ``{\"action_keys\": [\"law:...\", \"...\"]}`` —\nNOT a bare array. (By contrast, POST /v1/record/batch takes a bare JSON\narray of record objects.)\n\nThe batch companion to POST /evidence-packets/seal-bundle: pass the\naction_keys from a time-range export (GET /tenant/exports/records) and get\none archive-style response — per record the same 4-file PLANIVERSE-SEAL\nbundle the single endpoint emits (byte-identical packet canonicalization),\nplus a package MANIFEST.json. Write each record's ``files`` into its\n``path`` and the manifest at the root; every bundle verifies offline\nindependently. Raw-safe and stateless: packets are re-derived from stored\nreceipt metadata, nothing new is stored or metered.\n\nAll-or-nothing: an unknown action_key fails the whole call (404 listing the\nmissing keys) — a period evidence package must never be silently partial.","operationId":"seal_bundle_batch_evidence_packets_seal_bundle_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SealBundleBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SealBundleBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/oscal":{"get":{"tags":["tenant-exports"],"summary":"Oscal Export","operationId":"oscal_export_tenant_exports_oscal_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalOscalExportResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/data-catalog":{"get":{"tags":["tenant-exports"],"summary":"Data Catalog Export","operationId":"data_catalog_export_tenant_exports_data_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalDataCatalogExportResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/ai-acquisition":{"get":{"tags":["tenant-exports"],"summary":"Ai Acquisition Export","operationId":"ai_acquisition_export_tenant_exports_ai_acquisition_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalAcquisitionExportResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/validation-report":{"get":{"tags":["tenant-exports"],"summary":"Validation Report","operationId":"validation_report_tenant_exports_validation_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationReportResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/validation-schema-profiles":{"get":{"tags":["tenant-exports"],"summary":"Validation Schema Profiles","operationId":"validation_schema_profiles_tenant_exports_validation_schema_profiles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationSchemaProfilesResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/validation-schema-manifest":{"get":{"tags":["tenant-exports"],"summary":"Validation Schema Manifest Route","operationId":"validation_schema_manifest_route_tenant_exports_validation_schema_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationSchemaManifestResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/validation-schema-bindings/preview":{"post":{"tags":["tenant-exports"],"summary":"Preview Validation Schema Binding","operationId":"preview_validation_schema_binding_tenant_exports_validation_schema_bindings_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalSchemaBindingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalSchemaBindingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/validation-schema-bindings":{"post":{"tags":["tenant-exports"],"summary":"Record Validation Schema Binding","operationId":"record_validation_schema_binding_tenant_exports_validation_schema_bindings_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalSchemaBindingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalSchemaBindingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"get":{"tags":["tenant-exports"],"summary":"List Validation Schema Bindings","operationId":"list_validation_schema_bindings_tenant_exports_validation_schema_bindings_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"export_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Kind"}},{"name":"adapter_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adapter Key"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalSchemaBindingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/validation-schema-profiles/{schema_profile_key}":{"get":{"tags":["tenant-exports"],"summary":"Validation Schema Profile","operationId":"validation_schema_profile_tenant_exports_validation_schema_profiles__schema_profile_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"schema_profile_key","in":"path","required":true,"schema":{"type":"string","title":"Schema Profile Key"}},{"name":"include_schema","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Schema"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationSchemaProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/validation-runs":{"post":{"tags":["tenant-exports"],"summary":"Validation Run","operationId":"validation_run_tenant_exports_validation_runs_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"get":{"tags":["tenant-exports"],"summary":"List Validation Runs","operationId":"list_validation_runs_tenant_exports_validation_runs_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"export_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Kind"}},{"name":"adapter_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adapter Key"}},{"name":"binding_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Binding Key"}},{"name":"validation_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/validation-runs/overview":{"get":{"tags":["tenant-exports"],"summary":"Validation Runs Overview","operationId":"validation_runs_overview_tenant_exports_validation_runs_overview_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"export_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Kind"}},{"name":"adapter_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adapter Key"}},{"name":"binding_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Binding Key"}},{"name":"validation_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationRunsOverviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/validation-runs/{run_key}":{"get":{"tags":["tenant-exports"],"summary":"Get Validation Run","operationId":"get_validation_run_tenant_exports_validation_runs__run_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"run_key","in":"path","required":true,"schema":{"type":"string","title":"Run Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFederalValidationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/records":{"get":{"tags":["tenant-exports"],"summary":"Records Export","description":"Cursor-paginated sealed-record export for a time range.\n\nFilters and orders on the seal's signed ``recorded_at`` (server clock at\nseal time, committed into the v2 attestation content). Half-open range:\n``from <= recorded_at < to``, so adjacent period exports never overlap.\nStreaming-friendly: records arrive in stable chronological order and every\nrecord is self-contained (its own seal + ready-to-POST verify request), so\npages can be written to disk as they arrive and verified independently.\nAfter the export, POST the action_keys to /evidence-packets/seal-bundle/batch\nfor one offline-verifiable evidence package.","operationId":"records_export_tenant_exports_records_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Inclusive lower bound on the signed recorded_at (RFC 3339 with explicit UTC offset).","title":"From"},"description":"Inclusive lower bound on the signed recorded_at (RFC 3339 with explicit UTC offset)."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Exclusive upper bound on the signed recorded_at (RFC 3339 with explicit UTC offset).","title":"To"},"description":"Exclusive upper bound on the signed recorded_at (RFC 3339 with explicit UTC offset)."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque continuation cursor from a previous page.","title":"Cursor"},"description":"Opaque continuation cursor from a previous page."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"Page direction. `asc` (default, the archival contract) pages oldest-first; `desc` pages newest-first — same keyset cursor, walked backward.","default":"asc","title":"Order"},"description":"Page direction. `asc` (default, the archival contract) pages oldest-first; `desc` pages newest-first — same keyset cursor, walked backward."},{"name":"pack","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"description":"Only records in this pack (action_key namespace).","title":"Pack"},"description":"Only records in this pack (action_key namespace)."},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"description":"Only records of this event/action type.","title":"Event Type"},"description":"Only records of this event/action type."},{"name":"decision","in":"query","required":false,"schema":{"anyOf":[{"enum":["allow","needs_review","block","recorded"],"type":"string"},{"type":"null"}],"description":"Only records sealed with this decision.","title":"Decision"},"description":"Only records sealed with this decision."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/corpus":{"get":{"tags":["tenant-exports"],"summary":"Tenant Corpus","description":"The tenant's own dictionary, and where it meets the shared corpus.\n\nTwo vocabularies, one join. The SHARED corpus is Planisphere's public\nregister of atoms — the words the product itself is built from, each with\nan audit state. The LOCAL dictionary is not authored anywhere: it is\nderived from what this tenant actually sealed — the packs, event types,\ntool classes, review routes, and declared metadata keys their own records\ncontain. Terms with no shared anchor are not errors; they are the\ntenant's own coinage, and naming them is the first honest step toward\ndefining them.","operationId":"getTenantCorpus","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Gettenantcorpus"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/records/tool-coverage":{"get":{"tags":["tenant-exports"],"summary":"Records Tool Coverage","description":"Declared toolset vs observed tool use, per system — the drift join.\n\nMirrors the sequence-coverage shape: the declared side comes from the\nmanifest (a sealed, supersedable fact), the observed side from tool_used\nrecords Planisphere itself sealed, so neither side is the operator's\nunverifiable word. undeclared_tools — observed outside the declaration —\nis the alarm; unexercised_tools is the dust. Counts, never percentages.","operationId":"getTenantToolCoverage","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Gettenanttoolcoverage"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/records/by-key":{"get":{"tags":["tenant-exports"],"summary":"Records By Key","description":"Which signing key minted which records — the rotation-day question.\n\nA key rotates and the first thing an operator needs is the blast radius:\nhow many receipts carry the outgoing key, and over what period. That is\nanswerable only from the seal stored at mint, because re-derivation signs\nwith the live signer and cannot report what signed the original.\n\nEach row is joined against the published key set, so a key that has been\nretired says so and carries the notice explaining that its receipts remain\nauthentic. A key absent from the published set reports `unknown` — the same\nstatus a forgery gets, which is exactly why retired keys are published\nforever rather than deleted.\n\nAttribution, not verification. Nothing here re-checks a signature; verify an\nindividual receipt with POST /v1/verify.","operationId":"getTenantRecordsByKey","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsByKeyResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/records/coverage":{"get":{"tags":["tenant-exports"],"summary":"Records Coverage","description":"Gaps in each system's record sequence, and what that does not prove.\n\nSealed records prove that specific acts happened; they say nothing about\nacts never sent. This report does not close that gap — nothing outside the\ngeneration path can. What it does is make omission arithmetic: over the\ninterior of an observed sequence range the implied population is\n``last - first + 1``, so 900,000 records spanning 1..1,000,000 exposes\n100,000 gaps without trusting any count.\n\nThe observed side is computed here, from Planisphere's own rows, so an\noperator cannot hand in a favourable reconciliation. Every figure is a\ncount or a range — never a percentage, because one number reads as proof\nof a thing Planisphere does not observe.","operationId":"records_coverage_tenant_exports_records_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsCoverageResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/records/fleet":{"get":{"tags":["tenant-exports"],"summary":"Records Fleet","description":"The tenant's fleet mirrored from its receipts: records grouped by\ndeclared system_id, with the rig each one declared (model, app, lane).\nSessions stay hash-only by pack contract — never the person, only the\nmachine. Identity here is attested, not\nverified — the gap arithmetic in /records/coverage is the proof-layer\nsibling that makes a lane's completeness countable.","operationId":"records_fleet_tenant_exports_records_fleet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantFleetResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/exports/records/attestations":{"get":{"tags":["tenant-exports"],"summary":"Records Attestations","description":"The DECLARED layer, rolled up per pack: which metadata keys the tenant\nattested (retained and readable vs committed-only), and disposals with\ntheir retained reasons. Bound testimony — timestamped and tamper-evident,\nnever verified by Planisphere. The proof layer lives in /records/summary\nand /records/coverage; keeping the two apart is the point.","operationId":"records_attestations_tenant_exports_records_attestations_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Inclusive lower bound on recorded_at.","title":"From"},"description":"Inclusive lower bound on recorded_at."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Exclusive upper bound on recorded_at.","title":"To"},"description":"Exclusive upper bound on recorded_at."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsAttestationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/exports/records/summary":{"get":{"tags":["tenant-exports"],"summary":"Records Summary","description":"Coverage counts over sealed records for a time range.\n\nGroups the same rows GET /tenant/exports/records enumerates — same signed\n``recorded_at`` filter, same half-open range (``from <= recorded_at < to``)\n— by pack and event type, with counts per decision and status. The pack is\nderived from the action_key prefix over the closed pack vocabulary\n(anything else buckets to ``other``); nothing is re-sealed.\n\nHONESTY NOTE: ``by_status`` maps each stored decision through\n``evidence_status_for_decision`` WITHOUT review resolution — a\n``needs_review`` row a reviewer has since resolved still counts as\n``pending_review`` here. The per-record surfaces (this export's sibling\n``/tenant/exports/records`` and the packet fetch paths) are review-aware;\nuse them for record-accurate statuses.\n\nEach pack's ``event_types`` list is capped at 200 distinct event types\n(``truncated: true`` when the cap hits); pack and status totals always\ncount every sealed row in the range regardless.","operationId":"records_summary_tenant_exports_records_summary_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Inclusive lower bound on the signed recorded_at (RFC 3339 with explicit UTC offset).","title":"From"},"description":"Inclusive lower bound on the signed recorded_at (RFC 3339 with explicit UTC offset)."},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Exclusive upper bound on the signed recorded_at (RFC 3339 with explicit UTC offset).","title":"To"},"description":"Exclusive upper bound on the signed recorded_at (RFC 3339 with explicit UTC offset)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/readyz":{"get":{"tags":["health"],"summary":"Readyz","operationId":"readyz_readyz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/livez":{"get":{"tags":["health"],"summary":"Livez","operationId":"livez_livez_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LivenessResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signin":{"post":{"tags":["signin"],"summary":"Request Signin Link","operationId":"request_signin_link_signin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigninRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigninResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signin/verify":{"post":{"tags":["signin"],"summary":"Verify Signin Link","description":"Consume a sign-in token exactly once and bind the account session.","operationId":"verify_signin_link_signin_verify_post","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"303":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/readiness":{"get":{"tags":["signup"],"summary":"Signup Readiness","operationId":"signup_readiness_signup_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupReadinessResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/checkout":{"post":{"tags":["signup"],"summary":"Create Checkout","operationId":"create_checkout_signup_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/test-key":{"post":{"tags":["signup"],"summary":"Issue Sandbox Key","description":"Issue a free sandbox (ps_test_) API key without payment.\n\nOne sandbox tenant per email (idempotent — a repeat email 409s rather than\nminting a duplicate). Sandbox receipts sign with a public dev key\n(dev_key:true) so they can never be presented as production evidence, and\nusage is capped; upgrade to a production key via /signup/checkout.","operationId":"issue_sandbox_key_signup_test_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/test-complete":{"post":{"tags":["signup"],"summary":"Complete Test Checkout","operationId":"complete_test_checkout_signup_test_complete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTestCompleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/claim-key":{"post":{"tags":["signup"],"summary":"Claim Signup Key","operationId":"claim_signup_key_signup_claim_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupClaimKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/status":{"post":{"tags":["signup"],"summary":"Signup Status","operationId":"signup_status_signup_status_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupStatusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/signup/webhook/stripe":{"post":{"tags":["signup"],"summary":"Complete Signed Stripe Test Webhook","operationId":"complete_signed_stripe_test_webhook_signup_webhook_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupStripeWebhookResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/.well-known/planisphere-keys.json":{"get":{"tags":["trust-anchor"],"summary":"Published verifying keys (trust anchor for seal verification)","operationId":"getVerifyingKeys","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanisphereVerifyingKeysResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/trust/epochs":{"get":{"tags":["trust-anchor"],"summary":"The public pin ledger: SHA-chained roll-up epochs","description":"The continuity root beside the verifying keys' authenticity root.\nAnyone can refold the chain: each epoch_digest commits to its content and\nprev_epoch_digest, back to genesis. Pins only — no member identities.","operationId":"listTrustEpochs","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Before"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustEpochsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/trust/records/{action_key}":{"get":{"tags":["trust-anchor"],"summary":"Public record answer: existence, standing, and the anchoring pin","description":"The burn-chain answer for anyone holding an action_key. Default is\npin-only: existence, standing (a burned record shouts AUTHENTIC BUT\nEXPIRED), and the epoch pin that anchors it. The tenant is named only\nwhen that operator opted into public proof disclosure.","operationId":"getTrustRecord","parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/me":{"get":{"tags":["tenant"],"summary":"Get Me","operationId":"get_me_tenant_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantMeResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/content-keys":{"get":{"tags":["tenant"],"summary":"Tenant Content Keys","description":"Content-key fingerprints in use: which keys open this tenant's sealed\ncontent, as attribution — never key material, which never reaches us.","operationId":"getTenantContentKeys","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantContentKeysResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/usage":{"get":{"tags":["tenant"],"summary":"Tenant Usage","description":"Actions used vs cap, so the sandbox limit never lands as a cold 402.","operationId":"tenant_usage_tenant_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantUsageResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/sample-record":{"post":{"tags":["tenant"],"summary":"Seal Sample Record","description":"Seal one real sample receipt as the signed-in tenant — the in-console\n'aha' so a new user sees a verifiable receipt without wiring an agent or\nminting a key. It is a genuine seal (counts against the sandbox cap and\nmeters like any record): the whole point is that it truly verifies. The\nsession principal seals as itself, exactly as the burn/bundle surfaces do.","operationId":"seal_sample_record_tenant_sample_record_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSampleRecordResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/policy":{"get":{"tags":["tenant"],"summary":"Get Policy","operationId":"get_policy_tenant_policy_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"policy_pack","in":"query","required":false,"schema":{"type":"string","default":"law/default-us-legal-ai-supervision","title":"Policy Pack"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"put":{"tags":["tenant"],"summary":"Update Policy","operationId":"update_policy_tenant_policy_put","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"policy_pack","in":"query","required":false,"schema":{"type":"string","default":"law/default-us-legal-ai-supervision","title":"Policy Pack"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/policy/options":{"get":{"tags":["tenant"],"summary":"Get Policy Options","operationId":"get_policy_options_tenant_policy_options_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"policy_pack","in":"query","required":false,"schema":{"type":"string","default":"law/default-us-legal-ai-supervision","title":"Policy Pack"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyOptionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/policy/preview":{"post":{"tags":["tenant"],"summary":"Preview Policy","operationId":"preview_policy_tenant_policy_preview_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"policy_pack","in":"query","required":false,"schema":{"type":"string","default":"law/default-us-legal-ai-supervision","title":"Policy Pack"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/policy/receipts":{"get":{"tags":["tenant"],"summary":"List Policy Receipts","operationId":"list_policy_receipts_tenant_policy_receipts_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"policy_pack","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Policy Pack"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantPolicyReceiptsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/audit-export":{"get":{"tags":["tenant"],"summary":"Audit Export","operationId":"audit_export_tenant_audit_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAuditExportResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/api-keys":{"get":{"tags":["tenant"],"summary":"List Api Keys","operationId":"list_api_keys_tenant_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantApiKeysResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]},"post":{"tags":["tenant"],"summary":"Issue Api Key","operationId":"issue_api_key_tenant_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantApiKeyIssueRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantApiKeyIssueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/api-keys/{key_id}":{"delete":{"tags":["tenant"],"summary":"Revoke Api Key","operationId":"revoke_api_key_tenant_api_keys__key_id__delete","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantApiKeyRevokeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/integrations":{"get":{"tags":["tenant"],"summary":"List Integrations","operationId":"list_integrations_tenant_integrations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationsResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/options":{"get":{"tags":["tenant"],"summary":"Integration Options","operationId":"integration_options_tenant_integrations_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationOptionsResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/install-manifest":{"get":{"tags":["tenant"],"summary":"Integration Install Manifest","operationId":"integration_install_manifest_tenant_integrations_install_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationInstallManifestResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/security-policy":{"get":{"tags":["tenant"],"summary":"Integration Security Policy","operationId":"integration_security_policy_tenant_integrations_security_policy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationSecurityPolicyResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/readiness":{"get":{"tags":["tenant"],"summary":"Integration Readiness","operationId":"integration_readiness_tenant_integrations_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationsReadinessResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/setup-plan":{"get":{"tags":["tenant"],"summary":"Integration Setup Plan","operationId":"integration_setup_plan_tenant_integrations_setup_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationsSetupPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/docs-package":{"get":{"tags":["tenant"],"summary":"Integration Docs Package","operationId":"integration_docs_package_tenant_integrations_docs_package_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationDocsPackageResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/provider-walkthrough":{"get":{"tags":["tenant"],"summary":"Integration Provider Walkthrough","operationId":"integration_provider_walkthrough_tenant_integrations_provider_walkthrough_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationProviderWalkthroughResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/integrations/{channel}/{target}":{"put":{"tags":["tenant"],"summary":"Upsert Integration","operationId":"upsert_integration_tenant_integrations__channel___target__put","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","title":"Channel"}},{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationUpsertResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"get":{"tags":["tenant"],"summary":"Get Integration","operationId":"get_integration_tenant_integrations__channel___target__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","title":"Channel"}},{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"delete":{"tags":["tenant"],"summary":"Delete Integration","operationId":"delete_integration_tenant_integrations__channel___target__delete","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","title":"Channel"}},{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIntegrationDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/integrations/webhook/{target}/deliveries":{"get":{"tags":["tenant"],"summary":"List Webhook Deliveries","description":"Per-delivery status for a tenant's event-webhook target, newest first.","operationId":"list_webhook_deliveries_tenant_integrations_webhook__target__deliveries_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","delivered","failed"],"type":"string"},{"type":"null"}],"description":"Filter deliveries by outcome.","title":"Status"},"description":"Filter deliveries by outcome."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/TenantWebhookDeliveriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/tenant/anchor-status":{"get":{"tags":["tenant"],"summary":"Tenant Anchor Status","description":"Where this tenant's chain head stands against the mirror chain: the\nhead itself, the newest epoch that anchors it, and how many links await\nthe next hourly roll-up.","operationId":"tenant_anchor_status_tenant_anchor_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAnchorStatusResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/anchor-disclosure":{"put":{"tags":["tenant"],"summary":"Put Anchor Disclosure","description":"The operator's disclosure switch: opt in (or back out) of the mirror\nchain serving this tenant's full, tenant-naming proofs publicly. Owner-\ngrade: disclosure is chosen, never inherited.","operationId":"put_anchor_disclosure_tenant_anchor_disclosure_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAnchorDisclosureUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAnchorStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/records/retention":{"get":{"tags":["tenant"],"summary":"List Retention Rules","description":"The tenant's lifespan rules. Empty list = nothing ever auto-expires.","operationId":"list_retention_rules_tenant_records_retention_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRetentionRulesResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]},"put":{"tags":["tenant"],"summary":"Put Retention Rule","description":"Set (or clear, with lifespan_days=null) one lifespan rule.\n\nA lifespan is a standing disposal authorization: once a covered record\noutlives it, the scheduler sweep expires it exactly like a manual burn —\na sealed, metered records_expired disposal, reason \"retention_policy\".\nHence the records:dispose capability.","operationId":"put_retention_rule_tenant_records_retention_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRetentionRuleUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRetentionRulesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/tenant/records/expire":{"post":{"tags":["tenant"],"summary":"Expire Records","description":"Burn: seal an expiry record, then revoke the targets' standing.\n\nNothing is deleted. The targets stay in the chain and their signatures\nstill verify; Planisphere stops endorsing them as usable evidence, and the\ndisposal itself is a sealed, metered records_expired receipt per pack —\nthe chain of what gets thrown away. Idempotent per record: an expired\nrecord cannot be re-expired.","operationId":"expire_records_tenant_records_expire_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsExpireRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantRecordsExpireResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/integrations/callbacks/{tenant_id}/slack/{target}/open-review-modal":{"post":{"tags":["integrations"],"summary":"Slack Open Review Modal","operationId":"slack_open_review_modal_integrations_callbacks__tenant_id__slack__target__open_review_modal_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackModalOpenHandoffResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/integrations/callbacks/{tenant_id}/{channel}/{target}/review-decision":{"post":{"tags":["integrations"],"summary":"Provider Review Callback","operationId":"provider_review_callback_integrations_callbacks__tenant_id___channel___target__review_decision_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"channel","in":"path","required":true,"schema":{"type":"string","title":"Channel"}},{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/law/grading-mirror":{"get":{"tags":["law"],"summary":"Grading Mirror","operationId":"grading_mirror_law_grading_mirror_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LawGradingMirrorResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/law/verify-mirror-seal":{"post":{"tags":["law"],"summary":"Verify Mirror Seal","operationId":"verify_mirror_seal_law_verify_mirror_seal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LawMirrorSealVerificationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LawMirrorSealVerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/law/proposed-action":{"post":{"tags":["law"],"summary":"Proposed Action","operationId":"proposed_action_law_proposed_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/law/review-queue":{"get":{"tags":["law"],"summary":"Review Queue","operationId":"review_queue_law_review_queue_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["pending","handled","all"],"type":"string","description":"pending (default) hides handled work; handled shows resolved items; all shows everything.","default":"pending","title":"Status"},"description":"pending (default) hides handled work; handled shows resolved items; all shows everything."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/ReviewQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/law/review-decision":{"post":{"tags":["law"],"summary":"Review Decision","operationId":"review_decision_law_review_decision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/law/evidence-packets/{action_key}":{"get":{"tags":["law"],"summary":"Evidence Packet","operationId":"evidence_packet_law_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/defense/proposed-action":{"post":{"tags":["manifest-verticals"],"summary":"Defense Proposed Action","operationId":"defense_proposed_action_defense_proposed_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerticalProposedActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/defense/review-queue":{"get":{"tags":["manifest-verticals"],"summary":"Defense Review Queue","operationId":"defense_review_queue_defense_review_queue_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["pending","handled","all"],"type":"string","description":"pending (default) hides handled work; handled shows resolved items; all shows everything.","default":"pending","title":"Status"},"description":"pending (default) hides handled work; handled shows resolved items; all shows everything."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/ReviewQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/defense/review-decision":{"post":{"tags":["manifest-verticals"],"summary":"Defense Review Decision","operationId":"defense_review_decision_defense_review_decision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/defense/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Defense Evidence Packet","operationId":"defense_evidence_packet_defense_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/medicine/proposed-action":{"post":{"tags":["manifest-verticals"],"summary":"Medicine Proposed Action","operationId":"medicine_proposed_action_medicine_proposed_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerticalProposedActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/medicine/review-queue":{"get":{"tags":["manifest-verticals"],"summary":"Medicine Review Queue","operationId":"medicine_review_queue_medicine_review_queue_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["pending","handled","all"],"type":"string","description":"pending (default) hides handled work; handled shows resolved items; all shows everything.","default":"pending","title":"Status"},"description":"pending (default) hides handled work; handled shows resolved items; all shows everything."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/ReviewQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/medicine/review-decision":{"post":{"tags":["manifest-verticals"],"summary":"Medicine Review Decision","operationId":"medicine_review_decision_medicine_review_decision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/medicine/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Medicine Evidence Packet","operationId":"medicine_evidence_packet_medicine_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/education/proposed-action":{"post":{"tags":["manifest-verticals"],"summary":"Education Proposed Action","operationId":"education_proposed_action_education_proposed_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerticalProposedActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/education/review-queue":{"get":{"tags":["manifest-verticals"],"summary":"Education Review Queue","operationId":"education_review_queue_education_review_queue_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["pending","handled","all"],"type":"string","description":"pending (default) hides handled work; handled shows resolved items; all shows everything.","default":"pending","title":"Status"},"description":"pending (default) hides handled work; handled shows resolved items; all shows everything."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/ReviewQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/education/review-decision":{"post":{"tags":["manifest-verticals"],"summary":"Education Review Decision","operationId":"education_review_decision_education_review_decision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/education/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Education Evidence Packet","operationId":"education_evidence_packet_education_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/us-regulatory/proposed-action":{"post":{"tags":["manifest-verticals"],"summary":"Us Regulatory Proposed Action","operationId":"us_regulatory_proposed_action_us_regulatory_proposed_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerticalProposedActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/us-regulatory/review-queue":{"get":{"tags":["manifest-verticals"],"summary":"Us Regulatory Review Queue","operationId":"us_regulatory_review_queue_us_regulatory_review_queue_get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"enum":["pending","handled","all"],"type":"string","description":"pending (default) hides handled work; handled shows resolved items; all shows everything.","default":"pending","title":"Status"},"description":"pending (default) hides handled work; handled shows resolved items; all shows everything."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/ReviewQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/us-regulatory/review-decision":{"post":{"tags":["manifest-verticals"],"summary":"Us Regulatory Review Decision","operationId":"us_regulatory_review_decision_us_regulatory_review_decision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/us-regulatory/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Us Regulatory Evidence Packet","operationId":"us_regulatory_evidence_packet_us_regulatory_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/eu-ai-act/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Eu Ai Act Evidence Packet","operationId":"eu_ai_act_evidence_packet_eu_ai_act_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/ca-sb942/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Ca Sb942 Evidence Packet","operationId":"ca_sb942_evidence_packet_ca_sb942_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/ai-provenance/evidence-packets/{action_key}":{"get":{"tags":["manifest-verticals"],"summary":"Ai Provenance Evidence Packet","operationId":"ai_provenance_evidence_packet_ai_provenance_evidence_packets__action_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/routing/outbox":{"get":{"tags":["routing"],"summary":"Route Outbox","operationId":"route_outbox_routing_outbox_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/summary":{"get":{"tags":["routing"],"summary":"Route Outbox Summary","operationId":"route_outbox_summary_routing_outbox_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxSummaryResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/alerts":{"get":{"tags":["routing"],"summary":"Route Outbox Alerts","operationId":"route_outbox_alerts_routing_outbox_alerts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxAlertsResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/notifications/preview":{"get":{"tags":["routing"],"summary":"Preview Outbox Notifications","operationId":"preview_outbox_notifications_routing_outbox_notifications_preview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxNotificationResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/notifications/emit":{"post":{"tags":["routing"],"summary":"Emit Outbox Notifications","operationId":"emit_outbox_notifications_routing_outbox_notifications_emit_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxNotificationResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/retry-plan":{"get":{"tags":["routing"],"summary":"Route Outbox Retry Plan","operationId":"route_outbox_retry_plan_routing_outbox_retry_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxRetryPlanResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/runs":{"get":{"tags":["routing"],"summary":"Route Outbox Scheduler Runs","operationId":"route_outbox_scheduler_runs_routing_outbox_runs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxSchedulerRunsResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/{dispatch_key}":{"get":{"tags":["routing"],"summary":"Get Route Dispatch","operationId":"get_route_dispatch_routing_outbox__dispatch_key__get","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"dispatch_key","in":"path","required":true,"schema":{"type":"string","title":"Dispatch Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteDispatchItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/routing/outbox/process":{"post":{"tags":["routing"],"summary":"Process Route Outbox Batch","operationId":"process_route_outbox_batch_routing_outbox_process_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxProcessRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxProcessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/tick":{"post":{"tags":["routing"],"summary":"Tick Route Outbox Scheduler","operationId":"tick_route_outbox_scheduler_routing_outbox_tick_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxTickRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxTickResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/routing/outbox/{dispatch_key}/dead-letter":{"post":{"tags":["routing"],"summary":"Dead Letter Route Dispatch","operationId":"dead_letter_route_dispatch_routing_outbox__dispatch_key__dead_letter_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"dispatch_key","in":"path","required":true,"schema":{"type":"string","title":"Dispatch Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxDeadLetterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxDeadLetterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/routing/outbox/{dispatch_key}/requeue":{"post":{"tags":["routing"],"summary":"Requeue Route Dispatch","operationId":"requeue_route_dispatch_routing_outbox__dispatch_key__requeue_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"dispatch_key","in":"path","required":true,"schema":{"type":"string","title":"Dispatch Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxRequeueRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxRequeueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/routing/outbox/{dispatch_key}/simulate-callback":{"post":{"tags":["routing"],"summary":"Simulate Route Callback","operationId":"simulate_route_callback_routing_outbox__dispatch_key__simulate_callback_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"dispatch_key","in":"path","required":true,"schema":{"type":"string","title":"Dispatch Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxSimulateCallbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteOutboxSimulateCallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/routing/outbox/{dispatch_key}/deliver":{"post":{"tags":["routing"],"summary":"Deliver Route Dispatch","operationId":"deliver_route_dispatch_routing_outbox__dispatch_key__deliver_post","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"dispatch_key","in":"path","required":true,"schema":{"type":"string","title":"Dispatch Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteDeliveryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/gate":{"post":{"tags":["v1-legos","v1-legos"],"summary":"Gate","description":"Gate a proposed action against ``pack`` (legos-first alias).\n\nWraps ``POST /{vertical}/proposed-action``: reads ``pack`` from the body and\ndispatches to the identical underlying handler with ``pack`` as the vertical\nargument, returning the identical ``ProposedActionResponse``.\n\nSafe to retry: an ``Idempotency-Key`` header makes a repeat call return the\noriginal stored response (and metering stays once). The same key reused with\na different body is rejected 422.","operationId":"gate","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1GateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposedActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/system/manifest":{"get":{"tags":["v1-legos","v1-legos"],"summary":"System Manifest","description":"The manifest read-back: the newest active system_declared record for a\nsystem_id. Declarations chain by supersession, so assigning a lane is a\nsealed act and reassigning it is another — an agent that fetches its\nmanifest at session start is routing through the evidence layer itself.\nUndeclared systems get declared=false, not a 404: for a fleet hook, \"no\nassignment yet\" is an answer, not an error.","operationId":"system_manifest","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"system_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"title":"System Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemManifestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/record":{"post":{"tags":["v1-legos","v1-legos"],"summary":"Record","description":"Attest a COMPLETED act and seal it as a terminal ``recorded`` receipt.\n\nNot a gate: no review routing, no pause semantics. Safe to retry — an\nidentical body re-seals the identical receipt (same recorded_at, same\nattestation_root) and meters nothing new; an ``Idempotency-Key`` header\nadditionally replays the stored response, and the same key reused with a\ndifferent body is rejected 422.","operationId":"record","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RecordRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/record/batch":{"post":{"tags":["v1-legos","v1-legos"],"summary":"Record Batch","description":"Attest a batch of completed acts: per-item sealed results, one meter\nevent per sealed record at the stamp tier (identical to single-record\nmetering — the meter digest is derived from each record's own seal).\n\nBody shape: a BARE JSON array of record objects — ``[{...}, {...}]`` —\neach item the exact POST /v1/record body; there is no wrapper key. (By\ncontrast, POST /evidence-packets/seal-bundle/batch takes a wrapped object:\n``{\"action_keys\": [\"...\"]}``.)","operationId":"recordBatch","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/V1RecordRequest"},"type":"array","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RecordBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/v1/reviews":{"post":{"tags":["v1-legos","v1-legos"],"summary":"Record Review","description":"Route lego (write): record a review decision for the given ``pack``.\n\nA signed-in human decides reviews through their session (no API key); the\ncapability check is the server-side authorization boundary.","operationId":"recordReview","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ReviewDecisionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"get":{"tags":["v1-legos","v1-legos"],"summary":"Review Queue","description":"Route lego (read): list the review queue for the given ``pack``.","operationId":"listReviews","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"pack","in":"query","required":true,"schema":{"enum":["law","defense","medicine","education","us-regulatory","ai-provenance"],"type":"string","title":"Pack"}},{"name":"status","in":"query","required":false,"schema":{"enum":["pending","handled","all"],"type":"string","description":"pending (default) hides handled work; handled shows resolved items; all shows everything.","default":"pending","title":"Status"},"description":"pending (default) hides handled work; handled shows resolved items; all shows everything."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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/ReviewQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/records/{action_key}":{"get":{"tags":["v1-legos","v1-legos"],"summary":"Get Record","description":"Fetch a sealed evidence record by ``action_key`` (legos-first alias).\n\nWraps ``GET /{vertical}/evidence-packets/{action_key}``: resolves ``pack``\n(from ``?pack=`` or the ``action_key`` prefix) and dispatches to the identical\nunderlying handler with ``pack`` as the vertical argument, returning the\nidentical ``EvidencePacketResponse``.","operationId":"getRecord","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}},{"name":"pack","in":"query","required":false,"schema":{"anyOf":[{"enum":["law","defense","medicine","education","us-regulatory","eu-ai-act","ca-sb942","cn-ai-labelling","in-it-rules","kr-ai-framework","ai-provenance"],"type":"string"},{"type":"null"}],"description":"Policy pack the record belongs to (replaces the legacy path prefix). Optional: derived from the action_key prefix when omitted.","examples":["defense","law"],"title":"Pack"},"description":"Policy pack the record belongs to (replaces the legacy path prefix). Optional: derived from the action_key prefix when omitted."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/records/{action_key}/content":{"post":{"tags":["v1-legos","v1-legos"],"summary":"Attach Record Content","description":"Attach client-side-encrypted content to a record under a classification.\n\nRaw-safe/BYOK: the body carries CIPHERTEXT only; the key never reaches the\nserver. A principal cannot classify content above its own clearance.\n\nThe envelope is self-describing (envelope_version/kdf/key_id) so a reader\ncan decrypt without out-of-band knowledge of how the key was made.","operationId":"attachRecordContent","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentAttachRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentAttachResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}},"get":{"tags":["v1-legos","v1-legos"],"summary":"Get Record Content","description":"Release the ciphertext ONLY if the caller's clearance dominates the\ncontent's classification (MAC). Otherwise 403 — the caller keeps the seal.\n\nThe response carries the full envelope (envelope_version/kdf/key_id) so the\nclient knows how to derive the key, not merely which cipher was used.","operationId":"getRecordContent","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentReleaseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/records/{action_key}/inclusion-proof":{"get":{"tags":["v1-legos","v1-legos"],"summary":"Get Record Inclusion Proof","description":"The canonical roll-up inclusion proof for one sealed record.\n\nAssembles, server-side, the same offline two-level bundle the operator CLI\nemits: (outer) a Merkle inclusion proof of this tenant's chain head against\nthe canonical epoch root, and (inner) the tenant's evidence chain up to\nthat head, which contains this record's attestation_root at ``record.chain_seq``.\nVerify offline with planisphere_api.canonical_chain.verify_inclusion_bundle\n(or re-derive both levels from the declared construction) — no key material\nor Planisphere service required.\n\n409 when the record has not yet been rolled up into a canonical epoch. The\nhosted roll-up runs hourly, so a brand-new record is normally provable\nwithin the hour; the 409 detail carries ``epoch_cadence``,\n``next_epoch_hint``, and an ``estimated_next_epoch_at`` timestamp.","operationId":"getRecordInclusionProof","security":[{"BearerAuth":[]},{"PlanisphereKey":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RecordInclusionProofResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/verify":{"post":{"tags":["v1-legos","v1-verify"],"summary":"Verify","description":"Alias of POST /evidence-packets/verify-seal (routes.evidence.verify_seal).","operationId":"verifySeal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketSealVerificationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidencePacketSealVerificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/v1/verify/kit":{"get":{"tags":["v1-legos","v1-verify"],"summary":"Verify Kit","description":"Alias of GET /evidence-packets/proof-kit (routes.evidence.proof_kit).","operationId":"getVerifyKit","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvidenceProofKitResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/keys":{"get":{"tags":["v1-legos","v1-support"],"summary":"List tenant API keys (alias of /tenant/api-keys)","operationId":"v1_list_api_keys_v1_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantApiKeysResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"BearerAuth":[]},{"PlanisphereKey":[]}]}},"/v1/packs":{"get":{"tags":["v1-legos","v1-support"],"summary":"Pack registry (alias of /pack-registry)","operationId":"v1_pack_registry_v1_packs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackRegistryResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/v1/catalog":{"get":{"tags":["v1-legos","v1-support"],"summary":"Catalog map (alias of /catalog-map)","operationId":"v1_catalog_map_v1_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogMapResponse"}}}},"default":{"description":"Problem response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}}},"webhooks":{"record.sealed":{"post":{"summary":"A gate decision was recorded and its evidence sealed.","description":"Delivered to the subscriber's registered webhook URL.","operationId":"_endpointrecord_sealed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryEnvelope"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"receipt.anchored":{"post":{"summary":"A canonical roll-up epoch anchored a tenant receipt.","description":"Delivered to the subscriber's registered webhook URL.","operationId":"_endpointreceipt_anchored_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryEnvelope"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"verify.failed":{"post":{"summary":"An offline verification attempt failed.","description":"Delivered to the subscriber's registered webhook URL.","operationId":"_endpointverify_failed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryEnvelope"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"meter.threshold":{"post":{"summary":"Metered usage crossed a configured threshold.","description":"Delivered to the subscriber's registered webhook URL.","operationId":"_endpointmeter_threshold_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryEnvelope"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccountBillingPortalResponse":{"properties":{"portal_available":{"type":"boolean","title":"Portal Available"},"portal_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Portal Url"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"raw_stripe_customer_id_returned":{"type":"boolean","title":"Raw Stripe Customer Id Returned","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This route creates a Stripe-hosted Customer Portal session for the signed-in tenant so payment methods and invoices are managed on Stripe. Planisphere does not receive, display, or store card data or the raw Stripe customer id."}},"type":"object","required":["portal_available"],"title":"AccountBillingPortalResponse","description":"A Stripe Customer Portal handoff for a signed-in production tenant.\n\nportal_available is False (with a reason) for sandbox tenants, tenants with\nno Stripe customer yet, or when Stripe is not configured — the console shows\nthe reason instead of a broken link. The raw Stripe customer id is never\nreturned to the browser."},"AccountLogoutResponse":{"properties":{"logged_out":{"type":"boolean","title":"Logged Out"},"session_revoked":{"type":"boolean","title":"Session Revoked"},"account_session_cookie_cleared":{"type":"boolean","title":"Account Session Cookie Cleared","default":true},"raw_session_token_returned":{"type":"boolean","title":"Raw Session Token Returned","default":false}},"type":"object","required":["logged_out","session_revoked"],"title":"AccountLogoutResponse"},"AccountMeResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"The signed-in person's email; null for pre-people sessions."},"active":{"type":"boolean","title":"Active"},"role":{"type":"string","title":"Role"},"record_metadata_retention":{"type":"boolean","title":"Record Metadata Retention","description":"Whether declared statutory metadata values are retained for this tenant. Surfaced so retention coverage is self-describing rather than something a regulator has to infer from which records happen to carry values.","default":false},"session":{"$ref":"#/components/schemas/AccountSessionItem"},"api_keys":{"items":{"$ref":"#/components/schemas/TenantApiKeyItem"},"type":"array","title":"Api Keys"},"api_key_count":{"type":"integer","title":"Api Key Count"},"usage_meter_events_count":{"type":"integer","title":"Usage Meter Events Count"},"capabilities":{"items":{"type":"string"},"type":"array","title":"Capabilities","description":"Explicit actions this principal may perform (server-owned policy)."},"clearance":{"anyOf":[{"$ref":"#/components/schemas/ClearanceInfo"},{"type":"null"}]},"active_organization":{"type":"string","title":"Active Organization","default":""},"organizations":{"items":{"$ref":"#/components/schemas/OrganizationItem"},"type":"array","title":"Organizations"},"action_requirements":{"additionalProperties":true,"type":"object","title":"Action Requirements","description":"Server-declared step-up/assurance requirements per action (empty = none)."},"validated_at":{"type":"string","title":"Validated At","description":"Server clock (RFC 3339) at which this identity was validated.","default":""},"stripe_customer_id_present":{"type":"boolean","title":"Stripe Customer Id Present","default":false},"account_session_authenticated":{"type":"boolean","title":"Account Session Authenticated","default":true},"account_session_cookie_httponly":{"type":"boolean","title":"Account Session Cookie Httponly","default":true},"tenant_key_exposure_allowed":{"type":"boolean","title":"Tenant Key Exposure Allowed","default":false},"browser_local_api_key_allowed":{"type":"boolean","title":"Browser Local Api Key Allowed","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Account session routes expose browser-safe tenant, key metadata, and usage ledger status. They do not return raw tenant API keys, raw session tokens, Stripe customer identifiers, protected action execution authority, or browser-local tenant credentials."}},"type":"object","required":["tenant","name","active","role","session","api_keys","api_key_count","usage_meter_events_count"],"title":"AccountMeResponse"},"AccountSessionItem":{"properties":{"session_id":{"type":"string","title":"Session Id"},"tenant":{"type":"string","title":"Tenant"},"role":{"type":"string","title":"Role"},"signup_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signup Key"},"active":{"type":"boolean","title":"Active"},"stripe_customer_id_present":{"type":"boolean","title":"Stripe Customer Id Present","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked At"},"last_seen_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Seen At"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_secret_material_stored":{"type":"boolean","title":"Raw Secret Material Stored","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false}},"type":"object","required":["session_id","tenant","role","active","created_at","expires_at"],"title":"AccountSessionItem"},"AccountUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name","description":"New organization display name for the signed-in tenant."},"record_metadata_retention":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Record Metadata Retention","description":"Whether declared statutory metadata VALUES are retained for this tenant's records — the keys each pack marks retainable, and only those. Off unless switched on: a data-retention posture is chosen, never inherited. Keys identifying a natural person are on no pack's allowlist and are unaffected by this setting."}},"type":"object","title":"AccountUpdateRequest"},"ActiveManifestResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"tenant":{"type":"string","title":"Tenant"},"board_id":{"type":"string","title":"Board Id"},"title":{"type":"string","title":"Title"},"definition":{"type":"string","title":"Definition"},"manifest_hash":{"type":"string","title":"Manifest Hash"},"source":{"additionalProperties":true,"type":"object","title":"Source"},"lanes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Lanes"},"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"adapters":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Adapters"},"corpus_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Corpus Refs"},"catalog_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Catalog Refs"},"render_targets":{"items":{"type":"string"},"type":"array","title":"Render Targets"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["schema","tenant","board_id","title","definition","manifest_hash","source","lanes","items","adapters","corpus_refs","catalog_refs","render_targets","claim_boundary"],"title":"ActiveManifestResponse"},"CatalogMapResponse":{"properties":{"source":{"additionalProperties":true,"type":"object","title":"Source"},"classes":{"additionalProperties":true,"type":"object","title":"Classes"},"classification_counts":{"additionalProperties":true,"type":"object","title":"Classification Counts"},"impl_status_counts":{"additionalProperties":true,"type":"object","title":"Impl Status Counts"},"api_bindings":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Api Bindings"},"sku_book_implications":{"items":{"type":"string"},"type":"array","title":"Sku Book Implications"},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["source","classes","classification_counts","impl_status_counts","api_bindings","sku_book_implications","claim_boundary"],"title":"CatalogMapResponse"},"ClearanceInfo":{"properties":{"level":{"type":"integer","title":"Level"},"level_name":{"type":"string","title":"Level Name"},"compartments":{"items":{"type":"string"},"type":"array","title":"Compartments"}},"type":"object","required":["level","level_name"],"title":"ClearanceInfo","description":"The principal's MAC clearance (governs which classified content it may\nread). Level names mirror the government classification lattice."},"ContentAttachRequest":{"properties":{"classification":{"type":"string","title":"Classification","description":"Classification level: unclassified|confidential|secret|top_secret (or int).","default":"unclassified"},"compartments":{"items":{"type":"string"},"type":"array","title":"Compartments","description":"Need-to-know compartment tags."},"algorithm":{"type":"string","const":"AES-256-GCM","title":"Algorithm","default":"AES-256-GCM"},"envelope_version":{"type":"integer","maximum":1.0,"minimum":1.0,"title":"Envelope Version","description":"Envelope shape. 1 = {algorithm, kdf, key_id, iv, ciphertext}.","default":1},"kdf":{"type":"string","const":"raw","title":"Kdf","description":"How the AES-256 key was produced. 'raw' = a 256-bit key you hold — generate one in the console Keys tab, or bring your own from a KMS. The retired 'pbkdf2-sha256' passphrase scheme is still READABLE for records written before envelope_version 1, but is not accepted here: a human-typed passphrase over a salt the server can derive is brute-forceable offline against ciphertext we hold.","default":"raw"},"key_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Key Id","description":"Optional NON-SECRET key fingerprint — sha256(key bytes)[:16] — so a reader can tell which key opens this. Never send key material."},"iv":{"type":"string","maxLength":88,"minLength":8,"title":"Iv","description":"Base64 AES-GCM nonce, generated client-side, unique per message."},"ciphertext":{"type":"string","maxLength":12000000,"minLength":1,"title":"Ciphertext","description":"Base64 AES-GCM ciphertext (incl. auth tag), encrypted CLIENT-SIDE under the customer's key. Planisphere cannot decrypt it."}},"type":"object","required":["iv","ciphertext"],"title":"ContentAttachRequest"},"ContentAttachResponse":{"properties":{"action_key":{"type":"string","title":"Action Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"classification":{"type":"string","title":"Classification"},"compartments":{"items":{"type":"string"},"type":"array","title":"Compartments"},"envelope_version":{"type":"integer","title":"Envelope Version","default":1},"kdf":{"type":"string","title":"Kdf","default":"raw"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"ciphertext_stored":{"type":"boolean","title":"Ciphertext Stored","default":true},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"note":{"type":"string","title":"Note","default":"Planisphere stored ciphertext only — it holds no key and cannot read this content."}},"type":"object","required":["action_key","payload_hash","classification","compartments"],"title":"ContentAttachResponse"},"ContentReleaseResponse":{"properties":{"action_key":{"type":"string","title":"Action Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"classification":{"type":"string","title":"Classification"},"compartments":{"items":{"type":"string"},"type":"array","title":"Compartments"},"algorithm":{"type":"string","title":"Algorithm"},"envelope_version":{"type":"integer","title":"Envelope Version"},"kdf":{"type":"string","title":"Kdf"},"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"},"iv":{"type":"string","title":"Iv"},"ciphertext":{"type":"string","title":"Ciphertext"},"note":{"type":"string","title":"Note","default":"Decrypt client-side with your key, then bind the plaintext by recomputing sha256 and comparing it to the record's proposal.source_payload_commitments.content_sha256."}},"type":"object","required":["action_key","payload_hash","classification","compartments","algorithm","envelope_version","kdf","key_id","iv","ciphertext"],"title":"ContentReleaseResponse"},"CorpusMapResponse":{"properties":{"source":{"additionalProperties":true,"type":"object","title":"Source"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"},"register_counts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Register Counts"},"law_anchor_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Law Anchor Refs"},"compliance_stub_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Compliance Stub Refs"},"pseo_implications":{"items":{"type":"string"},"type":"array","title":"Pseo Implications"},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["source","summary","register_counts","law_anchor_refs","compliance_stub_refs","pseo_implications","claim_boundary"],"title":"CorpusMapResponse"},"DemoFixturesResponse":{"properties":{"fixtures":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Fixtures"}},"type":"object","required":["fixtures"],"title":"DemoFixturesResponse"},"EvidencePacketResponse":{"properties":{"action_key":{"type":"string","title":"Action Key"},"tenant":{"type":"string","title":"Tenant"},"status":{"type":"string","enum":["pending_review","blocked","recorded"],"title":"Status"},"decision":{"type":"string","title":"Decision"},"action_type":{"type":"string","title":"Action Type"},"source_key":{"type":"string","title":"Source Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"packet_hash":{"type":"string","title":"Packet Hash"},"signed_hash":{"type":"string","title":"Signed Hash"},"attestation_root":{"type":"string","title":"Attestation Root"},"stamp_id":{"type":"string","title":"Stamp Id"},"signature":{"type":"string","title":"Signature"},"seal":{"$ref":"#/components/schemas/EvidencePacketSeal"},"verify_request":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verify Request","description":"Ready-to-POST body for POST /v1/verify (alias: /evidence-packets/verify-seal) proving THIS response's re-derived packet: decision is the stored gate decision, review_route the stored route, status reflects whether a review was recorded. Raw-safe: hashes and seal fields only. The same fields POST to /evidence-packets/seal-bundle for the offline 4-file bundle."},"proposal":{"additionalProperties":true,"type":"object","title":"Proposal"},"response":{"additionalProperties":true,"type":"object","title":"Response"},"route_dispatches":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Route Dispatches"},"reviews":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Reviews"},"resolved":{"type":"boolean","title":"Resolved","description":"True once a terminal review decision (approved or rejected) has been recorded for this record.","default":false},"resolution":{"type":"string","enum":["unreviewed","escalated","approved","rejected"],"title":"Resolution","description":"Explicit review outcome. `decision` stays the gate-time decision (e.g. needs_review); this field is the review resolution.","default":"unreviewed"},"resolution_receipt":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Receipt"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Planisphere records routing, review, and receipt metadata only. It does not certify compliance, determine legality, provide medical or legal advice, make export-control conclusions, or replace domain reviewers."}},"type":"object","required":["action_key","tenant","status","decision","action_type","source_key","payload_hash","review_route","packet_hash","signed_hash","attestation_root","stamp_id","signature","seal","proposal","response","route_dispatches","reviews"],"title":"EvidencePacketResponse"},"EvidencePacketSeal":{"properties":{"seal_contract":{"type":"string","title":"Seal Contract","default":"planisphere.evidence_packet/2"},"algorithm":{"type":"string","const":"ed25519","title":"Algorithm","default":"ed25519"},"key_id":{"type":"string","title":"Key Id"},"signed_hash":{"type":"string","title":"Signed Hash"},"packet_hash":{"type":"string","title":"Packet Hash"},"attestation_root":{"type":"string","title":"Attestation Root"},"stamp_id":{"type":"string","title":"Stamp Id"},"signature":{"type":"string","title":"Signature"},"public_key":{"type":"string","title":"Public Key"},"dev_key":{"type":"boolean","title":"Dev Key","default":false},"tenant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant","description":"Tenant id committed into the signed attestation content (seal contract v2+). None on legacy v1 seals."},"recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded At","description":"Server clock at seal time (RFC 3339), committed into the signed attestation content (seal contract v2+) — distinct from any caller-supplied occurred_at. None on legacy v1 seals."},"policy_ref":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Policy Ref","description":"Seal contract v3+: which pack policy governed the record — pack id, pack version, and a hash over the policy's normative content — committed into the signed attestation content. A pack NAME alone cannot answer which rules applied, because names are reused while their contents change. None on v1 and v2 seals."},"metadata_commitment_root":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"},{"type":"null"}],"title":"Metadata Commitment Root","description":"Seal contract v3+: Merkle root over one commitment per metadata key, committed into the signed attestation content, so a single declared value can be proven against the seal on its own. None on v1 and v2 seals."},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The evidence seal signs raw-safe receipt metadata anchored on payload_hash. It is not external notarization, domain advice, a legal/medical/export-control determination, or a compliance certification."}},"type":"object","required":["key_id","signed_hash","packet_hash","attestation_root","stamp_id","signature","public_key"],"title":"EvidencePacketSeal"},"EvidencePacketSealVerificationRequest":{"properties":{"action_key":{"type":"string","title":"Action Key"},"href":{"type":"string","title":"Href"},"status":{"type":"string","enum":["pending_review","blocked","recorded"],"title":"Status"},"decision":{"type":"string","title":"Decision"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"payload_hash":{"type":"string","title":"Payload Hash"},"packet_hash":{"type":"string","title":"Packet Hash"},"vertical":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vertical"},"seal":{"$ref":"#/components/schemas/EvidencePacketSeal"}},"type":"object","required":["action_key","href","status","decision","payload_hash","packet_hash","seal"],"title":"EvidencePacketSealVerificationRequest"},"EvidencePacketSealVerificationResponse":{"properties":{"verified":{"type":"boolean","title":"Verified"},"seal_standing":{"type":"string","enum":["active","expired","unknown"],"title":"Seal Standing","description":"Registry standing of the sealed record. 'active' — Planisphere endorses it as usable evidence. 'expired' — the seal is cryptographically authentic but the endorsement was revoked by a sealed disposal; it is no longer presentable as evidence. 'unknown' — the record is outside this registry's reach (offline verify).","default":"unknown"},"standing_expired_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Standing Expired At"},"standing_expiry_action_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Standing Expiry Action Key","description":"The sealed records_expired disposal that revoked standing."},"standing_notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Standing Notice","description":"Loud human-readable notice set whenever standing is expired: authentic-but-expired must never read as a pass."},"key_status":{"type":"string","enum":["production","production_retired","sandbox","unknown"],"title":"Key Status","default":"unknown"},"key_status_notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Status Notice","description":"Human-readable trust-anchor notice. Set when the seal's key is the sandbox dev key (sandbox receipts are non-production evidence and are not presentable as production records) and whenever the seal does not verify — an unverified seal always reports key_status unknown, because a forged seal can embed a published public key."},"signature_valid":{"type":"boolean","title":"Signature Valid"},"signed_hash_matches_payload":{"type":"boolean","title":"Signed Hash Matches Payload"},"packet_hash_matches_input":{"type":"boolean","title":"Packet Hash Matches Input"},"packet_hash_recomputed":{"type":"boolean","title":"Packet Hash Recomputed"},"attestation_root_recomputed":{"type":"boolean","title":"Attestation Root Recomputed"},"stamp_id_recomputed":{"type":"boolean","title":"Stamp Id Recomputed"},"key_id_matches_public_key":{"type":"boolean","title":"Key Id Matches Public Key"},"seal_contract_valid":{"type":"boolean","title":"Seal Contract Valid"},"key_id":{"type":"string","title":"Key Id"},"key_id_expected":{"type":"string","title":"Key Id Expected"},"stamp_id":{"type":"string","title":"Stamp Id"},"stamp_id_expected":{"type":"string","title":"Stamp Id Expected"},"signed_hash":{"type":"string","title":"Signed Hash"},"packet_hash":{"type":"string","title":"Packet Hash"},"packet_hash_expected":{"type":"string","title":"Packet Hash Expected"},"attestation_root":{"type":"string","title":"Attestation Root"},"attestation_root_expected":{"type":"string","title":"Attestation Root Expected"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Seal verification checks Planisphere attestation metadata only. It does not certify compliance, determine legality, or inspect raw prompt content."}},"type":"object","required":["verified","signature_valid","signed_hash_matches_payload","packet_hash_matches_input","packet_hash_recomputed","attestation_root_recomputed","stamp_id_recomputed","key_id_matches_public_key","seal_contract_valid","key_id","key_id_expected","stamp_id","stamp_id_expected","signed_hash","packet_hash","packet_hash_expected","attestation_root","attestation_root_expected"],"title":"EvidencePacketSealVerificationResponse"},"EvidencePacketStub":{"properties":{"action_key":{"type":"string","title":"Action Key"},"href":{"type":"string","title":"Href"},"status":{"type":"string","enum":["pending_review","blocked","recorded"],"title":"Status"},"packet_hash":{"type":"string","title":"Packet Hash"},"signed_hash":{"type":"string","title":"Signed Hash"},"attestation_root":{"type":"string","title":"Attestation Root"},"stamp_id":{"type":"string","title":"Stamp Id"},"signature":{"type":"string","title":"Signature"},"seal":{"$ref":"#/components/schemas/EvidencePacketSeal"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Planisphere records routing, review, and receipt metadata only. It does not certify compliance, determine legality, provide medical or legal advice, make export-control conclusions, or replace domain reviewers."}},"type":"object","required":["action_key","href","status","packet_hash","signed_hash","attestation_root","stamp_id","signature","seal"],"title":"EvidencePacketStub"},"EvidenceProofKitLink":{"properties":{"label":{"type":"string","title":"Label"},"path":{"type":"string","title":"Path"},"kind":{"type":"string","enum":["endpoint","generated_example","helper","docs","static_review"],"title":"Kind"},"description":{"type":"string","title":"Description"}},"type":"object","required":["label","path","kind","description"],"title":"EvidenceProofKitLink"},"EvidenceProofKitResponse":{"properties":{"object":{"type":"string","const":"evidence_proof_kit","title":"Object","default":"evidence_proof_kit"},"package_version":{"type":"string","title":"Package Version"},"primary_endpoint":{"type":"string","title":"Primary Endpoint"},"verification_flow":{"items":{"type":"string"},"type":"array","title":"Verification Flow"},"required_request_fields":{"items":{"type":"string"},"type":"array","title":"Required Request Fields"},"verification_checks":{"items":{"type":"string"},"type":"array","title":"Verification Checks"},"raw_safe_inputs":{"items":{"type":"string"},"type":"array","title":"Raw Safe Inputs"},"federal_validation_receipts":{"additionalProperties":true,"type":"object","title":"Federal Validation Receipts"},"helper_examples":{"items":{"$ref":"#/components/schemas/EvidenceProofKitLink"},"type":"array","title":"Helper Examples"},"generated_examples":{"items":{"$ref":"#/components/schemas/EvidenceProofKitLink"},"type":"array","title":"Generated Examples"},"docs":{"items":{"$ref":"#/components/schemas/EvidenceProofKitLink"},"type":"array","title":"Docs"},"raw_content_required":{"type":"boolean","title":"Raw Content Required","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The proof kit documents how to verify Planisphere evidence-packet attestation metadata. It does not inspect raw prompts/documents, expose private signing keys, certify compliance, determine legality, or provide external notarization."}},"type":"object","required":["package_version","primary_endpoint","verification_flow","required_request_fields","verification_checks","raw_safe_inputs","helper_examples","generated_examples","docs"],"title":"EvidenceProofKitResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"service":{"type":"string","title":"Service"},"storage":{"type":"string","title":"Storage"},"core":{"type":"string","title":"Core"},"schema_revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Revision"},"expected_schema_revision":{"type":"string","title":"Expected Schema Revision"},"seal_contract":{"type":"string","title":"Seal Contract"},"checks":{"additionalProperties":{"type":"string"},"type":"object","title":"Checks"},"remediation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remediation"}},"type":"object","required":["ok","service","storage","core","expected_schema_revision","seal_contract"],"title":"HealthResponse"},"HostedApiCtaTarget":{"properties":{"kind":{"type":"string","enum":["static_demo","api_reference","signup_onboarding","tenant_console","contact_fallback"],"title":"Kind"},"href":{"type":"string","title":"Href"},"production_real":{"type":"boolean","title":"Production Real"},"browser_safe":{"type":"boolean","title":"Browser Safe"},"requires_tenant_key":{"type":"boolean","title":"Requires Tenant Key","default":false},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["kind","href","production_real","browser_safe","boundary"],"title":"HostedApiCtaTarget"},"HostedApiDomainPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_api_domain_plan","title":"Object","default":"hosted_api_domain_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_api_domain_plan/1"},"public_api_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Api Base Url"},"public_docs_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Docs Base Url"},"api_origin_ready":{"type":"boolean","title":"Api Origin Ready"},"docs_funnel_ready":{"type":"boolean","title":"Docs Funnel Ready"},"configured_verification_mode":{"type":"string","title":"Configured Verification Mode"},"configured_external_health_status":{"type":"string","title":"Configured External Health Status"},"domain_verification_ready":{"type":"boolean","title":"Domain Verification Ready"},"external_health_ready":{"type":"boolean","title":"External Health Ready"},"api_domain_ready":{"type":"boolean","title":"Api Domain Ready"},"recommended_verification_mode":{"type":"string","const":"dns_tls_health_checked","title":"Recommended Verification Mode","default":"dns_tls_health_checked"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"hosting_plan_href":{"type":"string","title":"Hosting Plan Href","default":"/deployment/hosting-plan"},"image_plan_href":{"type":"string","title":"Image Plan Href","default":"/deployment/image-plan"},"health_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Health Url"},"openapi_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openapi Url"},"docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docs Url"},"machine_docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Machine Docs Url"},"verification_plans":{"items":{"$ref":"#/components/schemas/HostedApiDomainVerificationPlan"},"type":"array","title":"Verification Plans"},"missing_production_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Production Requirements"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"dns_record_checked":{"type":"boolean","title":"Dns Record Checked","default":false},"tls_certificate_checked":{"type":"boolean","title":"Tls Certificate Checked","default":false},"external_health_checked":{"type":"boolean","title":"External Health Checked","default":false},"external_openapi_checked":{"type":"boolean","title":"External Openapi Checked","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted API domain plan exposes public API origin, verification mode, external health status, and check URLs only. It does not perform DNS changes, provision TLS certificates, prove external uptime, return secrets or tenant keys, authorize anonymous protected route execution, or claim the public API is reachable unless an operator records a passing external health verification."}},"type":"object","required":["api_origin_ready","docs_funnel_ready","configured_verification_mode","configured_external_health_status","domain_verification_ready","external_health_ready","api_domain_ready","verification_plans","missing_production_requirements","required_environment","optional_environment"],"title":"HostedApiDomainPlanResponse"},"HostedApiDomainVerificationPlan":{"properties":{"mode":{"type":"string","enum":["not_configured","platform_managed_https","dns_tls_health_checked","load_balancer_health_checked","customer_ingress_health_checked","unsupported"],"title":"Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"requires_https_origin":{"type":"boolean","title":"Requires Https Origin","default":true},"requires_external_health_check":{"type":"boolean","title":"Requires External Health Check","default":true},"accepted_health_statuses":{"items":{"type":"string"},"type":"array","title":"Accepted Health Statuses"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["mode","production_ready","accepted_health_statuses","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedApiDomainVerificationPlan"},"HostedApiHostingPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_api_hosting_plan","title":"Object","default":"hosted_api_hosting_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_api_hosting_plan/1"},"public_api_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Api Base Url"},"public_docs_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Docs Base Url"},"api_reference_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Reference Url"},"api_origin_ready":{"type":"boolean","title":"Api Origin Ready"},"configured_runtime_mode":{"type":"string","title":"Configured Runtime Mode"},"runtime_mode_ready":{"type":"boolean","title":"Runtime Mode Ready"},"hosting_ready":{"type":"boolean","title":"Hosting Ready"},"recommended_runtime_mode":{"type":"string","const":"container_service","title":"Recommended Runtime Mode","default":"container_service"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"health_href":{"type":"string","title":"Health Href","default":"/health"},"openapi_href":{"type":"string","title":"Openapi Href","default":"/openapi.json"},"docs_href":{"type":"string","title":"Docs Href","default":"/docs"},"dockerfile_path":{"type":"string","title":"Dockerfile Path","default":"planisphere-api/Dockerfile"},"docker_build_context":{"type":"string","title":"Docker Build Context","default":"apps/"},"docker_entrypoint_runs_migrations":{"type":"boolean","title":"Docker Entrypoint Runs Migrations","default":false},"migration_command":{"type":"string","title":"Migration Command","default":"alembic upgrade head"},"migration_runner":{"type":"string","title":"Migration Runner","default":"cloud_run_job_or_deploy_hook"},"migration_job_name":{"type":"string","title":"Migration Job Name","default":"planisphere-api-alembic-migrate"},"uvicorn_command":{"type":"string","title":"Uvicorn Command","default":"uvicorn planisphere_api.main:app --host 0.0.0.0 --port 8000"},"private_core_dependency":{"type":"string","title":"Private Core Dependency","default":"planisphere-core[full]"},"private_core_server_side":{"type":"boolean","title":"Private Core Server Side","default":true},"vercel_serverless_supported":{"type":"boolean","title":"Vercel Serverless Supported","default":false},"website_vercel_api_functions_are_api_product":{"type":"boolean","title":"Website Vercel Api Functions Are Api Product","default":false},"runtime_plans":{"items":{"$ref":"#/components/schemas/HostedApiRuntimeModePlan"},"type":"array","title":"Runtime Plans"},"missing_production_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Production Requirements"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"private_core_shipped_to_browser":{"type":"boolean","title":"Private Core Shipped To Browser","default":false},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted API hosting plan exposes API origin, runtime posture, Docker startup command, private-core boundary, and missing environment names only. It does not provision cloud infrastructure, prove DNS/TLS ownership, return secrets or tenant keys, ship private core logic to browsers, turn website Vercel /api functions into the Compliant-AI API, or authorize anonymous protected endpoint execution."}},"type":"object","required":["api_origin_ready","configured_runtime_mode","runtime_mode_ready","hosting_ready","runtime_plans","missing_production_requirements","required_environment","optional_environment"],"title":"HostedApiHostingPlanResponse"},"HostedApiReadinessCheck":{"properties":{"name":{"type":"string","title":"Name"},"status":{"type":"string","enum":["ready","missing","blocked","manual","future"],"title":"Status"},"production_real":{"type":"boolean","title":"Production Real"},"evidence":{"type":"string","title":"Evidence"},"next_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Action"}},"type":"object","required":["name","status","production_real","evidence"],"title":"HostedApiReadinessCheck"},"HostedApiReadinessResponse":{"properties":{"object":{"type":"string","const":"hosted_api_readiness","title":"Object","default":"hosted_api_readiness"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_api_readiness/1"},"production_ready":{"type":"boolean","title":"Production Ready"},"public_api_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Api Base Url"},"api_origin_ready":{"type":"boolean","title":"Api Origin Ready"},"api_runtime_mode":{"type":"string","title":"Api Runtime Mode"},"api_runtime_ready":{"type":"boolean","title":"Api Runtime Ready"},"hosting_ready":{"type":"boolean","title":"Hosting Ready"},"hosting_plan_href":{"type":"string","title":"Hosting Plan Href","default":"/deployment/hosting-plan"},"api_domain_ready":{"type":"boolean","title":"Api Domain Ready"},"api_domain_verification_mode":{"type":"string","title":"Api Domain Verification Mode"},"api_external_health_status":{"type":"string","title":"Api External Health Status"},"domain_plan_href":{"type":"string","title":"Domain Plan Href","default":"/deployment/domain-plan"},"image_registry_provider":{"type":"string","title":"Image Registry Provider"},"image_release_ready":{"type":"boolean","title":"Image Release Ready"},"image_plan_href":{"type":"string","title":"Image Plan Href","default":"/deployment/image-plan"},"public_website_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Website Origin"},"public_docs_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Docs Base Url"},"docs_funnel_ready":{"type":"boolean","title":"Docs Funnel Ready"},"api_reference_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Reference Url"},"api_access_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Access Url"},"demo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Url"},"cta_proxy_mode":{"type":"string","title":"Cta Proxy Mode"},"cta_proxy_posture":{"type":"string","title":"Cta Proxy Posture"},"cta_proxy_ready":{"type":"boolean","title":"Cta Proxy Ready"},"cta_proxy_plan_href":{"type":"string","title":"Cta Proxy Plan Href","default":"/deployment/proxy-plan"},"cors_allowed_origins_count":{"type":"integer","title":"Cors Allowed Origins Count"},"cors_middleware_enabled":{"type":"boolean","title":"Cors Middleware Enabled"},"database_backend":{"type":"string","title":"Database Backend"},"database_ready":{"type":"boolean","title":"Database Ready"},"database_plan_href":{"type":"string","title":"Database Plan Href","default":"/deployment/database-plan"},"postgres_required_for_production":{"type":"boolean","title":"Postgres Required For Production","default":true},"postgres_configured":{"type":"boolean","title":"Postgres Configured"},"schema_revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Revision"},"expected_schema_revision":{"type":"string","title":"Expected Schema Revision"},"schema_revision_ready":{"type":"boolean","title":"Schema Revision Ready"},"signup_checkout_mode":{"type":"string","enum":["stripe_test_stub","stripe_checkout_session"],"title":"Signup Checkout Mode"},"signup_production_ready":{"type":"boolean","title":"Signup Production Ready"},"signup_plan_href":{"type":"string","title":"Signup Plan Href","default":"/deployment/signup-plan"},"tenant_console_public_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Console Public Url"},"tenant_console_public_ready":{"type":"boolean","title":"Tenant Console Public Ready","default":false},"tenant_console_auth_mode":{"type":"string","title":"Tenant Console Auth Mode"},"tenant_console_auth_ready":{"type":"boolean","title":"Tenant Console Auth Ready"},"tenant_console_plan_href":{"type":"string","title":"Tenant Console Plan Href","default":"/deployment/tenant-console-plan"},"secret_management_posture":{"type":"string","title":"Secret Management Posture"},"secret_management_ready":{"type":"boolean","title":"Secret Management Ready"},"secret_management_plan_href":{"type":"string","title":"Secret Management Plan Href","default":"/deployment/secret-plan"},"evidence_signer_mode":{"type":"string","title":"Evidence Signer Mode"},"evidence_signing_key_ref_configured":{"type":"boolean","title":"Evidence Signing Key Ref Configured"},"evidence_signer_ready":{"type":"boolean","title":"Evidence Signer Ready"},"evidence_signer_plan_href":{"type":"string","title":"Evidence Signer Plan Href","default":"/deployment/signer-plan"},"worker_deployment_mode":{"type":"string","title":"Worker Deployment Mode"},"worker_deployment_ready":{"type":"boolean","title":"Worker Deployment Ready"},"worker_deployment_plan_href":{"type":"string","title":"Worker Deployment Plan Href","default":"/deployment/worker-plan"},"cta_bridge_plan_href":{"type":"string","title":"Cta Bridge Plan Href","default":"/deployment/cta-bridge-plan"},"observability_sink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Observability Sink"},"observability_ready":{"type":"boolean","title":"Observability Ready"},"production_notifications_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Notifications Channel"},"production_notifications_ready":{"type":"boolean","title":"Production Notifications Ready"},"operations_plan_href":{"type":"string","title":"Operations Plan Href","default":"/deployment/operations-plan"},"request_id_header":{"type":"string","title":"Request Id Header"},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"protected_execution_requires_tenant_key":{"type":"boolean","title":"Protected Execution Requires Tenant Key","default":true},"server_side_private_ip_boundary":{"type":"boolean","title":"Server Side Private Ip Boundary","default":true},"safe_public_cta_targets":{"items":{"$ref":"#/components/schemas/HostedApiCtaTarget"},"type":"array","title":"Safe Public Cta Targets"},"blocked_public_cta_destinations":{"items":{"type":"string"},"type":"array","title":"Blocked Public Cta Destinations"},"checks":{"items":{"$ref":"#/components/schemas/HostedApiReadinessCheck"},"type":"array","title":"Checks"},"missing_production_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Production Requirements"},"website_bridge_next":{"type":"string","title":"Website Bridge Next"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted API readiness reports deployment, CTA bridge, signup, CORS/proxy, storage, tenant-console, secret-management, worker, observability, hosted runtime, container-image release, evidence-signer custody, and production-notification status only. It does not expose secrets, issue tenant keys, authorize public browser calls to protected decision endpoints, claim production Stripe launch readiness unless all required server checks pass, prove provider-side signing custody or delivery, provision DNS/TLS or cloud runtime infrastructure, or certify compliance."}},"type":"object","required":["production_ready","api_origin_ready","api_runtime_mode","api_runtime_ready","hosting_ready","api_domain_ready","api_domain_verification_mode","api_external_health_status","image_registry_provider","image_release_ready","docs_funnel_ready","cta_proxy_mode","cta_proxy_posture","cta_proxy_ready","cors_allowed_origins_count","cors_middleware_enabled","database_backend","database_ready","postgres_configured","expected_schema_revision","schema_revision_ready","signup_checkout_mode","signup_production_ready","tenant_console_auth_mode","tenant_console_auth_ready","secret_management_posture","secret_management_ready","evidence_signer_mode","evidence_signing_key_ref_configured","evidence_signer_ready","worker_deployment_mode","worker_deployment_ready","observability_ready","production_notifications_ready","request_id_header","safe_public_cta_targets","blocked_public_cta_destinations","checks","website_bridge_next"],"title":"HostedApiReadinessResponse"},"HostedApiRuntimeModePlan":{"properties":{"mode":{"type":"string","enum":["local_dev","container_service","managed_container","container_platform","serverless_function","unsupported"],"title":"Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"container_first":{"type":"boolean","title":"Container First"},"private_core_server_side":{"type":"boolean","title":"Private Core Server Side"},"migrations_before_serve":{"type":"boolean","title":"Migrations Before Serve"},"accepted_for_public_api_origin":{"type":"boolean","title":"Accepted For Public Api Origin"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["mode","production_ready","container_first","private_core_server_side","migrations_before_serve","accepted_for_public_api_origin","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedApiRuntimeModePlan"},"HostedCtaBridgeModePlan":{"properties":{"mode":{"type":"string","enum":["request_access_only","same_origin_proxy","direct_cors"],"title":"Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"browser_safe":{"type":"boolean","title":"Browser Safe"},"server_side_proxy_required":{"type":"boolean","title":"Server Side Proxy Required","default":false},"cors_required":{"type":"boolean","title":"Cors Required","default":false},"tenant_key_exposure_allowed":{"type":"boolean","title":"Tenant Key Exposure Allowed","default":false},"protected_execution_allowed_from_public_browser":{"type":"boolean","title":"Protected Execution Allowed From Public Browser","default":false},"website_requirements":{"items":{"type":"string"},"type":"array","title":"Website Requirements"},"api_requirements":{"items":{"type":"string"},"type":"array","title":"Api Requirements"},"csp_connect_src":{"items":{"type":"string"},"type":"array","title":"Csp Connect Src"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["mode","production_ready","browser_safe","website_requirements","api_requirements","csp_connect_src","boundary"],"title":"HostedCtaBridgeModePlan"},"HostedCtaBridgePlanResponse":{"properties":{"object":{"type":"string","const":"hosted_cta_bridge_plan","title":"Object","default":"hosted_cta_bridge_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_cta_bridge_plan/1"},"configured_mode":{"type":"string","title":"Configured Mode"},"configured_mode_ready":{"type":"boolean","title":"Configured Mode Ready"},"recommended_mode":{"type":"string","const":"same_origin_proxy","title":"Recommended Mode","default":"same_origin_proxy"},"public_api_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Api Base Url"},"public_docs_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Docs Base Url"},"api_reference_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Reference Url"},"api_access_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Access Url"},"demo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Url"},"public_website_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Website Origin"},"cors_allowed_origins_count":{"type":"integer","title":"Cors Allowed Origins Count"},"cors_origin_ready":{"type":"boolean","title":"Cors Origin Ready"},"cors_middleware_enabled":{"type":"boolean","title":"Cors Middleware Enabled"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"signup_readiness_href":{"type":"string","title":"Signup Readiness Href","default":"/signup/readiness"},"signup_checkout_href":{"type":"string","title":"Signup Checkout Href","default":"/signup/checkout"},"tenant_console_href":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Console Href"},"public_readiness_routes":{"items":{"type":"string"},"type":"array","title":"Public Readiness Routes"},"safe_public_cta_targets":{"items":{"$ref":"#/components/schemas/HostedApiCtaTarget"},"type":"array","title":"Safe Public Cta Targets"},"blocked_public_cta_destinations":{"items":{"type":"string"},"type":"array","title":"Blocked Public Cta Destinations"},"mode_plans":{"items":{"$ref":"#/components/schemas/HostedCtaBridgeModePlan"},"type":"array","title":"Mode Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"website_rewrite_requirements":{"items":{"type":"string"},"type":"array","title":"Website Rewrite Requirements"},"website_csp_connect_src":{"items":{"type":"string"},"type":"array","title":"Website Csp Connect Src"},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"protected_execution_requires_tenant_key":{"type":"boolean","title":"Protected Execution Requires Tenant Key","default":true},"server_side_private_ip_boundary":{"type":"boolean","title":"Server Side Private Ip Boundary","default":true},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted CTA bridge plan exposes safe public CTA destinations, proxy/CORS requirements, and protected endpoint boundaries only. It does not return tenant API keys, raw secrets, raw prompts or documents, authorize anonymous browser execution, configure website rewrites, or prove that the website has deployed the selected bridge."}},"type":"object","required":["configured_mode","configured_mode_ready","cors_allowed_origins_count","cors_origin_ready","cors_middleware_enabled","public_readiness_routes","safe_public_cta_targets","blocked_public_cta_destinations","mode_plans","required_environment","website_rewrite_requirements","website_csp_connect_src"],"title":"HostedCtaBridgePlanResponse"},"HostedCtaProxyPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_cta_proxy_plan","title":"Object","default":"hosted_cta_proxy_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_cta_proxy_plan/1"},"configured_mode":{"type":"string","title":"Configured Mode"},"configured_posture":{"type":"string","title":"Configured Posture"},"configured_posture_ready":{"type":"boolean","title":"Configured Posture Ready"},"recommended_posture":{"type":"string","const":"server_rewrite_session_bound","title":"Recommended Posture","default":"server_rewrite_session_bound"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"cta_bridge_plan_href":{"type":"string","title":"Cta Bridge Plan Href","default":"/deployment/cta-bridge-plan"},"tenant_console_plan_href":{"type":"string","title":"Tenant Console Plan Href","default":"/deployment/tenant-console-plan"},"public_api_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Api Base Url"},"public_docs_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Docs Base Url"},"public_website_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Website Origin"},"public_readiness_routes":{"items":{"type":"string"},"type":"array","title":"Public Readiness Routes"},"protected_routes_require_session":{"items":{"type":"string"},"type":"array","title":"Protected Routes Require Session"},"posture_plans":{"items":{"$ref":"#/components/schemas/HostedCtaProxyPosturePlan"},"type":"array","title":"Posture Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"website_rewrite_requirements":{"items":{"type":"string"},"type":"array","title":"Website Rewrite Requirements"},"csp_connect_src":{"items":{"type":"string"},"type":"array","title":"Csp Connect Src"},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"tenant_key_exposure_allowed":{"type":"boolean","title":"Tenant Key Exposure Allowed","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted CTA proxy plan exposes server-side rewrite/session posture, allowed public upstream routes, and protected route boundaries only. It does not configure website rewrites, expose tenant API keys, store raw API keys, authorize anonymous protected execution, or prove that a production proxy is deployed."}},"type":"object","required":["configured_mode","configured_posture","configured_posture_ready","public_readiness_routes","protected_routes_require_session","posture_plans","required_environment","website_rewrite_requirements","csp_connect_src"],"title":"HostedCtaProxyPlanResponse"},"HostedCtaProxyPosturePlan":{"properties":{"posture":{"type":"string","enum":["not_configured","public_readiness_only","server_rewrite_session_bound","managed_edge_proxy_session_bound"],"title":"Posture"},"production_ready":{"type":"boolean","title":"Production Ready"},"browser_safe":{"type":"boolean","title":"Browser Safe"},"server_side_only":{"type":"boolean","title":"Server Side Only","default":true},"session_bound":{"type":"boolean","title":"Session Bound","default":false},"tenant_key_exposure_allowed":{"type":"boolean","title":"Tenant Key Exposure Allowed","default":false},"protected_execution_allowed":{"type":"boolean","title":"Protected Execution Allowed","default":false},"allowed_upstream_routes":{"items":{"type":"string"},"type":"array","title":"Allowed Upstream Routes"},"blocked_upstream_routes":{"items":{"type":"string"},"type":"array","title":"Blocked Upstream Routes"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"website_requirements":{"items":{"type":"string"},"type":"array","title":"Website Requirements"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["posture","production_ready","browser_safe","allowed_upstream_routes","blocked_upstream_routes","required_environment","website_requirements","boundary"],"title":"HostedCtaProxyPosturePlan"},"HostedDatabaseDeploymentPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_database_deployment_plan","title":"Object","default":"hosted_database_deployment_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_database_deployment_plan/1"},"configured_backend":{"type":"string","title":"Configured Backend"},"configured_backend_ready":{"type":"boolean","title":"Configured Backend Ready"},"database_ready":{"type":"boolean","title":"Database Ready"},"postgres_required_for_production":{"type":"boolean","title":"Postgres Required For Production","default":true},"postgres_configured":{"type":"boolean","title":"Postgres Configured"},"schema_revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Revision"},"expected_schema_revision":{"type":"string","title":"Expected Schema Revision"},"schema_revision_ready":{"type":"boolean","title":"Schema Revision Ready"},"migration_required":{"type":"boolean","title":"Migration Required"},"migration_command":{"type":"string","title":"Migration Command","default":"alembic upgrade head"},"docker_entrypoint_runs_migrations":{"type":"boolean","title":"Docker Entrypoint Runs Migrations","default":false},"migration_runner":{"type":"string","title":"Migration Runner","default":"cloud_run_job_or_deploy_hook"},"migration_job_name":{"type":"string","title":"Migration Job Name","default":"planisphere-api-alembic-migrate"},"docker_compose_postgres_service":{"type":"boolean","title":"Docker Compose Postgres Service","default":true},"runtime_create_all_allowed":{"type":"boolean","title":"Runtime Create All Allowed","default":false},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"health_href":{"type":"string","title":"Health Href","default":"/health"},"readiness_check_names":{"items":{"type":"string"},"type":"array","title":"Readiness Check Names"},"accepted_production_url_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Production Url Schemes"},"accepted_dev_url_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Dev Url Schemes"},"posture_plans":{"items":{"$ref":"#/components/schemas/HostedDatabasePosturePlan"},"type":"array","title":"Posture Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"production_readiness_check":{"type":"string","title":"Production Readiness Check","default":"postgres_database"},"migration_readiness_check":{"type":"string","title":"Migration Readiness Check","default":"alembic_schema_revision"},"raw_database_url_returned":{"type":"boolean","title":"Raw Database Url Returned","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted database deployment plan exposes backend class, migration status, accepted URL scheme families, and deployment commands only. It does not return database URLs, credentials, tenant API keys, prompt or document content, provision managed Postgres, run migrations, or prove external cloud database availability."}},"type":"object","required":["configured_backend","configured_backend_ready","database_ready","postgres_configured","expected_schema_revision","schema_revision_ready","migration_required","readiness_check_names","accepted_production_url_schemes","accepted_dev_url_schemes","posture_plans","required_environment","optional_environment"],"title":"HostedDatabaseDeploymentPlanResponse"},"HostedDatabasePosturePlan":{"properties":{"posture":{"type":"string","enum":["sqlite_dev","managed_postgres","unknown"],"title":"Posture"},"production_ready":{"type":"boolean","title":"Production Ready"},"accepted_url_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Url Schemes"},"stores_tenant_state":{"type":"boolean","title":"Stores Tenant State"},"migration_command":{"type":"string","title":"Migration Command"},"docker_entrypoint_runs_migrations":{"type":"boolean","title":"Docker Entrypoint Runs Migrations"},"migration_runner":{"type":"string","title":"Migration Runner"},"migration_job_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Migration Job Name"},"runtime_create_all_allowed":{"type":"boolean","title":"Runtime Create All Allowed","default":false},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["posture","production_ready","accepted_url_schemes","stores_tenant_state","migration_command","docker_entrypoint_runs_migrations","migration_runner","allowed_usage","blocked_usage","boundary"],"title":"HostedDatabasePosturePlan"},"HostedEnvironmentPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_environment_plan","title":"Object","default":"hosted_environment_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_environment_plan/1"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"env_example_path":{"type":"string","title":"Env Example Path","default":".env.example"},"docker_compose_path":{"type":"string","title":"Docker Compose Path","default":"docker-compose.yml"},"required_environment_ready":{"type":"boolean","title":"Required Environment Ready"},"required_variables_total":{"type":"integer","title":"Required Variables Total"},"required_variables_ready":{"type":"integer","title":"Required Variables Ready"},"conditional_variables_total":{"type":"integer","title":"Conditional Variables Total"},"conditional_variables_ready":{"type":"integer","title":"Conditional Variables Ready"},"variables":{"items":{"$ref":"#/components/schemas/HostedEnvironmentVariablePlan"},"type":"array","title":"Variables"},"missing_required_environment":{"items":{"type":"string"},"type":"array","title":"Missing Required Environment"},"dotenv_template_lines":{"items":{"type":"string"},"type":"array","title":"Dotenv Template Lines"},"operator_steps":{"items":{"type":"string"},"type":"array","title":"Operator Steps"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_database_url_returned":{"type":"boolean","title":"Raw Database Url Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted environment plan exposes variable names, readiness booleans, safe placeholder examples, source plan links, and operator steps only. It does not return live secret values, raw tenant API keys, database URLs, prompt/document content, DNS/TLS evidence, or authorize anonymous protected route execution."}},"type":"object","required":["required_environment_ready","required_variables_total","required_variables_ready","conditional_variables_total","conditional_variables_ready","variables","missing_required_environment","dotenv_template_lines","operator_steps"],"title":"HostedEnvironmentPlanResponse"},"HostedEnvironmentVariablePlan":{"properties":{"name":{"type":"string","title":"Name"},"group":{"type":"string","enum":["hosting","domain","image","docs_funnel","website_bridge","database","signup","tenant_console","secrets","signing","worker","operations","dev_optional"],"title":"Group"},"required_for_public_api_funnel":{"type":"boolean","title":"Required For Public Api Funnel"},"configured":{"type":"boolean","title":"Configured"},"production_ready":{"type":"boolean","title":"Production Ready"},"secret":{"type":"boolean","title":"Secret","default":false},"conditional":{"type":"boolean","title":"Conditional","default":false},"required_when":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required When"},"safe_example":{"type":"string","title":"Safe Example"},"accepted_values":{"items":{"type":"string"},"type":"array","title":"Accepted Values"},"source_plan_href":{"type":"string","title":"Source Plan Href"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["name","group","required_for_public_api_funnel","configured","production_ready","safe_example","accepted_values","source_plan_href","boundary"],"title":"HostedEnvironmentVariablePlan"},"HostedEvidenceSignerModePlan":{"properties":{"mode":{"type":"string","enum":["dev_key","env_private_key","managed_kms","managed_hsm","external_signer","unsupported"],"title":"Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"active_runtime_supported":{"type":"boolean","title":"Active Runtime Supported"},"private_key_in_process":{"type":"boolean","title":"Private Key In Process"},"key_ref_required":{"type":"boolean","title":"Key Ref Required"},"audit_log_required":{"type":"boolean","title":"Audit Log Required"},"rotation_required":{"type":"boolean","title":"Rotation Required"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["mode","production_ready","active_runtime_supported","private_key_in_process","key_ref_required","audit_log_required","rotation_required","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedEvidenceSignerModePlan"},"HostedEvidenceSignerPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_evidence_signer_plan","title":"Object","default":"hosted_evidence_signer_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_evidence_signer_plan/1"},"configured_mode":{"type":"string","title":"Configured Mode"},"configured_mode_ready":{"type":"boolean","title":"Configured Mode Ready"},"signing_key_ref_configured":{"type":"boolean","title":"Signing Key Ref Configured"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"mode_plans":{"items":{"$ref":"#/components/schemas/HostedEvidenceSignerModePlan"},"type":"array","title":"Mode Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"production_readiness_check":{"type":"string","title":"Production Readiness Check","default":"evidence_signer_custody"},"raw_private_key_returned":{"type":"boolean","title":"Raw Private Key Returned","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted evidence signer plan exposes signer posture, key-reference requirements, and custody boundaries only. It does not return private signing keys, provision KMS/HSM resources, prove provider IAM, certify FIPS/FedRAMP/SOC 2 status, or claim managed signer readiness before an accepted versioned key reference and external custody evidence exist."}},"type":"object","required":["configured_mode","configured_mode_ready","signing_key_ref_configured","mode_plans","required_environment","optional_environment"],"title":"HostedEvidenceSignerPlanResponse"},"HostedImageRegistryPlan":{"properties":{"provider":{"type":"string","enum":["not_configured","ghcr","ecr","gcr","acr","managed_registry","unsupported"],"title":"Provider"},"production_ready":{"type":"boolean","title":"Production Ready"},"accepted_registry_patterns":{"items":{"type":"string"},"type":"array","title":"Accepted Registry Patterns"},"supports_digest_pinning":{"type":"boolean","title":"Supports Digest Pinning"},"supports_private_images":{"type":"boolean","title":"Supports Private Images"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["provider","production_ready","accepted_registry_patterns","supports_digest_pinning","supports_private_images","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedImageRegistryPlan"},"HostedImageReleasePlanResponse":{"properties":{"object":{"type":"string","const":"hosted_image_release_plan","title":"Object","default":"hosted_image_release_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_image_release_plan/1"},"configured_registry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Registry"},"configured_repository":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Repository"},"configured_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Tag"},"configured_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Digest"},"configured_provenance_mode":{"type":"string","title":"Configured Provenance Mode"},"configured_registry_provider":{"type":"string","title":"Configured Registry Provider"},"registry_ready":{"type":"boolean","title":"Registry Ready"},"repository_ready":{"type":"boolean","title":"Repository Ready"},"tag_ready":{"type":"boolean","title":"Tag Ready"},"digest_ready":{"type":"boolean","title":"Digest Ready"},"provenance_ready":{"type":"boolean","title":"Provenance Ready"},"image_release_ready":{"type":"boolean","title":"Image Release Ready"},"recommended_reference_format":{"type":"string","title":"Recommended Reference Format","default":"$PLANISPHERE_IMAGE_REGISTRY/$PLANISPHERE_IMAGE_REPOSITORY@$PLANISPHERE_IMAGE_DIGEST"},"dockerfile_path":{"type":"string","title":"Dockerfile Path","default":"planisphere-api/Dockerfile"},"docker_build_context":{"type":"string","title":"Docker Build Context","default":"apps/"},"docker_build_command":{"items":{"type":"string"},"type":"array","title":"Docker Build Command"},"docker_push_command":{"items":{"type":"string"},"type":"array","title":"Docker Push Command"},"docker_inspect_digest_command":{"items":{"type":"string"},"type":"array","title":"Docker Inspect Digest Command"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"hosting_plan_href":{"type":"string","title":"Hosting Plan Href","default":"/deployment/hosting-plan"},"registry_plans":{"items":{"$ref":"#/components/schemas/HostedImageRegistryPlan"},"type":"array","title":"Registry Plans"},"missing_production_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Production Requirements"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"private_core_server_side":{"type":"boolean","title":"Private Core Server Side","default":true},"private_image_required":{"type":"boolean","title":"Private Image Required","default":true},"digest_pinned_reference_required":{"type":"boolean","title":"Digest Pinned Reference Required","default":true},"vercel_serverless_supported":{"type":"boolean","title":"Vercel Serverless Supported","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted image release plan exposes registry host, repository, tag, digest pinning posture, provenance mode, and Docker command shapes only. It does not push images, return registry credentials, expose tenant keys, ship private core logic to the browser, prove an external registry contains the image, or authorize deployment of an unpinned mutable tag."}},"type":"object","required":["configured_provenance_mode","configured_registry_provider","registry_ready","repository_ready","tag_ready","digest_ready","provenance_ready","image_release_ready","docker_build_command","docker_push_command","docker_inspect_digest_command","registry_plans","missing_production_requirements","required_environment","optional_environment"],"title":"HostedImageReleasePlanResponse"},"HostedNotificationChannelPlan":{"properties":{"channel":{"type":"string","enum":["not_configured","tenant_safe_notifications","unsupported"],"title":"Channel"},"production_ready":{"type":"boolean","title":"Production Ready"},"logger_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logger Name"},"preview_route":{"type":"string","title":"Preview Route"},"emit_route":{"type":"string","title":"Emit Route"},"emits_operator_event":{"type":"boolean","title":"Emits Operator Event"},"sends_provider_traffic":{"type":"boolean","title":"Sends Provider Traffic","default":false},"external_delivery_attempted_by_default":{"type":"boolean","title":"External Delivery Attempted By Default","default":false},"raw_route_payload_logged":{"type":"boolean","title":"Raw Route Payload Logged","default":false},"raw_secret_material_logged":{"type":"boolean","title":"Raw Secret Material Logged","default":false},"raw_api_key_logged":{"type":"boolean","title":"Raw Api Key Logged","default":false},"raw_content_logged":{"type":"boolean","title":"Raw Content Logged","default":false},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["channel","production_ready","preview_route","emit_route","emits_operator_event","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedNotificationChannelPlan"},"HostedOperationsDeploymentPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_operations_deployment_plan","title":"Object","default":"hosted_operations_deployment_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_operations_deployment_plan/1"},"configured_observability_sink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Observability Sink"},"observability_ready":{"type":"boolean","title":"Observability Ready"},"configured_notification_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Notification Channel"},"production_notifications_ready":{"type":"boolean","title":"Production Notifications Ready"},"operations_ready":{"type":"boolean","title":"Operations Ready"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"routing_alerts_href":{"type":"string","title":"Routing Alerts Href","default":"/routing/outbox/alerts"},"notification_preview_href":{"type":"string","title":"Notification Preview Href","default":"/routing/outbox/notifications/preview"},"notification_emit_href":{"type":"string","title":"Notification Emit Href","default":"/routing/outbox/notifications/emit"},"request_id_header":{"type":"string","title":"Request Id Header"},"access_logger_name":{"type":"string","title":"Access Logger Name"},"notification_logger_name":{"type":"string","title":"Notification Logger Name"},"production_readiness_checks":{"items":{"type":"string"},"type":"array","title":"Production Readiness Checks"},"telemetry_plans":{"items":{"$ref":"#/components/schemas/HostedTelemetrySinkPlan"},"type":"array","title":"Telemetry Plans"},"notification_plans":{"items":{"$ref":"#/components/schemas/HostedNotificationChannelPlan"},"type":"array","title":"Notification Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"raw_request_body_logged":{"type":"boolean","title":"Raw Request Body Logged","default":false},"raw_response_body_logged":{"type":"boolean","title":"Raw Response Body Logged","default":false},"query_string_logged":{"type":"boolean","title":"Query String Logged","default":false},"headers_logged":{"type":"boolean","title":"Headers Logged","default":false},"raw_api_key_logged":{"type":"boolean","title":"Raw Api Key Logged","default":false},"raw_secret_material_logged":{"type":"boolean","title":"Raw Secret Material Logged","default":false},"raw_content_logged":{"type":"boolean","title":"Raw Content Logged","default":false},"external_delivery_attempted_by_default":{"type":"boolean","title":"External Delivery Attempted By Default","default":false},"sends_provider_traffic":{"type":"boolean","title":"Sends Provider Traffic","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted operations deployment plan exposes tenant-safe logging and notification posture names, logger identifiers, route names, request-id header, and environment requirements only. It does not return request or response bodies, query strings, headers, API keys, secrets, raw route payloads, prompt or document content, send provider traffic, or prove that an external observability/notification vendor has been configured."}},"type":"object","required":["observability_ready","production_notifications_ready","operations_ready","request_id_header","access_logger_name","notification_logger_name","production_readiness_checks","telemetry_plans","notification_plans","required_environment","optional_environment"],"title":"HostedOperationsDeploymentPlanResponse"},"HostedSecretManagementPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_secret_management_plan","title":"Object","default":"hosted_secret_management_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_secret_management_plan/1"},"configured_posture":{"type":"string","title":"Configured Posture"},"configured_posture_ready":{"type":"boolean","title":"Configured Posture Ready"},"recommended_postures":{"items":{"type":"string"},"type":"array","title":"Recommended Postures"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"tenant_integration_security_policy_href":{"type":"string","title":"Tenant Integration Security Policy Href","default":"/tenant/integrations/security-policy"},"tenant_integration_readiness_href":{"type":"string","title":"Tenant Integration Readiness Href","default":"/tenant/integrations/readiness"},"accepted_secret_ref_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Secret Ref Schemes"},"secret_ref_map_env":{"type":"string","title":"Secret Ref Map Env"},"provider_plans":{"items":{"$ref":"#/components/schemas/HostedSecretProviderPlan"},"type":"array","title":"Provider Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"production_readiness_check":{"type":"string","title":"Production Readiness Check","default":"secret_management_posture"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"secret_values_logged":{"type":"boolean","title":"Secret Values Logged","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted secret management plan exposes accepted reference schemes, runtime posture names, and IAM/RBAC requirements only. It does not return secret values, tenant API keys, raw route payloads, prompt or document content, provision cloud IAM, verify external IAM policy, or prove provider-side secret access."}},"type":"object","required":["configured_posture","configured_posture_ready","recommended_postures","accepted_secret_ref_schemes","secret_ref_map_env","provider_plans","required_environment","optional_environment"],"title":"HostedSecretManagementPlanResponse"},"HostedSecretProviderPlan":{"properties":{"provider":{"type":"string","enum":["env","aws_sm","gcp_sm","azure_kv","managed_secret_store"],"title":"Provider"},"accepted_ref_prefixes":{"items":{"type":"string"},"type":"array","title":"Accepted Ref Prefixes"},"production_posture":{"type":"boolean","title":"Production Posture"},"runtime_requirement":{"type":"string","title":"Runtime Requirement"},"optional_dependency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Optional Dependency"},"iam_requirement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Iam Requirement"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["provider","accepted_ref_prefixes","production_posture","runtime_requirement","boundary"],"title":"HostedSecretProviderPlan"},"HostedSignupCheckoutModePlan":{"properties":{"mode":{"type":"string","enum":["stripe_test_stub","stripe_checkout_session"],"title":"Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"browser_safe":{"type":"boolean","title":"Browser Safe"},"server_side_checkout_required":{"type":"boolean","title":"Server Side Checkout Required","default":true},"signed_webhook_required":{"type":"boolean","title":"Signed Webhook Required"},"claim_token_required":{"type":"boolean","title":"Claim Token Required","default":true},"bound_signup_session_required":{"type":"boolean","title":"Bound Signup Session Required","default":true},"raw_api_key_returned_by_checkout":{"type":"boolean","title":"Raw Api Key Returned By Checkout","default":false},"raw_claim_token_in_return_url_allowed":{"type":"boolean","title":"Raw Claim Token In Return Url Allowed","default":false},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["mode","production_ready","browser_safe","signed_webhook_required","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedSignupCheckoutModePlan"},"HostedSignupDeploymentPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_signup_deployment_plan","title":"Object","default":"hosted_signup_deployment_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_signup_deployment_plan/1"},"configured_checkout_mode":{"type":"string","enum":["stripe_test_stub","stripe_checkout_session"],"title":"Configured Checkout Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"billing_test_mode":{"type":"boolean","title":"Billing Test Mode"},"test_completion_enabled":{"type":"boolean","title":"Test Completion Enabled"},"signed_test_webhook_enabled":{"type":"boolean","title":"Signed Test Webhook Enabled"},"signed_stripe_webhook_enabled":{"type":"boolean","title":"Signed Stripe Webhook Enabled"},"production_checkout_provider_supported":{"type":"boolean","title":"Production Checkout Provider Supported","default":true},"production_checkout_enabled":{"type":"boolean","title":"Production Checkout Enabled"},"stripe_secret_key_configured":{"type":"boolean","title":"Stripe Secret Key Configured"},"stripe_price_configured":{"type":"boolean","title":"Stripe Price Configured"},"stripe_webhook_secret_configured":{"type":"boolean","title":"Stripe Webhook Secret Configured"},"stripe_checkout_mode":{"type":"string","title":"Stripe Checkout Mode"},"stripe_meter_event_name":{"type":"string","title":"Stripe Meter Event Name"},"stripe_meter_event_name_configured":{"type":"boolean","title":"Stripe Meter Event Name Configured"},"stripe_meter_customer_payload_key":{"type":"string","title":"Stripe Meter Customer Payload Key"},"stripe_meter_value_payload_key":{"type":"string","title":"Stripe Meter Value Payload Key"},"usage_meter_ledger_enabled":{"type":"boolean","title":"Usage Meter Ledger Enabled","default":true},"usage_meter_event_name":{"type":"string","title":"Usage Meter Event Name","default":"seal_epoch"},"usage_meter_unit":{"type":"string","title":"Usage Meter Unit","default":"seal_epoch"},"price_amount_returned":{"type":"boolean","title":"Price Amount Returned","default":false},"pricing_model_encoded":{"type":"boolean","title":"Pricing Model Encoded","default":false},"signup_session_cookie_secure":{"type":"boolean","title":"Signup Session Cookie Secure"},"signup_session_ttl_seconds":{"type":"integer","title":"Signup Session Ttl Seconds"},"account_session_supported":{"type":"boolean","title":"Account Session Supported","default":true},"account_session_cookie_httponly":{"type":"boolean","title":"Account Session Cookie Httponly","default":true},"account_session_cookie_secure":{"type":"boolean","title":"Account Session Cookie Secure"},"account_session_ttl_seconds":{"type":"integer","title":"Account Session Ttl Seconds"},"account_me_href":{"type":"string","title":"Account Me Href","default":"/account/me"},"account_logout_href":{"type":"string","title":"Account Logout Href","default":"/account/logout"},"claim_token_cookie_supported":{"type":"boolean","title":"Claim Token Cookie Supported","default":true},"claim_token_cookie_httponly":{"type":"boolean","title":"Claim Token Cookie Httponly","default":true},"claim_token_cookie_secure":{"type":"boolean","title":"Claim Token Cookie Secure"},"return_page_browser_safe":{"type":"boolean","title":"Return Page Browser Safe","default":true},"signup_readiness_href":{"type":"string","title":"Signup Readiness Href","default":"/signup/readiness"},"signup_return_href":{"type":"string","title":"Signup Return Href","default":"/signup/return"},"signup_checkout_href":{"type":"string","title":"Signup Checkout Href","default":"/signup/checkout"},"signup_status_href":{"type":"string","title":"Signup Status Href","default":"/signup/status"},"signup_claim_key_href":{"type":"string","title":"Signup Claim Key Href","default":"/signup/claim-key"},"signup_stripe_webhook_href":{"type":"string","title":"Signup Stripe Webhook Href","default":"/signup/webhook/stripe"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"cta_bridge_plan_href":{"type":"string","title":"Cta Bridge Plan Href","default":"/deployment/cta-bridge-plan"},"mode_plans":{"items":{"$ref":"#/components/schemas/HostedSignupCheckoutModePlan"},"type":"array","title":"Mode Plans"},"missing_production_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Production Requirements"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"raw_api_key_returned_by_checkout":{"type":"boolean","title":"Raw Api Key Returned By Checkout","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"raw_claim_token_stored":{"type":"boolean","title":"Raw Claim Token Stored","default":false},"raw_claim_token_in_return_url_allowed":{"type":"boolean","title":"Raw Claim Token In Return Url Allowed","default":false},"signup_session_stored":{"type":"boolean","title":"Signup Session Stored","default":false},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"protected_execution_requires_tenant_key":{"type":"boolean","title":"Protected Execution Requires Tenant Key","default":true},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted signup deployment plan exposes checkout mode, safe route names, cookie/session posture, and missing environment names only. It does not return Stripe secrets, webhook secrets, tenant API keys, raw claim tokens, raw signup session tokens, browser-call protected decision routes, store raw keys/tokens, or claim that live Stripe/account identity is production ready unless all server-side checks pass."}},"type":"object","required":["configured_checkout_mode","production_ready","billing_test_mode","test_completion_enabled","signed_test_webhook_enabled","signed_stripe_webhook_enabled","production_checkout_enabled","stripe_secret_key_configured","stripe_price_configured","stripe_webhook_secret_configured","stripe_checkout_mode","stripe_meter_event_name","stripe_meter_event_name_configured","stripe_meter_customer_payload_key","stripe_meter_value_payload_key","signup_session_cookie_secure","signup_session_ttl_seconds","account_session_cookie_secure","account_session_ttl_seconds","claim_token_cookie_secure","mode_plans","missing_production_requirements","required_environment","optional_environment"],"title":"HostedSignupDeploymentPlanResponse"},"HostedTelemetrySinkPlan":{"properties":{"sink":{"type":"string","enum":["not_configured","tenant_safe_logs","unsupported"],"title":"Sink"},"production_ready":{"type":"boolean","title":"Production Ready"},"logger_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logger Name"},"request_id_header":{"type":"string","title":"Request Id Header"},"emits_access_events":{"type":"boolean","title":"Emits Access Events"},"raw_request_body_logged":{"type":"boolean","title":"Raw Request Body Logged","default":false},"raw_response_body_logged":{"type":"boolean","title":"Raw Response Body Logged","default":false},"query_string_logged":{"type":"boolean","title":"Query String Logged","default":false},"headers_logged":{"type":"boolean","title":"Headers Logged","default":false},"raw_api_key_logged":{"type":"boolean","title":"Raw Api Key Logged","default":false},"raw_content_logged":{"type":"boolean","title":"Raw Content Logged","default":false},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_usage":{"items":{"type":"string"},"type":"array","title":"Allowed Usage"},"blocked_usage":{"items":{"type":"string"},"type":"array","title":"Blocked Usage"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["sink","production_ready","request_id_header","emits_access_events","required_environment","allowed_usage","blocked_usage","boundary"],"title":"HostedTelemetrySinkPlan"},"HostedTenantConsoleAuthModePlan":{"properties":{"mode":{"type":"string","enum":["not_configured","same_origin_session","oidc_sso","customer_portal_session"],"title":"Mode"},"production_ready":{"type":"boolean","title":"Production Ready"},"browser_safe":{"type":"boolean","title":"Browser Safe"},"server_side_session_required":{"type":"boolean","title":"Server Side Session Required","default":true},"tenant_key_exposure_allowed":{"type":"boolean","title":"Tenant Key Exposure Allowed","default":false},"local_storage_allowed":{"type":"boolean","title":"Local Storage Allowed","default":false},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"allowed_console_actions":{"items":{"type":"string"},"type":"array","title":"Allowed Console Actions"},"blocked_console_actions":{"items":{"type":"string"},"type":"array","title":"Blocked Console Actions"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["mode","production_ready","browser_safe","required_environment","allowed_console_actions","blocked_console_actions","boundary"],"title":"HostedTenantConsoleAuthModePlan"},"HostedTenantConsolePlanResponse":{"properties":{"object":{"type":"string","const":"hosted_tenant_console_plan","title":"Object","default":"hosted_tenant_console_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_tenant_console_plan/1"},"configured_console_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Configured Console Url"},"configured_console_url_ready":{"type":"boolean","title":"Configured Console Url Ready"},"configured_auth_mode":{"type":"string","title":"Configured Auth Mode"},"configured_auth_ready":{"type":"boolean","title":"Configured Auth Ready"},"recommended_auth_mode":{"type":"string","const":"same_origin_session","title":"Recommended Auth Mode","default":"same_origin_session"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"cta_bridge_plan_href":{"type":"string","title":"Cta Bridge Plan Href","default":"/deployment/cta-bridge-plan"},"signup_return_href":{"type":"string","title":"Signup Return Href","default":"/signup/return"},"tenant_me_href":{"type":"string","title":"Tenant Me Href","default":"/tenant/me"},"tenant_api_keys_href":{"type":"string","title":"Tenant Api Keys Href","default":"/tenant/api-keys"},"mode_plans":{"items":{"$ref":"#/components/schemas/HostedTenantConsoleAuthModePlan"},"type":"array","title":"Mode Plans"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"public_cta_allowed":{"type":"boolean","title":"Public Cta Allowed"},"tenant_key_exposure_allowed":{"type":"boolean","title":"Tenant Key Exposure Allowed","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted tenant console plan exposes URL, session/auth posture, and safe console action boundaries only. It does not return tenant API keys, store raw API keys, authorize anonymous console access, store raw prompt or document content, or prove that an external identity provider has been configured."}},"type":"object","required":["configured_console_url_ready","configured_auth_mode","configured_auth_ready","mode_plans","required_environment","public_cta_allowed"],"title":"HostedTenantConsolePlanResponse"},"HostedWebsiteCtaInventoryItem":{"properties":{"cta_key":{"type":"string","title":"Cta Key"},"label":{"type":"string","title":"Label"},"href":{"type":"string","title":"Href"},"kind":{"type":"string","enum":["static_demo","api_reference","signup_onboarding","tenant_console","contact_fallback","self_serve_signup","protected_execution"],"title":"Kind"},"phase":{"type":"string","enum":["safe_now","production_gate","blocked"],"title":"Phase"},"recommended_now":{"type":"boolean","title":"Recommended Now"},"production_real":{"type":"boolean","title":"Production Real"},"browser_safe":{"type":"boolean","title":"Browser Safe"},"requires_tenant_key":{"type":"boolean","title":"Requires Tenant Key","default":false},"requires_server_side_proxy":{"type":"boolean","title":"Requires Server Side Proxy","default":false},"implementation_surface":{"type":"string","enum":["static_website","website_form","api_signup","tenant_console","protected_api"],"title":"Implementation Surface"},"source_of_truth_href":{"type":"string","title":"Source Of Truth Href"},"ready_when":{"items":{"type":"string"},"type":"array","title":"Ready When"},"blocked_until":{"items":{"type":"string"},"type":"array","title":"Blocked Until"},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["cta_key","label","href","kind","phase","recommended_now","production_real","browser_safe","implementation_surface","source_of_truth_href","ready_when","blocked_until","boundary"],"title":"HostedWebsiteCtaInventoryItem"},"HostedWebsiteCtaInventoryResponse":{"properties":{"object":{"type":"string","const":"hosted_website_cta_inventory","title":"Object","default":"hosted_website_cta_inventory"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_website_cta_inventory/1"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"cta_bridge_plan_href":{"type":"string","title":"Cta Bridge Plan Href","default":"/deployment/cta-bridge-plan"},"proxy_plan_href":{"type":"string","title":"Proxy Plan Href","default":"/deployment/proxy-plan"},"signup_plan_href":{"type":"string","title":"Signup Plan Href","default":"/deployment/signup-plan"},"tenant_console_plan_href":{"type":"string","title":"Tenant Console Plan Href","default":"/deployment/tenant-console-plan"},"website_demo_export_href":{"type":"string","title":"Website Demo Export Href","default":"/website-demo-export"},"public_docs_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Docs Base Url"},"current_safe_primary_href":{"type":"string","title":"Current Safe Primary Href","default":"https://api.planisphere.ooo/console"},"current_safe_primary_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Safe Primary Url"},"current_safe_secondary_hrefs":{"items":{"type":"string"},"type":"array","title":"Current Safe Secondary Hrefs"},"current_safe_secondary_urls":{"items":{"type":"string"},"type":"array","title":"Current Safe Secondary Urls"},"public_readiness_routes":{"items":{"type":"string"},"type":"array","title":"Public Readiness Routes"},"items":{"items":{"$ref":"#/components/schemas/HostedWebsiteCtaInventoryItem"},"type":"array","title":"Items"},"safe_public_cta_targets":{"items":{"$ref":"#/components/schemas/HostedApiCtaTarget"},"type":"array","title":"Safe Public Cta Targets"},"blocked_public_cta_destinations":{"items":{"type":"string"},"type":"array","title":"Blocked Public Cta Destinations"},"copy_only_cta_change_allowed":{"type":"boolean","title":"Copy Only Cta Change Allowed","default":true},"request_access_funnel_ready":{"type":"boolean","title":"Request Access Funnel Ready","default":false},"self_serve_signup_cta_allowed":{"type":"boolean","title":"Self Serve Signup Cta Allowed"},"tenant_console_cta_allowed":{"type":"boolean","title":"Tenant Console Cta Allowed"},"protected_action_browser_cta_allowed":{"type":"boolean","title":"Protected Action Browser Cta Allowed","default":false},"production_api_customer_funnel_ready":{"type":"boolean","title":"Production Api Customer Funnel Ready"},"website_csp_connect_src":{"items":{"type":"string"},"type":"array","title":"Website Csp Connect Src"},"website_rewrite_required":{"type":"boolean","title":"Website Rewrite Required"},"website_static_form_still_valid":{"type":"boolean","title":"Website Static Form Still Valid","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"browser_direct_proposed_action_allowed":{"type":"boolean","title":"Browser Direct Proposed Action Allowed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted website CTA inventory maps public website buttons to safe destinations and production gates only. API-key onboarding uses the hosted signup page; website forms remain human scoping surfaces. It does not expose tenant API keys, return raw secrets, call protected decision routes from the browser, configure website rewrites, prove live checkout readiness, or replace generated API/demo exports as the source of truth."}},"type":"object","required":["current_safe_secondary_hrefs","current_safe_secondary_urls","public_readiness_routes","items","safe_public_cta_targets","blocked_public_cta_destinations","self_serve_signup_cta_allowed","tenant_console_cta_allowed","production_api_customer_funnel_ready","website_csp_connect_src","website_rewrite_required"],"title":"HostedWebsiteCtaInventoryResponse"},"HostedWorkerCommand":{"properties":{"name":{"type":"string","title":"Name"},"mode":{"type":"string","enum":["hosted_scheduler","managed_worker","container_cron","operator_cli"],"title":"Mode"},"command":{"items":{"type":"string"},"type":"array","title":"Command"},"schedule":{"type":"string","title":"Schedule"},"live_external_send":{"type":"boolean","title":"Live External Send","default":false},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"boundary":{"type":"string","title":"Boundary"}},"type":"object","required":["name","mode","command","schedule","boundary"],"title":"HostedWorkerCommand"},"HostedWorkerDeploymentPlanResponse":{"properties":{"object":{"type":"string","const":"hosted_worker_deployment_plan","title":"Object","default":"hosted_worker_deployment_plan"},"contract":{"type":"string","title":"Contract","default":"planisphere.hosted_worker_deployment_plan/1"},"configured_mode":{"type":"string","title":"Configured Mode"},"configured_mode_ready":{"type":"boolean","title":"Configured Mode Ready"},"recommended_mode":{"type":"string","const":"hosted_scheduler","title":"Recommended Mode","default":"hosted_scheduler"},"deployment_readiness_href":{"type":"string","title":"Deployment Readiness Href","default":"/deployment/readiness"},"scheduler_tick_route":{"type":"string","title":"Scheduler Tick Route","default":"/routing/outbox/tick"},"scheduler_runs_route":{"type":"string","title":"Scheduler Runs Route","default":"/routing/outbox/runs"},"operator_commands":{"items":{"$ref":"#/components/schemas/HostedWorkerCommand"},"type":"array","title":"Operator Commands"},"required_environment":{"items":{"type":"string"},"type":"array","title":"Required Environment"},"optional_environment":{"items":{"type":"string"},"type":"array","title":"Optional Environment"},"production_readiness_check":{"type":"string","title":"Production Readiness Check","default":"hosted_worker_scheduler"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_returned":{"type":"boolean","title":"Raw Api Key Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"external_delivery_attempted_by_default":{"type":"boolean","title":"External Delivery Attempted By Default","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted worker deployment plan exposes command shapes, required environment names, and safe scheduler boundaries only. It does not return secret values, tenant API keys, raw route payloads, prompt or document content, run provider sends by default, or prove that a worker is deployed in external infrastructure."}},"type":"object","required":["configured_mode","configured_mode_ready","operator_commands","required_environment","optional_environment"],"title":"HostedWorkerDeploymentPlanResponse"},"IntegrationRecipesResponse":{"properties":{"recipes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Recipes"}},"type":"object","required":["recipes"],"title":"IntegrationRecipesResponse"},"LawContext":{"properties":{"matter_band":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matter Band","examples":["litigation"]},"tool_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Id","examples":["harvey"]},"doctrine_anchor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doctrine Anchor","examples":["fre-707"]},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction","examples":["federal"]},"practice_area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practice Area","examples":["corporate-litigation"]}},"type":"object","title":"LawContext"},"LawGradingMirrorResponse":{"properties":{"object":{"type":"string","const":"law_grading_mirror","title":"Object","default":"law_grading_mirror"},"mirror_contract":{"type":"string","title":"Mirror Contract"},"mirror_version":{"type":"string","title":"Mirror Version"},"canonical_digest":{"type":"string","title":"Canonical Digest"},"digest_algorithm":{"type":"string","const":"sha256","title":"Digest Algorithm","default":"sha256"},"grade_values":{"items":{"type":"string","enum":["PASS","PARTIAL","FAIL","NA"]},"type":"array","title":"Grade Values"},"categories":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Categories"},"probe_battery":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Probe Battery"},"probe_vector":{"items":{"type":"string","enum":["PASS","PARTIAL","FAIL","NA"]},"type":"array","title":"Probe Vector"},"raw_content_required":{"type":"boolean","title":"Raw Content Required","default":false},"private_engine_required":{"type":"boolean","title":"Private Engine Required","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The law grading mirror is a pinned public review-rubric fingerprint. It verifies that a client-side rubric copy has not drifted before Planisphere binds categorical reviewer grades to a receipt. It does not grade raw legal text, determine legality, or replace counsel."}},"type":"object","required":["mirror_contract","mirror_version","canonical_digest","grade_values","categories","probe_battery","probe_vector"],"title":"LawGradingMirrorResponse"},"LawMirrorSeal":{"properties":{"seal_contract":{"type":"string","title":"Seal Contract","default":"planisphere.law_mirror_seal"},"algorithm":{"type":"string","const":"ed25519","title":"Algorithm","default":"ed25519"},"key_id":{"type":"string","title":"Key Id"},"action_key":{"type":"string","title":"Action Key"},"mirror_version":{"type":"string","title":"Mirror Version"},"mirror_digest":{"type":"string","title":"Mirror Digest"},"grades_hash":{"type":"string","title":"Grades Hash"},"grade_categories":{"items":{"type":"string"},"type":"array","title":"Grade Categories"},"evidence_attestation_root":{"type":"string","title":"Evidence Attestation Root"},"evidence_stamp_id":{"type":"string","title":"Evidence Stamp Id"},"mirror_attestation_root":{"type":"string","title":"Mirror Attestation Root"},"stamp_id":{"type":"string","title":"Stamp Id"},"signature":{"type":"string","title":"Signature"},"public_key":{"type":"string","title":"Public Key"},"dev_key":{"type":"boolean","title":"Dev Key","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"mirror_grades_stored":{"type":"boolean","title":"Mirror Grades Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The mirror seal signs the canonical law mirror digest and a hash of client-supplied categorical grades, bound to the evidence packet root. It does not store raw legal text or certify legal compliance."}},"type":"object","required":["key_id","action_key","mirror_version","mirror_digest","grades_hash","grade_categories","evidence_attestation_root","evidence_stamp_id","mirror_attestation_root","stamp_id","signature","public_key"],"title":"LawMirrorSeal"},"LawMirrorSealVerificationRequest":{"properties":{"seal":{"$ref":"#/components/schemas/LawMirrorSeal"}},"type":"object","required":["seal"],"title":"LawMirrorSealVerificationRequest"},"LawMirrorSealVerificationResponse":{"properties":{"verified":{"type":"boolean","title":"Verified"},"signature_valid":{"type":"boolean","title":"Signature Valid"},"mirror_digest_matches_canonical":{"type":"boolean","title":"Mirror Digest Matches Canonical"},"key_id_matches_public_key":{"type":"boolean","title":"Key Id Matches Public Key"},"mirror_attestation_root_recomputed":{"type":"boolean","title":"Mirror Attestation Root Recomputed"},"stamp_id_recomputed":{"type":"boolean","title":"Stamp Id Recomputed"},"seal_contract_valid":{"type":"boolean","title":"Seal Contract Valid"},"grade_categories_sorted":{"type":"boolean","title":"Grade Categories Sorted"},"raw_content_not_stored":{"type":"boolean","title":"Raw Content Not Stored"},"mirror_grades_not_stored":{"type":"boolean","title":"Mirror Grades Not Stored"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"mirror_grades_stored":{"type":"boolean","title":"Mirror Grades Stored","default":false},"key_id":{"type":"string","title":"Key Id"},"key_id_expected":{"type":"string","title":"Key Id Expected"},"stamp_id":{"type":"string","title":"Stamp Id"},"stamp_id_expected":{"type":"string","title":"Stamp Id Expected"},"mirror_digest":{"type":"string","title":"Mirror Digest"},"canonical_digest":{"type":"string","title":"Canonical Digest"},"grades_hash":{"type":"string","title":"Grades Hash"},"grade_categories":{"items":{"type":"string"},"type":"array","title":"Grade Categories"},"mirror_attestation_root":{"type":"string","title":"Mirror Attestation Root"},"mirror_attestation_root_expected":{"type":"string","title":"Mirror Attestation Root Expected"},"evidence_attestation_root":{"type":"string","title":"Evidence Attestation Root"},"evidence_stamp_id":{"type":"string","title":"Evidence Stamp Id"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Mirror seal verification checks Planisphere law mirror attestation metadata only. It does not grade legal text, determine legality, or certify compliance."}},"type":"object","required":["verified","signature_valid","mirror_digest_matches_canonical","key_id_matches_public_key","mirror_attestation_root_recomputed","stamp_id_recomputed","seal_contract_valid","grade_categories_sorted","raw_content_not_stored","mirror_grades_not_stored","key_id","key_id_expected","stamp_id","stamp_id_expected","mirror_digest","canonical_digest","grades_hash","grade_categories","mirror_attestation_root","mirror_attestation_root_expected","evidence_attestation_root","evidence_stamp_id"],"title":"LawMirrorSealVerificationResponse"},"LivenessResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"service":{"type":"string","title":"Service","default":"planisphere-api"},"checks":{"additionalProperties":{"type":"string"},"type":"object","title":"Checks"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Liveness reports only that the API process can serve requests. It does not check database connectivity, schema migration state, tenant setup, signer custody, or production readiness."}},"type":"object","title":"LivenessResponse"},"OrganizationItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active"},"role":{"type":"string","title":"Role"}},"type":"object","required":["id","name","active","role"],"title":"OrganizationItem","description":"An organization (tenant) the signed-in person belongs to. Phase 1: the\none active tenant; the multi-org phase returns the person's memberships."},"PackRegistryResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"source":{"additionalProperties":true,"type":"object","title":"Source"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"},"packs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Packs"},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["schema","source","summary","packs","claim_boundary"],"title":"PackRegistryResponse"},"PlanisphereVerifyingKey":{"properties":{"key_id":{"type":"string","title":"Key Id"},"public_key_hex":{"type":"string","title":"Public Key Hex"},"public_key_b64_raw32":{"type":"string","title":"Public Key B64 Raw32"},"algorithm":{"type":"string","const":"ed25519","title":"Algorithm","default":"ed25519"},"status":{"type":"string","enum":["production","production_retired","sandbox"],"title":"Status"},"origin":{"type":"string","title":"Origin"},"not_before":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Not Before","description":"RFC 3339 instant this key began signing, where recorded."},"not_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Not After","description":"RFC 3339 instant this key stopped signing. None while the key is in active service."},"superseded_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By","description":"key_id of the key that replaced this one, once rotated."},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning","description":"Set on the sandbox dev key: receipts sealed with it are non-production evidence, never presentable as production records. Also set on retired production keys, where it states that retirement does not invalidate receipts sealed in-window."}},"type":"object","required":["key_id","public_key_hex","public_key_b64_raw32","status","origin"],"title":"PlanisphereVerifyingKey"},"PlanisphereVerifyingKeysResponse":{"properties":{"object":{"type":"string","const":"planisphere_verifying_keys","title":"Object","default":"planisphere_verifying_keys"},"keys":{"items":{"$ref":"#/components/schemas/PlanisphereVerifyingKey"},"type":"array","title":"Keys"},"note":{"type":"string","title":"Note"},"private_key_material_returned":{"type":"boolean","title":"Private Key Material Returned","default":false}},"type":"object","required":["keys","note"],"title":"PlanisphereVerifyingKeysResponse"},"ProductMapResponse":{"properties":{"product":{"type":"string","title":"Product"},"definition":{"type":"string","title":"Definition"},"operating_order":{"items":{"type":"string"},"type":"array","title":"Operating Order"},"control_plane_objects":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Control Plane Objects"},"claim_boundary":{"additionalProperties":true,"type":"object","title":"Claim Boundary"}},"type":"object","required":["product","definition","operating_order","control_plane_objects","claim_boundary"],"title":"ProductMapResponse"},"ProposedActionRequest":{"properties":{"tenant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant","description":"Optional tenant id assertion."},"surface":{"type":"string","title":"Surface","default":"generic","examples":["slack","browser","generic"]},"source_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"},"source_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source Payload"},"proposed_action":{"type":"string","title":"Proposed Action","description":"The action an AI system or workflow is about to take.","examples":["File an AI-drafted motion after citation review."]},"law_context":{"$ref":"#/components/schemas/LawContext"},"redacted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redacted Text","description":"Optional transient text for policy checks. Raw text is not persisted."},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["proposed_action"],"title":"ProposedActionRequest"},"ProposedActionResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"vertical":{"type":"string","title":"Vertical","default":"law"},"policy_pack":{"type":"string","title":"Policy Pack"},"pack_contract":{"additionalProperties":true,"type":"object","title":"Pack Contract"},"action_contract":{"additionalProperties":true,"type":"object","title":"Action Contract"},"surface":{"type":"string","title":"Surface"},"workflow_stage":{"type":"string","enum":["pre_execution","review","recorded"],"title":"Workflow Stage","default":"pre_execution"},"decision":{"type":"string","enum":["allow","needs_review","block"],"title":"Decision"},"action_key":{"type":"string","title":"Action Key"},"source_key":{"type":"string","title":"Source Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"action_type":{"type":"string","title":"Action Type"},"doctrine_anchors":{"items":{"type":"string"},"type":"array","title":"Doctrine Anchors"},"privacy_flags":{"items":{"type":"string"},"type":"array","title":"Privacy Flags"},"missing_fields":{"items":{"type":"string"},"type":"array","title":"Missing Fields"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"reason":{"type":"string","title":"Reason"},"next_step":{"type":"string","title":"Next Step"},"available_review_decisions":{"items":{"type":"string","enum":["approved","rejected","escalated"]},"type":"array","title":"Available Review Decisions"},"receipt_schema":{"items":{"type":"string"},"type":"array","title":"Receipt Schema"},"corpus_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Corpus Refs"},"catalog_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Catalog Refs"},"claim_status":{"additionalProperties":true,"type":"object","title":"Claim Status"},"evidence_detail":{"additionalProperties":true,"type":"object","title":"Evidence Detail"},"evidence_packet":{"$ref":"#/components/schemas/EvidencePacketStub"},"verify_request":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verify Request","description":"Ready-to-POST body for POST /v1/verify (alias: /evidence-packets/verify-seal) proving THIS gate receipt's seal: decision is the gate decision, review_route is the gate's route. Raw-safe: hashes and seal fields only. The same fields POST to /evidence-packets/seal-bundle for the offline 4-file bundle."},"route_dispatch":{"anyOf":[{"$ref":"#/components/schemas/RouteDispatchStub"},{"type":"null"}]}},"type":"object","required":["tenant","policy_pack","surface","decision","action_key","source_key","payload_hash","action_type","doctrine_anchors","privacy_flags","missing_fields","review_route","reason","next_step","available_review_decisions","receipt_schema","evidence_packet"],"title":"ProposedActionResponse"},"ProviderCallbackResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"action_key":{"type":"string","title":"Action Key"},"decision":{"type":"string","enum":["approved","rejected","escalated"],"title":"Decision"},"reviewer":{"type":"string","title":"Reviewer"},"receipt_key":{"type":"string","title":"Receipt Key"},"evidence_packet":{"$ref":"#/components/schemas/EvidencePacketStub"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"external_reference":{"additionalProperties":true,"type":"object","title":"External Reference"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"idempotency_status":{"type":"string","enum":["recorded","idempotent_replay"],"title":"Idempotency Status","default":"recorded"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"mirror_seal":{"anyOf":[{"$ref":"#/components/schemas/LawMirrorSeal"},{"type":"null"}]}},"type":"object","required":["tenant","channel","target","action_key","decision","reviewer","receipt_key","evidence_packet"],"title":"ProviderCallbackResponse"},"ReviewDecisionRequest":{"properties":{"action_key":{"type":"string","title":"Action Key"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer","description":"Who decided. IGNORED for a signed-in person — the server names them from the session, because a receipt must not take the caller's word for who was acting. Required for an API key, which authenticates a caller and names no human; that value is recorded with reviewer_basis='caller_asserted' so the receipt says plainly it is the operator's own claim. Placeholder strings are refused.","examples":["partner-or-gc"]},"decision":{"type":"string","enum":["approved","rejected","escalated"],"title":"Decision"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Optional reviewer note accepted at the API edge. Planisphere stores only reason_present and reason_hash; do not send raw client, prompt, document, or privileged content."},"mirror_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mirror Version","description":"Optional law-grading mirror version. Supply with mirror_digest and mirror_grades to bind client-side categorical review grades to the receipt."},"mirror_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mirror Digest","description":"Optional digest from GET /law/grading-mirror."},"mirror_grades":{"anyOf":[{"additionalProperties":{"type":"string","enum":["PASS","PARTIAL","FAIL","NA"]},"type":"object"},{"type":"null"}],"title":"Mirror Grades","description":"Optional categorical review grades produced client-side. Raw legal text is not accepted or stored here."}},"type":"object","required":["action_key","decision"],"title":"ReviewDecisionRequest"},"ReviewDecisionResponse":{"properties":{"receipt_key":{"type":"string","title":"Receipt Key"},"action_key":{"type":"string","title":"Action Key"},"tenant":{"type":"string","title":"Tenant"},"decision":{"type":"string","enum":["approved","rejected","escalated"],"title":"Decision"},"reviewer":{"type":"string","title":"Reviewer"},"evidence_packet":{"$ref":"#/components/schemas/EvidencePacketStub"},"verify_request":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verify Request","description":"Ready-to-POST body for POST /v1/verify (alias: /evidence-packets/verify-seal) proving THIS review receipt's seal: decision is the REVIEW decision and review_route is the original gate's route (the packet in this response, not the gate-time packet). Raw-safe: hashes and seal fields only."},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"mirror_seal":{"anyOf":[{"$ref":"#/components/schemas/LawMirrorSeal"},{"type":"null"}]}},"type":"object","required":["receipt_key","action_key","tenant","decision","reviewer","evidence_packet"],"title":"ReviewDecisionResponse"},"ReviewQueueItem":{"properties":{"action_key":{"type":"string","title":"Action Key"},"source_key":{"type":"string","title":"Source Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"decision":{"type":"string","title":"Decision"},"action_type":{"type":"string","title":"Action Type"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"next_step":{"type":"string","title":"Next Step"},"evidence_packet_href":{"type":"string","title":"Evidence Packet Href"},"route_dispatch":{"anyOf":[{"$ref":"#/components/schemas/RouteDispatchStub"},{"type":"null"}]},"handled":{"type":"boolean","title":"Handled","description":"True once a terminal review decision (approved or rejected) is recorded; handled items leave the default queue view.","default":false},"resolution":{"type":"string","enum":["unreviewed","escalated","approved","rejected"],"title":"Resolution","default":"unreviewed"},"resolution_receipt":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resolution Receipt","description":"Latest review receipt summary (receipt_key, reviewer, decision, created_at) when any review decision has been recorded."}},"type":"object","required":["action_key","source_key","payload_hash","decision","action_type","review_route","created_at","next_step","evidence_packet_href"],"title":"ReviewQueueItem"},"ReviewQueueResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"items":{"items":{"$ref":"#/components/schemas/ReviewQueueItem"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count"},"total_count":{"type":"integer","title":"Total Count","description":"Items matching the status filter before pagination.","default":0},"limit":{"type":"integer","title":"Limit","default":50},"offset":{"type":"integer","title":"Offset","default":0},"status_filter":{"type":"string","enum":["pending","handled","all"],"title":"Status Filter","default":"pending"}},"type":"object","required":["tenant","items","count"],"title":"ReviewQueueResponse"},"RouteDeliveryResponse":{"properties":{"dispatch":{"$ref":"#/components/schemas/RouteDispatchItem"},"status":{"type":"string","enum":["prepared","sent","failed"],"title":"Status"},"message":{"type":"string","title":"Message"},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted"},"delivery":{"additionalProperties":true,"type":"object","title":"Delivery"}},"type":"object","required":["dispatch","status","message","external_delivery_attempted","delivery"],"title":"RouteDeliveryResponse"},"RouteDispatchItem":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"href":{"type":"string","title":"Href"},"action_key":{"type":"string","title":"Action Key"},"tenant":{"type":"string","title":"Tenant"},"decision":{"type":"string","title":"Decision"},"action_type":{"type":"string","title":"Action Type"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"status":{"type":"string","enum":["pending","prepared","sent","failed","resolved","dead_letter"],"title":"Status"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"delivery":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Delivery"},"attempt_count":{"type":"integer","title":"Attempt Count"},"last_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Attempt At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"evidence_packet_href":{"type":"string","title":"Evidence Packet Href"}},"type":"object","required":["dispatch_key","href","action_key","tenant","decision","action_type","review_route","channel","target","status","payload","delivery","attempt_count","last_attempt_at","last_error","created_at","updated_at","evidence_packet_href"],"title":"RouteDispatchItem"},"RouteDispatchStub":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"href":{"type":"string","title":"Href"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"status":{"type":"string","enum":["pending","prepared","sent","failed","resolved"],"title":"Status","default":"pending"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"}},"type":"object","required":["dispatch_key","href","channel","target"],"title":"RouteDispatchStub"},"RouteOutboxAlertItem":{"properties":{"severity":{"type":"string","enum":["info","warning","critical"],"title":"Severity"},"kind":{"type":"string","title":"Kind"},"count":{"type":"integer","title":"Count"},"message":{"type":"string","title":"Message"},"next_step":{"type":"string","title":"Next Step"},"href":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Href"}},"type":"object","required":["severity","kind","count","message","next_step"],"title":"RouteOutboxAlertItem"},"RouteOutboxAlertsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"highest_severity":{"type":"string","enum":["clear","info","warning","critical"],"title":"Highest Severity"},"alert_count":{"type":"integer","title":"Alert Count"},"summary":{"$ref":"#/components/schemas/RouteOutboxSummaryResponse"},"alerts":{"items":{"$ref":"#/components/schemas/RouteOutboxAlertItem"},"type":"array","title":"Alerts"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Outbox alerts are derived from route status metadata only. They are not legal advice, production notifications, or proof that external delivery has occurred."}},"type":"object","required":["tenant","highest_severity","alert_count","summary","alerts"],"title":"RouteOutboxAlertsResponse"},"RouteOutboxBackoffItem":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"action_key":{"type":"string","title":"Action Key"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"status":{"type":"string","title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"next_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Attempt At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"last_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Attempt At"}},"type":"object","required":["dispatch_key","action_key","channel","target","status","attempt_count","retry_delay_seconds"],"title":"RouteOutboxBackoffItem"},"RouteOutboxDeadLetterItem":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"action_key":{"type":"string","title":"Action Key"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"status":{"type":"string","title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"last_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Attempt At"}},"type":"object","required":["dispatch_key","action_key","channel","target","status","attempt_count"],"title":"RouteOutboxDeadLetterItem"},"RouteOutboxDeadLetterRequest":{"properties":{"reason_code":{"type":"string","enum":["retry_ceiling","route_unavailable","integration_unavailable","operator_quarantine"],"title":"Reason Code","default":"retry_ceiling"},"operator":{"anyOf":[{"type":"string","maxLength":180},{"type":"null"}],"title":"Operator","description":"Optional operator identifier. Do not send raw secrets or incident notes."}},"type":"object","title":"RouteOutboxDeadLetterRequest"},"RouteOutboxDeadLetterResponse":{"properties":{"dispatch":{"$ref":"#/components/schemas/RouteDispatchItem"},"reason_code":{"type":"string","title":"Reason Code"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"message":{"type":"string","title":"Message","default":"Dispatch moved to the dead-letter queue."},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Dead-letter quarantine stores route status metadata and a reason code. It does not retry delivery, send external notifications, or store raw prompt/document content."}},"type":"object","required":["dispatch","reason_code"],"title":"RouteOutboxDeadLetterResponse"},"RouteOutboxExternalNotReadyItem":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"action_key":{"type":"string","title":"Action Key"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"status":{"type":"string","title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count"},"readiness_status":{"type":"string","title":"Readiness Status"},"ready_for_operator_send":{"type":"boolean","title":"Ready For Operator Send"},"missing_config_keys":{"items":{"type":"string"},"type":"array","title":"Missing Config Keys"},"missing_config_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Missing Config One Of"},"missing_secret_ref":{"type":"boolean","title":"Missing Secret Ref","default":false},"secret_provider":{"type":"string","title":"Secret Provider","default":"none"},"secret_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Error"},"secret_lookup":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Lookup"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"last_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Attempt At"}},"type":"object","required":["dispatch_key","action_key","channel","target","status","attempt_count","readiness_status","ready_for_operator_send"],"title":"RouteOutboxExternalNotReadyItem"},"RouteOutboxNotificationResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"notification_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Channel"},"notification_ready":{"type":"boolean","title":"Notification Ready"},"emitted":{"type":"boolean","title":"Emitted","default":false},"highest_severity":{"type":"string","enum":["clear","info","warning","critical"],"title":"Highest Severity"},"alert_count":{"type":"integer","title":"Alert Count"},"summary":{"$ref":"#/components/schemas/RouteOutboxSummaryResponse"},"alerts":{"items":{"$ref":"#/components/schemas/RouteOutboxAlertItem"},"type":"array","title":"Alerts"},"event":{"additionalProperties":true,"type":"object","title":"Event"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Production notification events are derived from route status metadata only. The implemented channel emits raw-safe JSON to the operator log stream for production infrastructure to collect. It does not send provider traffic, expose raw route payload bodies, log raw API keys, log secrets, or prove external delivery."}},"type":"object","required":["tenant","notification_ready","highest_severity","alert_count","summary","alerts","event"],"title":"RouteOutboxNotificationResponse"},"RouteOutboxProcessItem":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"action_key":{"type":"string","title":"Action Key"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"before_status":{"type":"string","title":"Before Status"},"after_status":{"type":"string","title":"After Status"},"message":{"type":"string","title":"Message"},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted"},"delivery_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Kind"},"attempt_count":{"type":"integer","title":"Attempt Count"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"dead_letter_candidate":{"type":"boolean","title":"Dead Letter Candidate","default":false}},"type":"object","required":["dispatch_key","action_key","channel","target","before_status","after_status","message","external_delivery_attempted","attempt_count"],"title":"RouteOutboxProcessItem"},"RouteOutboxProcessRequest":{"properties":{"statuses":{"items":{"type":"string","enum":["pending","failed"]},"type":"array","title":"Statuses","description":"Dispatch statuses to process through the safe hosted worker path."},"limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","default":100},"max_attempts":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Max Attempts","description":"Failed dispatches at or above this attempt count are skipped as dead-letter candidates.","default":3},"respect_backoff":{"type":"boolean","title":"Respect Backoff","description":"When true, failed dispatches inside the retry backoff window are skipped.","default":true},"base_backoff_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Base Backoff Seconds","description":"Base exponential backoff in seconds for failed dispatch retry planning.","default":300}},"type":"object","title":"RouteOutboxProcessRequest"},"RouteOutboxProcessResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"requested_statuses":{"items":{"type":"string"},"type":"array","title":"Requested Statuses"},"send_external":{"type":"boolean","title":"Send External","default":false},"max_attempts":{"type":"integer","title":"Max Attempts","default":3},"respect_backoff":{"type":"boolean","title":"Respect Backoff","default":true},"base_backoff_seconds":{"type":"integer","title":"Base Backoff Seconds","default":300},"processed_count":{"type":"integer","title":"Processed Count"},"skipped_count":{"type":"integer","title":"Skipped Count"},"dead_letter_candidate_count":{"type":"integer","title":"Dead Letter Candidate Count"},"dead_letter_candidates":{"items":{"$ref":"#/components/schemas/RouteOutboxDeadLetterItem"},"type":"array","title":"Dead Letter Candidates"},"backoff_waiting_count":{"type":"integer","title":"Backoff Waiting Count"},"backoff_waiting":{"items":{"$ref":"#/components/schemas/RouteOutboxBackoffItem"},"type":"array","title":"Backoff Waiting"},"external_not_ready_count":{"type":"integer","title":"External Not Ready Count","default":0},"external_not_ready":{"items":{"$ref":"#/components/schemas/RouteOutboxExternalNotReadyItem"},"type":"array","title":"External Not Ready"},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted"},"items":{"items":{"$ref":"#/components/schemas/RouteOutboxProcessItem"},"type":"array","title":"Items"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted outbox processing prepares or records delivery work without attempting external Slack, ServiceNow, or webhook sends. Live external delivery remains operator-only via process-outbox --send-external. Failed dispatches still inside the retry backoff window are skipped by default. External live sends with incomplete or unresolved tenant integrations are skipped before delivery attempts are recorded."}},"type":"object","required":["tenant_id","requested_statuses","processed_count","skipped_count","dead_letter_candidate_count","dead_letter_candidates","backoff_waiting_count","backoff_waiting","external_delivery_attempted","items"],"title":"RouteOutboxProcessResponse"},"RouteOutboxRequeueRequest":{"properties":{"reason_code":{"type":"string","enum":["route_fixed","integration_fixed","operator_retry"],"title":"Reason Code","default":"operator_retry"},"operator":{"anyOf":[{"type":"string","maxLength":180},{"type":"null"}],"title":"Operator","description":"Optional operator identifier. Do not send raw secrets or incident notes."}},"type":"object","title":"RouteOutboxRequeueRequest"},"RouteOutboxRequeueResponse":{"properties":{"dispatch":{"$ref":"#/components/schemas/RouteDispatchItem"},"reason_code":{"type":"string","title":"Reason Code"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"message":{"type":"string","title":"Message","default":"Dead-lettered dispatch requeued for safe processing."},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Requeue changes route status back to pending and preserves attempt history. It does not retry delivery immediately, send external notifications, or store raw prompt/document content."}},"type":"object","required":["dispatch","reason_code"],"title":"RouteOutboxRequeueResponse"},"RouteOutboxResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"items":{"items":{"$ref":"#/components/schemas/RouteDispatchItem"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["tenant","items","count"],"title":"RouteOutboxResponse"},"RouteOutboxRetryPlanItem":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"action_key":{"type":"string","title":"Action Key"},"status":{"type":"string","title":"Status"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"attempt_count":{"type":"integer","title":"Attempt Count"},"state":{"type":"string","enum":["ready","waiting_backoff","dead_letter_candidate","quarantined","external_prepared","complete","not_retryable"],"title":"State"},"next_action":{"type":"string","title":"Next Action"},"href":{"type":"string","title":"Href"},"retry_delay_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Retry Delay Seconds"},"next_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Attempt At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["dispatch_key","action_key","status","channel","target","attempt_count","state","next_action","href"],"title":"RouteOutboxRetryPlanItem"},"RouteOutboxRetryPlanResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"count":{"type":"integer","title":"Count"},"base_backoff_seconds":{"type":"integer","title":"Base Backoff Seconds","default":300},"max_attempts":{"type":"integer","title":"Max Attempts","default":3},"ready_count":{"type":"integer","title":"Ready Count"},"waiting_backoff_count":{"type":"integer","title":"Waiting Backoff Count"},"dead_letter_candidate_count":{"type":"integer","title":"Dead Letter Candidate Count"},"quarantined_count":{"type":"integer","title":"Quarantined Count"},"external_prepared_count":{"type":"integer","title":"External Prepared Count"},"items":{"items":{"$ref":"#/components/schemas/RouteOutboxRetryPlanItem"},"type":"array","title":"Items"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Retry plan is a read-only schedule over route metadata. It does not retry delivery, send external notifications, or store raw prompt/document content."}},"type":"object","required":["tenant","count","ready_count","waiting_backoff_count","dead_letter_candidate_count","quarantined_count","external_prepared_count","items"],"title":"RouteOutboxRetryPlanResponse"},"RouteOutboxSchedulerRun":{"properties":{"run_id":{"type":"string","title":"Run Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"trigger":{"type":"string","title":"Trigger"},"status":{"type":"string","enum":["completed_clear","completed_attention"],"title":"Status"},"send_external":{"type":"boolean","title":"Send External"},"respect_backoff":{"type":"boolean","title":"Respect Backoff"},"base_backoff_seconds":{"type":"integer","title":"Base Backoff Seconds"},"max_attempts":{"type":"integer","title":"Max Attempts"},"processed_count":{"type":"integer","title":"Processed Count"},"skipped_count":{"type":"integer","title":"Skipped Count"},"dead_letter_candidate_count":{"type":"integer","title":"Dead Letter Candidate Count"},"backoff_waiting_count":{"type":"integer","title":"Backoff Waiting Count"},"external_not_ready_count":{"type":"integer","title":"External Not Ready Count","default":0},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted"},"result":{"additionalProperties":true,"type":"object","title":"Result"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finished At"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false}},"type":"object","required":["run_id","tenant_id","trigger","status","send_external","respect_backoff","base_backoff_seconds","max_attempts","processed_count","skipped_count","dead_letter_candidate_count","backoff_waiting_count","external_delivery_attempted","result","started_at","finished_at"],"title":"RouteOutboxSchedulerRun"},"RouteOutboxSchedulerRunsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"count":{"type":"integer","title":"Count"},"items":{"items":{"$ref":"#/components/schemas/RouteOutboxSchedulerRun"},"type":"array","title":"Items"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Scheduler run history stores compact route-processing metadata only. It does not include raw prompts, route payload bodies, raw secrets, or raw API keys."}},"type":"object","required":["tenant","count","items"],"title":"RouteOutboxSchedulerRunsResponse"},"RouteOutboxSimulateCallbackRequest":{"properties":{"decision":{"type":"string","enum":["approved","rejected","escalated"],"title":"Decision","default":"approved"},"reviewer":{"type":"string","maxLength":180,"title":"Reviewer","description":"Fixture reviewer label. Do not send raw names or incident notes.","default":"console-fixture"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason","description":"Fixture review reason. Do not include raw prompt or document content.","default":"Console fixture completed a signed provider callback walkthrough."},"external_reference":{"additionalProperties":true,"type":"object","title":"External Reference"},"mirror_grades":{"anyOf":[{"additionalProperties":{"type":"string","enum":["PASS","PARTIAL","FAIL","NA"]},"type":"object"},{"type":"null"}],"title":"Mirror Grades","description":"Optional categorical law mirror grades for the fixture. Raw legal text is not accepted or stored."}},"type":"object","title":"RouteOutboxSimulateCallbackRequest"},"RouteOutboxSimulateCallbackResponse":{"properties":{"dispatch":{"$ref":"#/components/schemas/RouteDispatchItem"},"review":{"$ref":"#/components/schemas/ReviewDecisionResponse"},"simulated_callback":{"additionalProperties":true,"type":"object","title":"Simulated Callback"},"mirror_seal_verification":{"anyOf":[{"$ref":"#/components/schemas/LawMirrorSealVerificationResponse"},{"type":"null"}]},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"live_external_send_attempted":{"type":"boolean","title":"Live External Send Attempted","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Callback simulation is a local control-plane fixture. It records the same review/seal metadata shape a signed provider callback returns, but it does not send provider traffic, prove provider-side delivery, or certify legal compliance."}},"type":"object","required":["dispatch","review","simulated_callback"],"title":"RouteOutboxSimulateCallbackResponse"},"RouteOutboxSummaryResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"count":{"type":"integer","title":"Count"},"counts_by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"Counts By Status"},"pending_count":{"type":"integer","title":"Pending Count"},"failed_count":{"type":"integer","title":"Failed Count"},"prepared_count":{"type":"integer","title":"Prepared Count"},"sent_count":{"type":"integer","title":"Sent Count"},"resolved_count":{"type":"integer","title":"Resolved Count"},"dead_letter_count":{"type":"integer","title":"Dead Letter Count"},"retryable_count":{"type":"integer","title":"Retryable Count"},"retryable_failed_count":{"type":"integer","title":"Retryable Failed Count"},"needs_attention_count":{"type":"integer","title":"Needs Attention Count"},"dead_letter_candidate_count":{"type":"integer","title":"Dead Letter Candidate Count"},"external_prepared_count":{"type":"integer","title":"External Prepared Count"},"max_attempts":{"type":"integer","title":"Max Attempts","default":3},"oldest_pending_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oldest Pending At"},"latest_update_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Update At"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Outbox summary is operational metadata for tenant routing work. It does not include raw prompts, route payload bodies, raw secrets, or raw API keys."}},"type":"object","required":["tenant","count","counts_by_status","pending_count","failed_count","prepared_count","sent_count","resolved_count","dead_letter_count","retryable_count","retryable_failed_count","needs_attention_count","dead_letter_candidate_count","external_prepared_count"],"title":"RouteOutboxSummaryResponse"},"RouteOutboxTickRequest":{"properties":{"statuses":{"items":{"type":"string","enum":["pending","failed"]},"type":"array","title":"Statuses","description":"Dispatch statuses to process through the safe hosted worker path."},"limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","default":100},"max_attempts":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Max Attempts","description":"Failed dispatches at or above this attempt count are skipped as dead-letter candidates.","default":3},"respect_backoff":{"type":"boolean","title":"Respect Backoff","description":"When true, failed dispatches inside the retry backoff window are skipped.","default":true},"base_backoff_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Base Backoff Seconds","description":"Base exponential backoff in seconds for failed dispatch retry planning.","default":300},"trigger":{"type":"string","maxLength":80,"title":"Trigger","description":"Scheduler trigger label, such as hosted_tick, cron_tick, or operator_tick. Do not include secrets or incident notes.","default":"hosted_tick"}},"type":"object","title":"RouteOutboxTickRequest"},"RouteOutboxTickResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"requested_statuses":{"items":{"type":"string"},"type":"array","title":"Requested Statuses"},"send_external":{"type":"boolean","title":"Send External","default":false},"max_attempts":{"type":"integer","title":"Max Attempts","default":3},"respect_backoff":{"type":"boolean","title":"Respect Backoff","default":true},"base_backoff_seconds":{"type":"integer","title":"Base Backoff Seconds","default":300},"processed_count":{"type":"integer","title":"Processed Count"},"skipped_count":{"type":"integer","title":"Skipped Count"},"dead_letter_candidate_count":{"type":"integer","title":"Dead Letter Candidate Count"},"dead_letter_candidates":{"items":{"$ref":"#/components/schemas/RouteOutboxDeadLetterItem"},"type":"array","title":"Dead Letter Candidates"},"backoff_waiting_count":{"type":"integer","title":"Backoff Waiting Count"},"backoff_waiting":{"items":{"$ref":"#/components/schemas/RouteOutboxBackoffItem"},"type":"array","title":"Backoff Waiting"},"external_not_ready_count":{"type":"integer","title":"External Not Ready Count","default":0},"external_not_ready":{"items":{"$ref":"#/components/schemas/RouteOutboxExternalNotReadyItem"},"type":"array","title":"External Not Ready"},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted"},"items":{"items":{"$ref":"#/components/schemas/RouteOutboxProcessItem"},"type":"array","title":"Items"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Hosted outbox processing prepares or records delivery work without attempting external Slack, ServiceNow, or webhook sends. Live external delivery remains operator-only via process-outbox --send-external. Failed dispatches still inside the retry backoff window are skipped by default. External live sends with incomplete or unresolved tenant integrations are skipped before delivery attempts are recorded."},"run":{"$ref":"#/components/schemas/RouteOutboxSchedulerRun"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"scheduler_claim_boundary":{"type":"string","title":"Scheduler Claim Boundary","default":"Scheduler tick records a durable run receipt for hosted or cron-style outbox processing. Hosted ticks do not attempt live external sends; external delivery remains operator-only."}},"type":"object","required":["tenant_id","requested_statuses","processed_count","skipped_count","dead_letter_candidate_count","dead_letter_candidates","backoff_waiting_count","backoff_waiting","external_delivery_attempted","items","run"],"title":"RouteOutboxTickResponse"},"SandboxKeyRequest":{"properties":{"email":{"type":"string","title":"Email","examples":["dev@example.com"]},"organization":{"type":"string","title":"Organization","examples":["Example Dev"]},"first_touch":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"First Touch"}},"type":"object","required":["email","organization"],"title":"SandboxKeyRequest"},"SandboxKeyResponse":{"properties":{"object":{"type":"string","const":"sandbox_api_key","title":"Object","default":"sandbox_api_key"},"tenant":{"type":"string","title":"Tenant"},"organization":{"type":"string","title":"Organization"},"email":{"type":"string","title":"Email"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"api_key_returned_once":{"type":"boolean","title":"Api Key Returned Once"},"sandbox":{"type":"boolean","const":true,"title":"Sandbox","default":true},"environment":{"type":"string","const":"sandbox","title":"Environment","default":"sandbox"},"action_cap":{"type":"integer","title":"Action Cap"},"upgrade_hint":{"type":"string","title":"Upgrade Hint","default":"Sandbox keys are free and capped. To get a production key with the same email, complete checkout at POST /signup/checkout."},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Sandbox receipts sign with a public, reproducible dev key (dev_key:true) and a different public key than production — they are provably non-production and must never be presented as production evidence."},"quickstart_url":{"type":"string","title":"Quickstart Url","default":"/quickstart"},"console_url":{"type":"string","title":"Console Url","default":"/console"},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false}},"type":"object","required":["tenant","organization","email","api_key_id","api_key_returned_once","action_cap"],"title":"SandboxKeyResponse"},"SealBundleBatchRecord":{"properties":{"action_key":{"type":"string","title":"Action Key"},"path":{"type":"string","title":"Path","description":"Suggested directory (relative to the evidence package root) to write this record's files into, keeping the filenames."},"recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded At"},"decision":{"type":"string","title":"Decision"},"status":{"type":"string","enum":["pending_review","blocked","recorded"],"title":"Status"},"bundle_kind":{"type":"string","title":"Bundle Kind"},"attestation_root":{"type":"string","title":"Attestation Root"},"root_scheme":{"type":"string","title":"Root Scheme"},"key_status":{"type":"string","enum":["production","production_retired","sandbox","unknown"],"title":"Key Status","default":"unknown"},"key_status_notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Status Notice"},"files":{"additionalProperties":{"type":"string"},"type":"object","title":"Files"}},"type":"object","required":["action_key","path","decision","status","bundle_kind","attestation_root","root_scheme","files"],"title":"SealBundleBatchRecord"},"SealBundleBatchRequest":{"properties":{"action_keys":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Action Keys","description":"Action keys of the tenant's sealed records to package (max 100 per call, duplicates rejected). Pair with GET /tenant/exports/records to enumerate a time range first."}},"type":"object","required":["action_keys"],"title":"SealBundleBatchRequest"},"SealBundleBatchResponse":{"properties":{"object":{"type":"string","const":"evidence_seal_bundle_batch","title":"Object","default":"evidence_seal_bundle_batch"},"tenant":{"type":"string","title":"Tenant"},"count":{"type":"integer","title":"Count"},"records":{"items":{"$ref":"#/components/schemas/SealBundleBatchRecord"},"type":"array","title":"Records"},"manifest_filename":{"type":"string","title":"Manifest Filename","default":"MANIFEST.json"},"manifest":{"additionalProperties":true,"type":"object","title":"Manifest","description":"Package manifest listing every record's path, files, and attestation_root. Write it as MANIFEST.json at the package root."},"key_status":{"type":"string","enum":["production","production_retired","sandbox","unknown"],"title":"Key Status","default":"unknown"},"key_status_notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Status Notice","description":"Set when ANY record in the package is sealed with the sandbox dev key: sandbox bundles are non-production evidence and are not presentable as production records."},"verify_with":{"type":"string","title":"Verify With"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The batch seal bundle packages raw-safe receipt metadata into offline-verifiable attestations. It is not external notarization, domain advice, a legal/medical/export-control determination, or a compliance certification."}},"type":"object","required":["tenant","count","records","manifest","verify_with"],"title":"SealBundleBatchResponse"},"SealBundleRequest":{"properties":{"action_key":{"type":"string","title":"Action Key"},"href":{"type":"string","title":"Href"},"status":{"type":"string","enum":["pending_review","blocked","recorded"],"title":"Status"},"decision":{"type":"string","title":"Decision"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"payload_hash":{"type":"string","title":"Payload Hash"},"packet_hash":{"type":"string","title":"Packet Hash"},"vertical":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vertical"},"seal":{"$ref":"#/components/schemas/EvidencePacketSeal"}},"type":"object","required":["action_key","href","status","decision","payload_hash","packet_hash","seal"],"title":"SealBundleRequest"},"SealBundleResponse":{"properties":{"object":{"type":"string","const":"evidence_seal_bundle","title":"Object","default":"evidence_seal_bundle"},"bundle_kind":{"type":"string","title":"Bundle Kind"},"attestation_root":{"type":"string","title":"Attestation Root"},"root_scheme":{"type":"string","title":"Root Scheme"},"key_status":{"type":"string","enum":["production","production_retired","sandbox","unknown"],"title":"Key Status","default":"unknown"},"key_status_notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Status Notice","description":"Set when the bundle is sealed with the sandbox dev key: sandbox bundles are non-production evidence and are not presentable as production records."},"files":{"additionalProperties":{"type":"string"},"type":"object","title":"Files"},"verify_with":{"type":"string","title":"Verify With"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The seal bundle packages raw-safe receipt metadata into an offline-verifiable attestation. It is not external notarization, domain advice, a legal/medical/export-control determination, or a compliance certification."}},"type":"object","required":["bundle_kind","attestation_root","root_scheme","files","verify_with"],"title":"SealBundleResponse"},"SealKeyRow":{"properties":{"seal_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seal Key Id","description":"The key that signed these records, or null for records whose stored response carried no seal. Null means UNKNOWN — never assume the current key."},"record_count":{"type":"integer","title":"Record Count"},"first_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Recorded At"},"last_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Recorded At"},"status":{"anyOf":[{"type":"string","enum":["production","production_retired","sandbox"]},{"type":"string","const":"unknown"}],"title":"Status","description":"The key's status in the published set. `unknown` means it is not published — for a retired key that has been dropped from the key history, this is indistinguishable from a forgery, which is why retired keys stay published forever.","default":"unknown"},"not_before":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Not Before"},"not_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Not After"},"superseded_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superseded By"},"notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notice","description":"Why this status is not a statement about the evidence."}},"type":"object","required":["seal_key_id","record_count"],"title":"SealKeyRow","description":"One signing key and the records it minted."},"SigninRequest":{"properties":{"email":{"type":"string","title":"Email","examples":["you@example.com"]}},"type":"object","required":["email"],"title":"SigninRequest"},"SigninResponse":{"properties":{"sent":{"type":"boolean","title":"Sent","default":true},"detail":{"type":"string","title":"Detail"},"raw_token_returned":{"type":"boolean","title":"Raw Token Returned","default":false}},"type":"object","required":["detail"],"title":"SigninResponse","description":"Uniform accept for POST /signin.\n\nDeliberately identical for known, unknown, and rate-limited emails so the\nendpoint cannot be used as an account-existence oracle."},"SignupCheckoutRequest":{"properties":{"email":{"type":"string","title":"Email","examples":["buyer@example.com"]},"organization":{"type":"string","title":"Organization","examples":["Example Legal Ops"]},"vertical_pack":{"type":"string","title":"Vertical Pack","default":"law/default-us-legal-ai-supervision"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"}},"type":"object","required":["email","organization"],"title":"SignupCheckoutRequest"},"SignupCheckoutResponse":{"properties":{"signup_key":{"type":"string","title":"Signup Key"},"claim_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Token"},"tenant":{"type":"string","title":"Tenant"},"organization":{"type":"string","title":"Organization"},"email":{"type":"string","title":"Email"},"vertical_pack":{"type":"string","title":"Vertical Pack"},"billing_provider":{"type":"string","enum":["stripe_test","stripe"],"title":"Billing Provider"},"checkout_session_id":{"type":"string","title":"Checkout Session Id"},"checkout_url":{"type":"string","title":"Checkout Url"},"success_url":{"type":"string","title":"Success Url"},"cancel_url":{"type":"string","title":"Cancel Url"},"return_url_bound":{"type":"boolean","title":"Return Url Bound","default":true},"raw_claim_token_in_return_url":{"type":"boolean","title":"Raw Claim Token In Return Url","default":false},"status":{"type":"string","enum":["checkout_created","payment_verified","completed"],"title":"Status"},"api_key_returned":{"type":"boolean","title":"Api Key Returned","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"claim_token_returned_once":{"type":"boolean","title":"Claim Token Returned Once","default":true},"claim_token_stored":{"type":"boolean","title":"Claim Token Stored","default":false},"claim_token_cookie_bound":{"type":"boolean","title":"Claim Token Cookie Bound","default":true},"browser_session_bound":{"type":"boolean","title":"Browser Session Bound","default":true},"signup_session_stored":{"type":"boolean","title":"Signup Session Stored","default":false}},"type":"object","required":["signup_key","tenant","organization","email","vertical_pack","billing_provider","checkout_session_id","checkout_url","success_url","cancel_url","status"],"title":"SignupCheckoutResponse"},"SignupClaimKeyRequest":{"properties":{"signup_key":{"type":"string","title":"Signup Key"},"checkout_session_id":{"type":"string","title":"Checkout Session Id"},"claim_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Token","description":"Optional when the returning browser still has the HttpOnly ps_signup_claim cookie set by checkout."}},"type":"object","required":["signup_key","checkout_session_id"],"title":"SignupClaimKeyRequest"},"SignupCompleteResponse":{"properties":{"signup_key":{"type":"string","title":"Signup Key"},"tenant":{"type":"string","title":"Tenant"},"organization":{"type":"string","title":"Organization"},"email":{"type":"string","title":"Email"},"billing_provider":{"type":"string","enum":["stripe_test","stripe"],"title":"Billing Provider"},"checkout_session_id":{"type":"string","title":"Checkout Session Id"},"status":{"type":"string","const":"completed","title":"Status"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"api_key_returned_once":{"type":"boolean","title":"Api Key Returned Once"},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"browser_session_bound":{"type":"boolean","title":"Browser Session Bound","default":true},"signup_session_stored":{"type":"boolean","title":"Signup Session Stored","default":false},"account_session_created":{"type":"boolean","title":"Account Session Created","default":false},"account_session_cookie_bound":{"type":"boolean","title":"Account Session Cookie Bound","default":false},"account_session_cookie_httponly":{"type":"boolean","title":"Account Session Cookie Httponly","default":true},"account_session_cookie_secure":{"type":"boolean","title":"Account Session Cookie Secure","default":false},"account_session_expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Session Expires At"},"account_session_hash_stored":{"type":"boolean","title":"Account Session Hash Stored","default":false},"raw_account_session_token_stored":{"type":"boolean","title":"Raw Account Session Token Stored","default":false},"account_me_href":{"type":"string","title":"Account Me Href","default":"/account/me"}},"type":"object","required":["signup_key","tenant","organization","email","billing_provider","checkout_session_id","status","api_key_id","api_key_returned_once"],"title":"SignupCompleteResponse"},"SignupReadinessResponse":{"properties":{"checkout_mode":{"type":"string","enum":["stripe_test_stub","stripe_checkout_session"],"title":"Checkout Mode","default":"stripe_test_stub"},"free_tier_monthly":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Tier Monthly"},"production_ready":{"type":"boolean","title":"Production Ready","default":false},"signup_return_href":{"type":"string","title":"Signup Return Href","default":"/signup/return"},"signup_status_href":{"type":"string","title":"Signup Status Href","default":"/signup/status"},"signup_claim_key_href":{"type":"string","title":"Signup Claim Key Href","default":"/signup/claim-key"},"return_page_browser_safe":{"type":"boolean","title":"Return Page Browser Safe","default":true},"billing_test_mode":{"type":"boolean","title":"Billing Test Mode"},"test_checkout_enabled":{"type":"boolean","title":"Test Checkout Enabled","default":true},"test_completion_enabled":{"type":"boolean","title":"Test Completion Enabled"},"signed_test_webhook_enabled":{"type":"boolean","title":"Signed Test Webhook Enabled"},"signed_stripe_webhook_enabled":{"type":"boolean","title":"Signed Stripe Webhook Enabled"},"production_checkout_provider_supported":{"type":"boolean","title":"Production Checkout Provider Supported","default":true},"production_checkout_enabled":{"type":"boolean","title":"Production Checkout Enabled","default":false},"stripe_secret_key_configured":{"type":"boolean","title":"Stripe Secret Key Configured"},"stripe_price_configured":{"type":"boolean","title":"Stripe Price Configured"},"stripe_webhook_secret_configured":{"type":"boolean","title":"Stripe Webhook Secret Configured"},"stripe_meter_event_name":{"type":"string","title":"Stripe Meter Event Name"},"stripe_meter_event_name_configured":{"type":"boolean","title":"Stripe Meter Event Name Configured"},"stripe_meter_customer_payload_key":{"type":"string","title":"Stripe Meter Customer Payload Key"},"stripe_meter_value_payload_key":{"type":"string","title":"Stripe Meter Value Payload Key"},"usage_meter_ledger_enabled":{"type":"boolean","title":"Usage Meter Ledger Enabled","default":true},"usage_meter_event_name":{"type":"string","title":"Usage Meter Event Name","default":"seal_epoch"},"usage_meter_unit":{"type":"string","title":"Usage Meter Unit","default":"seal_epoch"},"price_amount_returned":{"type":"boolean","title":"Price Amount Returned","default":false},"pricing_model_encoded":{"type":"boolean","title":"Pricing Model Encoded","default":false},"signup_session_cookie_secure":{"type":"boolean","title":"Signup Session Cookie Secure"},"signup_session_ttl_seconds":{"type":"integer","title":"Signup Session Ttl Seconds"},"account_session_supported":{"type":"boolean","title":"Account Session Supported","default":true},"account_session_cookie_httponly":{"type":"boolean","title":"Account Session Cookie Httponly","default":true},"account_session_cookie_secure":{"type":"boolean","title":"Account Session Cookie Secure"},"account_session_ttl_seconds":{"type":"integer","title":"Account Session Ttl Seconds"},"account_me_href":{"type":"string","title":"Account Me Href","default":"/account/me"},"account_logout_href":{"type":"string","title":"Account Logout Href","default":"/account/logout"},"claim_token_cookie_supported":{"type":"boolean","title":"Claim Token Cookie Supported","default":true},"claim_token_cookie_httponly":{"type":"boolean","title":"Claim Token Cookie Httponly","default":true},"claim_token_cookie_secure":{"type":"boolean","title":"Claim Token Cookie Secure"},"missing_production_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Production Requirements"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Signup readiness reports configuration and implementation status only. Checkout defaults to a Stripe-test-shaped stub for local/team testing; production Stripe Checkout is enabled only when the server has the required Stripe secret, price, webhook secret, secure signup cookies, and secure account-session cookies."}},"type":"object","required":["billing_test_mode","test_completion_enabled","signed_test_webhook_enabled","signed_stripe_webhook_enabled","stripe_secret_key_configured","stripe_price_configured","stripe_webhook_secret_configured","stripe_meter_event_name","stripe_meter_event_name_configured","stripe_meter_customer_payload_key","stripe_meter_value_payload_key","signup_session_cookie_secure","signup_session_ttl_seconds","account_session_cookie_secure","account_session_ttl_seconds","claim_token_cookie_secure"],"title":"SignupReadinessResponse"},"SignupStatusRequest":{"properties":{"signup_key":{"type":"string","title":"Signup Key"},"checkout_session_id":{"type":"string","title":"Checkout Session Id"},"claim_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Token","description":"Optional when the returning browser still has the HttpOnly ps_signup_claim cookie set by checkout."}},"type":"object","required":["signup_key","checkout_session_id"],"title":"SignupStatusRequest"},"SignupStatusResponse":{"properties":{"signup_key":{"type":"string","title":"Signup Key"},"tenant":{"type":"string","title":"Tenant"},"organization":{"type":"string","title":"Organization"},"email":{"type":"string","title":"Email"},"billing_provider":{"type":"string","enum":["stripe_test","stripe"],"title":"Billing Provider"},"checkout_session_id":{"type":"string","title":"Checkout Session Id"},"status":{"type":"string","enum":["checkout_created","payment_verified","completed"],"title":"Status"},"payment_verified":{"type":"boolean","title":"Payment Verified"},"completed":{"type":"boolean","title":"Completed"},"claimable":{"type":"boolean","title":"Claimable"},"claim_next":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Next"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"api_key_returned":{"type":"boolean","title":"Api Key Returned","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"claim_token_stored":{"type":"boolean","title":"Claim Token Stored","default":false},"browser_session_bound":{"type":"boolean","title":"Browser Session Bound","default":true},"signup_session_stored":{"type":"boolean","title":"Signup Session Stored","default":false}},"type":"object","required":["signup_key","tenant","organization","email","billing_provider","checkout_session_id","status","payment_verified","completed","claimable"],"title":"SignupStatusResponse"},"SignupStripeWebhookResponse":{"properties":{"received":{"type":"boolean","title":"Received","default":true},"event_type":{"type":"string","title":"Event Type"},"status":{"type":"string","enum":["ignored","payment_verified","completed"],"title":"Status"},"checkout_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Session Id"},"signup_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signup Key"},"stripe_checkout_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Checkout Status"},"stripe_payment_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Payment Status"},"stripe_customer_id_present":{"type":"boolean","title":"Stripe Customer Id Present","default":false},"payment_verified":{"type":"boolean","title":"Payment Verified","default":false},"completion":{"anyOf":[{"$ref":"#/components/schemas/SignupCompleteResponse"},{"type":"null"}]},"claim_next":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Next","default":"/signup/claim-key"},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This route verifies a signed Stripe checkout event and marks payment verified only when the Checkout Session is complete and paid. The returning browser claims the tenant key once with the one-time claim token and bound signup session from checkout; raw keys, raw claim tokens, and raw signup session tokens are not stored."}},"type":"object","required":["event_type","status"],"title":"SignupStripeWebhookResponse"},"SignupTestCompleteRequest":{"properties":{"signup_key":{"type":"string","title":"Signup Key"},"checkout_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Session Id"},"claim_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Token","description":"Required when billing test mode is enabled. Must match the one-time claim token returned by checkout."}},"type":"object","required":["signup_key"],"title":"SignupTestCompleteRequest"},"SlackModalOpenHandoffResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"channel":{"type":"string","const":"slack","title":"Channel","default":"slack"},"target":{"type":"string","title":"Target"},"action_key":{"type":"string","title":"Action Key"},"dispatch_key":{"type":"string","title":"Dispatch Key"},"trigger_id_present":{"type":"boolean","title":"Trigger Id Present"},"views_open_url":{"type":"string","title":"Views Open Url","default":"https://slack.com/api/views.open"},"views_open_request":{"additionalProperties":true,"type":"object","title":"Views Open Request"},"authorization":{"additionalProperties":true,"type":"object","title":"Authorization"},"external_delivery_attempted":{"type":"boolean","title":"External Delivery Attempted","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"secret_material_returned":{"type":"boolean","title":"Secret Material Returned","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This endpoint validates a signed Slack block_actions payload and returns a raw-safe views.open request envelope. It does not call Slack, install Slack apps, perform OAuth, return bot tokens, record review decisions, or store raw Slack payload state."}},"type":"object","required":["tenant","target","action_key","dispatch_key","trigger_id_present","views_open_request","authorization"],"title":"SlackModalOpenHandoffResponse"},"SystemCoverageRow":{"properties":{"system_id":{"type":"string","title":"System Id"},"event_type":{"type":"string","title":"Event Type"},"first_seq":{"type":"integer","title":"First Seq"},"last_seq":{"type":"integer","title":"Last Seq"},"observed_count":{"type":"integer","title":"Observed Count"},"implied_population":{"type":"integer","title":"Implied Population","description":"last_seq - first_seq + 1. Needs no count to be trusted, because both endpoints are committed inside sealed records — but it says nothing about sequence numbers outside the observed range."},"missing_count":{"type":"integer","title":"Missing Count"},"missing_ranges":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Missing Ranges"},"missing_ranges_truncated":{"type":"boolean","title":"Missing Ranges Truncated","default":false},"declared":{"type":"boolean","title":"Declared","description":"Whether a system_declared record is in force for this system."},"sequence_binding":{"type":"boolean","title":"Sequence Binding","default":false},"declaration_action_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declaration Action Key"},"counter_binding_declared":{"type":"boolean","title":"Counter Binding Declared","description":"Whether the declaration states where the operator's counter increments. A counter that only increments when the operator marks makes gap detection vacuous; this does not make the counter honest, it makes the audit question answerable.","default":false}},"type":"object","required":["system_id","event_type","first_seq","last_seq","observed_count","implied_population","missing_count","missing_ranges","declared"],"title":"SystemCoverageRow"},"SystemManifestResponse":{"properties":{"object":{"type":"string","title":"Object","default":"system_manifest"},"system_id":{"type":"string","title":"System Id"},"declared":{"type":"boolean","title":"Declared"},"action_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Key"},"recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded At"},"pack":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pack"},"retained_metadata":{"additionalProperties":true,"type":"object","title":"Retained Metadata","description":"The declaration's retained metadata — lane assignment, instructions, scope. Empty when the declaring record was sealed commitments-only."},"metadata_keys":{"items":{"type":"string"},"type":"array","title":"Metadata Keys"}},"type":"object","required":["system_id","declared"],"title":"SystemManifestResponse"},"TenantAnchorDisclosureUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"TenantAnchorDisclosureUpdate"},"TenantAnchorPin":{"properties":{"epoch_seq":{"type":"integer","title":"Epoch Seq"},"canonical_root":{"type":"string","title":"Canonical Root"},"epoch_digest":{"type":"string","title":"Epoch Digest"},"tenant_seq":{"type":"integer","title":"Tenant Seq"},"anchored_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anchored At"}},"type":"object","required":["epoch_seq","canonical_root","epoch_digest","tenant_seq"],"title":"TenantAnchorPin"},"TenantAnchorStatusResponse":{"properties":{"object":{"type":"string","title":"Object","default":"tenant_anchor_status"},"tenant":{"type":"string","title":"Tenant"},"chain_head":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Chain Head"},"anchored":{"anyOf":[{"$ref":"#/components/schemas/TenantAnchorPin"},{"type":"null"}]},"pending_links":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pending Links","description":"Chain links sealed after the anchored snapshot, awaiting the next roll-up."},"rollup_cadence":{"type":"string","title":"Rollup Cadence","default":"hourly"},"public_proof_disclosure":{"type":"boolean","title":"Public Proof Disclosure"}},"type":"object","required":["tenant","public_proof_disclosure"],"title":"TenantAnchorStatusResponse"},"TenantApiKeyIssueRequest":{"properties":{"label":{"type":"string","title":"Label","default":"integration"}},"type":"object","title":"TenantApiKeyIssueRequest"},"TenantApiKeyIssueResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"key":{"$ref":"#/components/schemas/TenantApiKeyItem"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"api_key_returned_once":{"type":"boolean","title":"Api Key Returned Once","default":true},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false}},"type":"object","required":["tenant","key"],"title":"TenantApiKeyIssueResponse"},"TenantApiKeyItem":{"properties":{"tenant":{"type":"string","title":"Tenant"},"key_id":{"type":"string","title":"Key Id"},"label":{"type":"string","title":"Label"},"active":{"type":"boolean","title":"Active"},"key_hash_prefix":{"type":"string","title":"Key Hash Prefix"},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"revoked_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"}},"type":"object","required":["tenant","key_id","label","active","key_hash_prefix","created_at","revoked_at","last_used_at"],"title":"TenantApiKeyItem"},"TenantApiKeyRevokeResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"key":{"$ref":"#/components/schemas/TenantApiKeyItem"},"revoked":{"type":"boolean","title":"Revoked"},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false}},"type":"object","required":["tenant","key","revoked"],"title":"TenantApiKeyRevokeResponse"},"TenantApiKeysResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"keys":{"items":{"$ref":"#/components/schemas/TenantApiKeyItem"},"type":"array","title":"Keys"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["tenant","keys","count"],"title":"TenantApiKeysResponse"},"TenantAuditActionItem":{"properties":{"action_key":{"type":"string","title":"Action Key"},"source_key":{"type":"string","title":"Source Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"decision":{"type":"string","title":"Decision"},"action_type":{"type":"string","title":"Action Type"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"evidence_packet_href":{"type":"string","title":"Evidence Packet Href"},"next_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step"},"doctrine_anchors":{"items":{"type":"string"},"type":"array","title":"Doctrine Anchors"},"privacy_flags":{"items":{"type":"string"},"type":"array","title":"Privacy Flags"},"missing_fields":{"items":{"type":"string"},"type":"array","title":"Missing Fields"},"corpus_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Corpus Refs"},"catalog_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Catalog Refs"},"route_dispatches":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Route Dispatches"},"reviews":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Reviews"},"proposal_included":{"type":"boolean","title":"Proposal Included","default":false},"response_included":{"type":"boolean","title":"Response Included","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false}},"type":"object","required":["action_key","source_key","payload_hash","decision","action_type","review_route","created_at","evidence_packet_href"],"title":"TenantAuditActionItem"},"TenantAuditEventItem":{"properties":{"event_id":{"type":"string","title":"Event Id"},"event_type":{"type":"string","title":"Event Type"},"actor_type":{"type":"string","title":"Actor Type"},"actor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Id"},"subject_type":{"type":"string","title":"Subject Type"},"subject_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Id"},"outcome":{"type":"string","title":"Outcome"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"previous_event_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Event Hash"},"event_hash":{"type":"string","title":"Event Hash"},"retention_policy":{"type":"string","title":"Retention Policy"},"retention_until":{"type":"string","title":"Retention Until"},"created_at":{"type":"string","title":"Created At"},"append_only":{"type":"boolean","title":"Append Only","default":true},"hash_chain":{"type":"boolean","title":"Hash Chain","default":true},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_secret_material_stored":{"type":"boolean","title":"Raw Secret Material Stored","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false}},"type":"object","required":["event_id","event_type","actor_type","subject_type","outcome","event_hash","retention_policy","retention_until","created_at"],"title":"TenantAuditEventItem"},"TenantAuditExportResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"},"policy":{"additionalProperties":true,"type":"object","title":"Policy"},"active_manifest":{"additionalProperties":true,"type":"object","title":"Active Manifest"},"api_keys":{"items":{"$ref":"#/components/schemas/TenantApiKeyItem"},"type":"array","title":"Api Keys"},"integrations":{"items":{"$ref":"#/components/schemas/TenantIntegrationItem"},"type":"array","title":"Integrations"},"policy_receipts":{"items":{"$ref":"#/components/schemas/TenantPolicyReceiptItem"},"type":"array","title":"Policy Receipts"},"audit_events":{"items":{"$ref":"#/components/schemas/TenantAuditEventItem"},"type":"array","title":"Audit Events"},"usage_meter_events":{"items":{"$ref":"#/components/schemas/TenantUsageMeterEventItem"},"type":"array","title":"Usage Meter Events"},"actions":{"items":{"$ref":"#/components/schemas/TenantAuditActionItem"},"type":"array","title":"Actions"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"secret_material_stored":{"type":"boolean","title":"Secret Material Stored","default":false},"audit_event_payloads_included":{"type":"boolean","title":"Audit Event Payloads Included","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Tenant audit export summarizes Planisphere routing and supervision metadata, append-only audit event summaries, and price-neutral usage meter events. It omits raw prompt/document content, raw API keys, raw secret material, route payload bodies, policy prompt content, Stripe customer identifiers, prices, and free-text review reasons."}},"type":"object","required":["tenant","generated_at","summary","policy","active_manifest","api_keys","integrations","policy_receipts","actions"],"title":"TenantAuditExportResponse"},"TenantContentKeyItem":{"properties":{"key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id","description":"Non-secret fingerprint (sha256 of the key, truncated) named by the content envelope. Null for pre-fingerprint envelopes."},"blob_count":{"type":"integer","title":"Blob Count"},"first_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Used At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"}},"type":"object","required":["key_id","blob_count"],"title":"TenantContentKeyItem"},"TenantContentKeysResponse":{"properties":{"object":{"type":"string","const":"content_keys","title":"Object","default":"content_keys"},"tenant":{"type":"string","title":"Tenant"},"keys":{"items":{"$ref":"#/components/schemas/TenantContentKeyItem"},"type":"array","title":"Keys"},"key_material_stored":{"type":"boolean","title":"Key Material Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Attribution only: which content-key fingerprints this tenant's sealed envelopes name, and how many blobs each opens. Content keys are generated client-side and never reach Planisphere — a lost key cannot be recovered by anyone, including us."}},"type":"object","required":["tenant","keys"],"title":"TenantContentKeysResponse"},"TenantFederalAcquisitionExportResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"source_policy_anchors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Source Policy Anchors"},"export_limitations":{"items":{"type":"string"},"type":"array","title":"Export Limitations"},"validation_profile":{"additionalProperties":true,"type":"object","title":"Validation Profile"},"acquisition_context":{"additionalProperties":true,"type":"object","title":"Acquisition Context"},"m_25_22_alignment":{"additionalProperties":true,"type":"object","title":"M 25 22 Alignment"},"monitoring_summary":{"additionalProperties":true,"type":"object","title":"Monitoring Summary"},"owner_routes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Owner Routes"},"procurement_artifacts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Procurement Artifacts"},"evidence_packet_refs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Evidence Packet Refs"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"secret_material_stored":{"type":"boolean","title":"Secret Material Stored","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This acquisition export helps a buyer inspect Planisphere's API, evidence, portability, and data-boundary posture. It is not a bid submission, legal determination, compliance certification, or agency authorization decision."}},"type":"object","required":["schema","tenant","generated_at","validation_profile","acquisition_context","m_25_22_alignment","monitoring_summary","owner_routes","procurement_artifacts","evidence_packet_refs"],"title":"TenantFederalAcquisitionExportResponse"},"TenantFederalDataCatalogExportResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"source_policy_anchors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Source Policy Anchors"},"export_limitations":{"items":{"type":"string"},"type":"array","title":"Export Limitations"},"validation_profile":{"additionalProperties":true,"type":"object","title":"Validation Profile"},"catalog_context":{"additionalProperties":true,"type":"object","title":"Catalog Context"},"dataset":{"additionalProperties":true,"type":"object","title":"Dataset"},"data_assets":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Data Assets"},"disclosure_review":{"additionalProperties":true,"type":"object","title":"Disclosure Review"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"secret_material_stored":{"type":"boolean","title":"Secret Material Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This export makes Planisphere metadata portable in open JSON. It does not declare that protected tenant data is public, replace agency FOIA/privacy/IP review, or publish a federal data catalog entry by itself."}},"type":"object","required":["schema","tenant","generated_at","validation_profile","catalog_context","dataset","data_assets","disclosure_review"],"title":"TenantFederalDataCatalogExportResponse"},"TenantFederalOscalExportResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"source_policy_anchors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Source Policy Anchors"},"export_limitations":{"items":{"type":"string"},"type":"array","title":"Export Limitations"},"validation_profile":{"additionalProperties":true,"type":"object","title":"Validation Profile"},"package_profile":{"additionalProperties":true,"type":"object","title":"Package Profile"},"oscal_alignment":{"additionalProperties":true,"type":"object","title":"Oscal Alignment"},"system_security_plan":{"additionalProperties":true,"type":"object","title":"System Security Plan"},"assessment_results":{"additionalProperties":true,"type":"object","title":"Assessment Results"},"plan_of_action_and_milestones":{"additionalProperties":true,"type":"object","title":"Plan Of Action And Milestones"},"evidence_packets":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Evidence Packets"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This is an OSCAL-aligned evidence export over Planisphere receipt metadata. It is not a complete FedRAMP Certification Package, an agency ATO, legal advice, medical advice, export-control determination, or compliance certification."}},"type":"object","required":["schema","tenant","generated_at","validation_profile","package_profile","oscal_alignment","system_security_plan","assessment_results","plan_of_action_and_milestones","evidence_packets"],"title":"TenantFederalOscalExportResponse"},"TenantFederalSchemaBindingRequest":{"properties":{"export_kind":{"type":"string","enum":["oscal","data_catalog","ai_acquisition"],"title":"Export Kind"},"adapter_key":{"type":"string","title":"Adapter Key","examples":["dcat_us_or_project_open_data_json_schema"]},"schema_profile_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Key","description":"Optional packaged Planisphere profile key. Provide this or owner_schema_ref plus owner_schema_hash, not both.","examples":["planisphere.dev.project_open_data_subset.v0"]},"owner_schema_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Schema Ref","description":"Owner-selected external schema reference. Raw schema is not stored."},"owner_schema_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Schema Hash","description":"SHA-256 hash for an owner-selected schema bundle or schema file.","examples":["sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]},"owner_attestation_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Attestation Label","description":"Short owner-safe label for the selection; do not include raw content."},"owner_attestation_actor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Attestation Actor","description":"Owner-side actor or team key; do not include personal contact data."},"effective_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effective At"}},"type":"object","required":["export_kind","adapter_key"],"title":"TenantFederalSchemaBindingRequest"},"TenantFederalSchemaBindingResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"contract":{"type":"string","title":"Contract"},"tenant":{"type":"string","title":"Tenant"},"binding_key":{"type":"string","title":"Binding Key"},"binding_status":{"type":"string","title":"Binding Status"},"active":{"type":"boolean","title":"Active","default":false},"mutation_applied":{"type":"boolean","title":"Mutation Applied","default":false},"export_kind":{"type":"string","title":"Export Kind"},"adapter_key":{"type":"string","title":"Adapter Key"},"adapter_target":{"type":"string","title":"Adapter Target"},"execution_mode":{"type":"string","title":"Execution Mode"},"source_type":{"type":"string","title":"Source Type"},"schema_ref":{"type":"string","title":"Schema Ref"},"authority":{"type":"string","title":"Authority"},"schema_hash":{"type":"string","title":"Schema Hash"},"schema_profile_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Key"},"schema_profile_contract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Contract"},"schema_profile_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Status"},"schema_profile_official":{"type":"boolean","title":"Schema Profile Official","default":false},"owner_schema_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Schema Ref"},"source_provenance":{"additionalProperties":true,"type":"object","title":"Source Provenance"},"owner_attestation":{"additionalProperties":true,"type":"object","title":"Owner Attestation"},"binding_receipt":{"additionalProperties":true,"type":"object","title":"Binding Receipt"},"validation_run_template":{"additionalProperties":true,"type":"object","title":"Validation Run Template"},"effective_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effective At"},"created_at":{"type":"string","title":"Created At"},"raw_schema_payload_stored":{"type":"boolean","title":"Raw Schema Payload Stored","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This binding chooses the schema source a tenant intends to use for local validation runs. It does not claim official OSCAL/DCAT validation, Federal Data Catalog publication, FedRAMP Certification, agency ATO, bid acceptance, funding continuity, or compliance certification."}},"type":"object","required":["schema","contract","tenant","binding_key","binding_status","export_kind","adapter_key","adapter_target","execution_mode","source_type","schema_ref","authority","schema_hash","source_provenance","owner_attestation","binding_receipt","validation_run_template","created_at"],"title":"TenantFederalSchemaBindingResponse"},"TenantFederalSchemaBindingsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"bindings":{"items":{"$ref":"#/components/schemas/TenantFederalSchemaBindingResponse"},"type":"array","title":"Bindings"},"binding_count":{"type":"integer","title":"Binding Count"},"active_only":{"type":"boolean","title":"Active Only","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Schema bindings are tenant-selected metadata records. They do not claim official validation, authorization, publication approval, procurement acceptance, or compliance certification."}},"type":"object","required":["tenant","bindings","binding_count"],"title":"TenantFederalSchemaBindingsResponse"},"TenantFederalValidationReportResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"contract":{"type":"string","title":"Contract"},"validation_status":{"type":"string","title":"Validation Status"},"local_validation_status":{"type":"string","title":"Local Validation Status"},"external_validation_status":{"type":"string","title":"External Validation Status"},"exports_checked":{"type":"integer","title":"Exports Checked"},"missing_json_pointer_count":{"type":"integer","title":"Missing Json Pointer Count"},"export_reports":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Export Reports"},"external_validation_targets":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object","title":"External Validation Targets"},"validator_adapters":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Validator Adapters"},"external_adapter_statuses":{"additionalProperties":{"type":"string"},"type":"object","title":"External Adapter Statuses"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This report executes Planisphere-owned export-shape checks against tenant federal exports. It does not run official NIST OSCAL schema validation, publish a Federal Data Catalog entry, approve an AI acquisition, grant FedRAMP Certification, grant agency ATO status, or predict bid acceptance."}},"type":"object","required":["schema","tenant","generated_at","contract","validation_status","local_validation_status","external_validation_status","exports_checked","missing_json_pointer_count","export_reports","external_validation_targets","validator_adapters","external_adapter_statuses"],"title":"TenantFederalValidationReportResponse"},"TenantFederalValidationRunOverviewItem":{"properties":{"run_key":{"type":"string","title":"Run Key"},"export_kind":{"type":"string","title":"Export Kind"},"adapter_key":{"type":"string","title":"Adapter Key"},"validation_status":{"type":"string","title":"Validation Status"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"binding_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Binding Summary"},"schema_summary":{"additionalProperties":true,"type":"object","title":"Schema Summary"},"artifact_summary":{"additionalProperties":true,"type":"object","title":"Artifact Summary"},"review_owner":{"additionalProperties":true,"type":"object","title":"Review Owner"},"review_summary":{"additionalProperties":true,"type":"object","title":"Review Summary"},"evidence_refs":{"additionalProperties":true,"type":"object","title":"Evidence Refs"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This overview summarizes local validation receipts for tenant review. It does not include raw artifacts, submit packages, grant official validation, or certify compliance."}},"type":"object","required":["run_key","export_kind","adapter_key","validation_status","schema_summary","artifact_summary","review_owner","review_summary","evidence_refs"],"title":"TenantFederalValidationRunOverviewItem"},"TenantFederalValidationRunRequest":{"properties":{"export_kind":{"type":"string","enum":["oscal","data_catalog","ai_acquisition"],"title":"Export Kind"},"adapter_key":{"type":"string","title":"Adapter Key","examples":["dcat_us_or_project_open_data_json_schema"]},"schema_profile_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Key","description":"Optional pinned Planisphere schema profile key. Provide this or schema_payload, not both.","examples":["planisphere.dev.project_open_data_subset.v0"]},"schema_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema Payload","description":"Owner-supplied JSON Schema. Provide this or schema_profile_key, not both."},"binding_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Binding Key","description":"Optional recorded schema binding. Registry-profile bindings supply the profile key; owner-pinned bindings require schema_payload with a matching hash."},"artifact_payload":{"additionalProperties":true,"type":"object","title":"Artifact Payload","description":"Owner-supplied artifact to validate. It is hashed transiently and not stored."},"schema_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Ref"},"authority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authority"},"artifact_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifact Label"},"max_errors":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Errors","default":20}},"type":"object","required":["export_kind","adapter_key","artifact_payload"],"title":"TenantFederalValidationRunRequest"},"TenantFederalValidationRunResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"contract":{"type":"string","title":"Contract"},"adapter_contract":{"type":"string","title":"Adapter Contract"},"export_kind":{"type":"string","title":"Export Kind"},"adapter_key":{"type":"string","title":"Adapter Key"},"adapter_target":{"type":"string","title":"Adapter Target"},"execution_mode":{"type":"string","title":"Execution Mode"},"artifact_status":{"type":"string","title":"Artifact Status"},"tenant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant"},"run_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Key"},"binding_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Binding Key"},"binding_receipt_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Binding Receipt Hash"},"binding_source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Binding Source Type"},"validation_status":{"type":"string","title":"Validation Status"},"schema_ref":{"type":"string","title":"Schema Ref"},"authority":{"type":"string","title":"Authority"},"artifact_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifact Label"},"schema_source":{"type":"string","title":"Schema Source"},"schema_profile_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Key"},"schema_profile_contract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Contract"},"schema_profile_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Profile Status"},"schema_profile_official":{"type":"boolean","title":"Schema Profile Official","default":false},"schema_hash":{"type":"string","title":"Schema Hash"},"artifact_hash":{"type":"string","title":"Artifact Hash"},"validation_result":{"additionalProperties":true,"type":"object","title":"Validation Result"},"owner_supplied_schema":{"type":"boolean","title":"Owner Supplied Schema","default":true},"owner_supplied_artifact":{"type":"boolean","title":"Owner Supplied Artifact","default":true},"registry_profile_used":{"type":"boolean","title":"Registry Profile Used","default":false},"recorded":{"type":"boolean","title":"Recorded","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"validation_run_receipt":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Validation Run Receipt"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_error_values_returned":{"type":"boolean","title":"Raw Error Values Returned","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This endpoint locally executes an owner-supplied JSON Schema against an owner-supplied artifact. It does not submit the artifact to NIST, GSA, FedRAMP, an agency, an assessor, or a data catalog; it does not grant official validation, authorization, publication, bid acceptance, or funding continuity."}},"type":"object","required":["schema","contract","adapter_contract","export_kind","adapter_key","adapter_target","execution_mode","artifact_status","validation_status","schema_ref","authority","schema_source","schema_hash","artifact_hash","validation_result"],"title":"TenantFederalValidationRunResponse"},"TenantFederalValidationRunsOverviewResponse":{"properties":{"schema":{"type":"string","title":"Schema","default":"planisphere.federal_validation_receipt_overview.v0"},"contract":{"type":"string","title":"Contract","default":"planisphere.federal_validation_receipt_overview/1"},"tenant":{"type":"string","title":"Tenant"},"items":{"items":{"$ref":"#/components/schemas/TenantFederalValidationRunOverviewItem"},"type":"array","title":"Items"},"run_count":{"type":"integer","title":"Run Count"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"},"review_owner_contract":{"type":"string","title":"Review Owner Contract","default":"planisphere.review_owner/1"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Validation-run overviews compose schema bindings, local validation receipts, and owner-review lanes. They do not store raw artifact content, submit OSCAL/DCAT packages, grant FedRAMP Certification, agency ATO, catalog publication, bid acceptance, funding continuity, or compliance certification."}},"type":"object","required":["tenant","items","run_count","filters"],"title":"TenantFederalValidationRunsOverviewResponse"},"TenantFederalValidationRunsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"runs":{"items":{"$ref":"#/components/schemas/TenantFederalValidationRunResponse"},"type":"array","title":"Runs"},"run_count":{"type":"integer","title":"Run Count"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Validation runs are tenant-scoped preflight receipts. They do not claim official validation, submission, authorization, publication approval, procurement acceptance, or compliance certification."}},"type":"object","required":["tenant","runs","run_count"],"title":"TenantFederalValidationRunsResponse"},"TenantFederalValidationSchemaManifestResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"contract":{"type":"string","title":"Contract"},"registry_contract":{"type":"string","title":"Registry Contract"},"profile_contract":{"type":"string","title":"Profile Contract"},"binding_contract":{"type":"string","title":"Binding Contract"},"profile_count":{"type":"integer","title":"Profile Count"},"official_source_count":{"type":"integer","title":"Official Source Count"},"profiles":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Profiles"},"official_source_candidates":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Official Source Candidates"},"promotion_gates":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Promotion Gates"},"tenant_binding_model":{"additionalProperties":true,"type":"object","title":"Tenant Binding Model"},"schema_payloads_included":{"type":"boolean","title":"Schema Payloads Included","default":false},"manifest_hash":{"type":"string","title":"Manifest Hash"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"private_ip_shipped_to_customer":{"type":"boolean","title":"Private Ip Shipped To Customer","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This manifest maps Planisphere dev schema profiles to official-source readiness work. It does not claim official NIST OSCAL validation, official DCAT-US validation, Federal Data Catalog publication, FedRAMP Certification, agency ATO, bid acceptance, funding continuity, or compliance certification."}},"type":"object","required":["schema","contract","registry_contract","profile_contract","binding_contract","profile_count","official_source_count","profiles","official_source_candidates","promotion_gates","tenant_binding_model","manifest_hash"],"title":"TenantFederalValidationSchemaManifestResponse"},"TenantFederalValidationSchemaProfileResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"contract":{"type":"string","title":"Contract"},"schema_profile_key":{"type":"string","title":"Schema Profile Key"},"schema_profile_contract":{"type":"string","title":"Schema Profile Contract"},"title":{"type":"string","title":"Title"},"export_kind":{"type":"string","title":"Export Kind"},"adapter_key":{"type":"string","title":"Adapter Key"},"schema_ref":{"type":"string","title":"Schema Ref"},"authority":{"type":"string","title":"Authority"},"status":{"type":"string","title":"Status"},"official_profile":{"type":"boolean","title":"Official Profile","default":false},"owner_override_allowed":{"type":"boolean","title":"Owner Override Allowed","default":true},"required_artifact_fields":{"items":{"type":"string"},"type":"array","title":"Required Artifact Fields"},"source_provenance":{"additionalProperties":true,"type":"object","title":"Source Provenance"},"profile_package_resource":{"type":"string","title":"Profile Package Resource"},"profile_hash":{"type":"string","title":"Profile Hash"},"schema_hash":{"type":"string","title":"Schema Hash"},"schema_included":{"type":"boolean","title":"Schema Included","default":false},"include_schema_requested":{"type":"boolean","title":"Include Schema Requested","default":false},"schema_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema Payload"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["schema","contract","schema_profile_key","schema_profile_contract","title","export_kind","adapter_key","schema_ref","authority","status","required_artifact_fields","source_provenance","profile_package_resource","profile_hash","schema_hash","claim_boundary"],"title":"TenantFederalValidationSchemaProfileResponse"},"TenantFederalValidationSchemaProfilesResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"contract":{"type":"string","title":"Contract"},"profile_contract":{"type":"string","title":"Profile Contract"},"profiles":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Profiles"},"profile_count":{"type":"integer","title":"Profile Count"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"official_result_claimed":{"type":"boolean","title":"Official Result Claimed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"This registry exposes Planisphere-pinned dev schema profiles for local preflight validation runs. These profiles are not official NIST OSCAL schemas, DCAT-US schemas, FedRAMP approval, Federal Data Catalog publication approval, agency ATO, bid acceptance, or funding continuity."}},"type":"object","required":["schema","contract","profile_contract","profiles","profile_count"],"title":"TenantFederalValidationSchemaProfilesResponse"},"TenantFleetResponse":{"properties":{"object":{"type":"string","title":"Object","default":"records_fleet"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"systems":{"items":{"$ref":"#/components/schemas/TenantFleetSystem"},"type":"array","title":"Systems"},"truncated":{"type":"boolean","title":"Truncated"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Fleet identity (system, lane, rig) is declared by the tenant's own agents and bound into sealed records — testimony, not verification."}},"type":"object","required":["tenant","generated_at","systems","truncated"],"title":"TenantFleetResponse"},"TenantFleetSystem":{"properties":{"system_id":{"type":"string","title":"System Id"},"records":{"type":"integer","title":"Records"},"expired_records":{"type":"integer","title":"Expired Records"},"models":{"items":{"type":"string"},"type":"array","title":"Models"},"apps":{"items":{"type":"string"},"type":"array","title":"Apps"},"lanes":{"items":{"type":"string"},"type":"array","title":"Lanes"},"first_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Recorded At"},"last_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Recorded At"}},"type":"object","required":["system_id","records","expired_records","models","apps","lanes"],"title":"TenantFleetSystem"},"TenantIntegrationChannelOption":{"properties":{"channel":{"type":"string","title":"Channel"},"status":{"type":"string","enum":["available","partial","internal"],"title":"Status"},"delivery_kind":{"type":"string","title":"Delivery Kind"},"target_examples":{"items":{"type":"string"},"type":"array","title":"Target Examples"},"required_config_keys":{"items":{"type":"string"},"type":"array","title":"Required Config Keys"},"required_config_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Required Config One Of"},"optional_config_keys":{"items":{"type":"string"},"type":"array","title":"Optional Config Keys"},"requires_secret_ref":{"type":"boolean","title":"Requires Secret Ref"},"tenant_mintable_signing_secret":{"type":"boolean","title":"Tenant Mintable Signing Secret","description":"True when omitting secret_ref makes Planisphere mint a one-time-shown signing secret at registration (webhook channel).","default":false},"secret_ref_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Ref Purpose"},"callback_supported":{"type":"boolean","title":"Callback Supported"},"callback_path_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Path Template"},"review_callback_contract":{"additionalProperties":true,"type":"object","title":"Review Callback Contract"},"setup_steps":{"items":{"type":"string"},"type":"array","title":"Setup Steps"},"operator_preflight_steps":{"items":{"type":"string"},"type":"array","title":"Operator Preflight Steps"},"hosted_oauth_supported":{"type":"boolean","title":"Hosted Oauth Supported","default":false},"provider_state_sync_supported":{"type":"boolean","title":"Provider State Sync Supported","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"raw_secret_material_allowed":{"type":"boolean","title":"Raw Secret Material Allowed","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["channel","status","delivery_kind","target_examples","requires_secret_ref","callback_supported","claim_boundary"],"title":"TenantIntegrationChannelOption"},"TenantIntegrationDeleteResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"integration":{"$ref":"#/components/schemas/TenantIntegrationItem"},"deleted":{"type":"boolean","title":"Deleted","default":true},"secret_material_stored":{"type":"boolean","title":"Secret Material Stored","default":false}},"type":"object","required":["tenant","integration"],"title":"TenantIntegrationDeleteResponse"},"TenantIntegrationDocsPackageResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"package_version":{"type":"string","title":"Package Version"},"source_endpoints":{"items":{"type":"string"},"type":"array","title":"Source Endpoints"},"options":{"$ref":"#/components/schemas/TenantIntegrationOptionsResponse"},"security_policy":{"$ref":"#/components/schemas/TenantIntegrationSecurityPolicyResponse"},"install_manifest":{"$ref":"#/components/schemas/TenantIntegrationInstallManifestResponse"},"readiness":{"$ref":"#/components/schemas/TenantIntegrationsReadinessResponse"},"setup_plan":{"$ref":"#/components/schemas/TenantIntegrationsSetupPlanResponse"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Integration docs package composes existing tenant setup read models for operator and agent handoff. It does not install provider apps, perform hosted OAuth, sync provider state, send external messages, or return raw secrets."}},"type":"object","required":["tenant","package_version","source_endpoints","options","security_policy","install_manifest","readiness","setup_plan"],"title":"TenantIntegrationDocsPackageResponse"},"TenantIntegrationInstallManifestChannel":{"properties":{"channel":{"type":"string","title":"Channel"},"status":{"type":"string","enum":["available","partial","internal"],"title":"Status"},"delivery_kind":{"type":"string","title":"Delivery Kind"},"install_mode":{"type":"string","enum":["manual","internal"],"title":"Install Mode"},"target_examples":{"items":{"type":"string"},"type":"array","title":"Target Examples"},"required_config_keys":{"items":{"type":"string"},"type":"array","title":"Required Config Keys"},"required_config_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Required Config One Of"},"optional_config_keys":{"items":{"type":"string"},"type":"array","title":"Optional Config Keys"},"requires_secret_ref":{"type":"boolean","title":"Requires Secret Ref"},"secret_ref_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Ref Purpose"},"accepted_secret_ref_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Secret Ref Schemes"},"required_provider_capabilities":{"items":{"type":"string"},"type":"array","title":"Required Provider Capabilities"},"callback_supported":{"type":"boolean","title":"Callback Supported"},"callback_path_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Path Template"},"callback_url_example":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Url Example"},"review_callback_contract":{"additionalProperties":true,"type":"object","title":"Review Callback Contract"},"setup_steps":{"items":{"type":"string"},"type":"array","title":"Setup Steps"},"operator_preflight_steps":{"items":{"type":"string"},"type":"array","title":"Operator Preflight Steps"},"hosted_oauth_supported":{"type":"boolean","title":"Hosted Oauth Supported","default":false},"provider_state_sync_supported":{"type":"boolean","title":"Provider State Sync Supported","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"raw_secret_material_allowed":{"type":"boolean","title":"Raw Secret Material Allowed","default":false},"secret_material_returned":{"type":"boolean","title":"Secret Material Returned","default":false},"least_privilege_note":{"type":"string","title":"Least Privilege Note"},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["channel","status","delivery_kind","install_mode","target_examples","requires_secret_ref","callback_supported","least_privilege_note","claim_boundary"],"title":"TenantIntegrationInstallManifestChannel"},"TenantIntegrationInstallManifestResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"manifest_version":{"type":"string","title":"Manifest Version"},"route_format":{"type":"string","title":"Route Format","default":"channel:target"},"install_mode":{"type":"string","const":"manual","title":"Install Mode","default":"manual"},"supported_secret_ref_schemes":{"items":{"type":"string"},"type":"array","title":"Supported Secret Ref Schemes"},"cloud_provider_assumptions":{"items":{"type":"string"},"type":"array","title":"Cloud Provider Assumptions"},"server_side_ip_boundary":{"type":"string","title":"Server Side Ip Boundary"},"operator_control_boundary":{"type":"string","title":"Operator Control Boundary"},"channels":{"items":{"$ref":"#/components/schemas/TenantIntegrationInstallManifestChannel"},"type":"array","title":"Channels"},"raw_secret_material_allowed":{"type":"boolean","title":"Raw Secret Material Allowed","default":false},"secret_material_returned":{"type":"boolean","title":"Secret Material Returned","default":false},"hosted_oauth_supported":{"type":"boolean","title":"Hosted Oauth Supported","default":false},"provider_state_sync_supported":{"type":"boolean","title":"Provider State Sync Supported","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Integration install manifest consolidates setup metadata for tenant wiring. It does not install provider apps, provision IAM/RBAC, perform hosted OAuth, sync provider state, send external messages, or return raw secrets."}},"type":"object","required":["tenant","manifest_version","supported_secret_ref_schemes","server_side_ip_boundary","operator_control_boundary","channels"],"title":"TenantIntegrationInstallManifestResponse"},"TenantIntegrationItem":{"properties":{"tenant":{"type":"string","title":"Tenant"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"enabled":{"type":"boolean","title":"Enabled"},"configured":{"type":"boolean","title":"Configured"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"secret_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Ref"},"secret_material_stored":{"type":"boolean","title":"Secret Material Stored","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["tenant","channel","target","enabled","configured","config","secret_ref","created_at","updated_at"],"title":"TenantIntegrationItem"},"TenantIntegrationOptionsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"route_format":{"type":"string","title":"Route Format","default":"channel:target"},"route_examples":{"items":{"type":"string"},"type":"array","title":"Route Examples"},"supported_secret_ref_schemes":{"items":{"type":"string"},"type":"array","title":"Supported Secret Ref Schemes"},"supported_channels":{"items":{"$ref":"#/components/schemas/TenantIntegrationChannelOption"},"type":"array","title":"Supported Channels"},"raw_secret_material_allowed":{"type":"boolean","title":"Raw Secret Material Allowed","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Integration options describe tenant wiring metadata only. Raw secret material must not be sent to these routes; store secret references server-side. Hosted API routes prepare delivery payloads, while live external sends remain explicit operator actions."}},"type":"object","required":["tenant","route_examples","supported_secret_ref_schemes","supported_channels"],"title":"TenantIntegrationOptionsResponse"},"TenantIntegrationProviderWalkthroughDispatchSummary":{"properties":{"dispatch_key":{"type":"string","title":"Dispatch Key"},"href":{"type":"string","title":"Href"},"action_key":{"type":"string","title":"Action Key"},"action_type":{"type":"string","title":"Action Type"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"status":{"type":"string","title":"Status"},"delivery_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Kind"},"callback_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Path"},"evidence_packet_href":{"type":"string","title":"Evidence Packet Href"},"review_controls_present":{"type":"boolean","title":"Review Controls Present","default":false},"modal_view_present":{"type":"boolean","title":"Modal View Present","default":false},"provider_native_shapes":{"items":{"type":"string"},"type":"array","title":"Provider Native Shapes"},"active_manifest_item":{"additionalProperties":true,"type":"object","title":"Active Manifest Item"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false}},"type":"object","required":["dispatch_key","href","action_key","action_type","channel","target","status","evidence_packet_href"],"title":"TenantIntegrationProviderWalkthroughDispatchSummary"},"TenantIntegrationProviderWalkthroughResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"package_version":{"type":"string","title":"Package Version"},"source_endpoints":{"items":{"type":"string"},"type":"array","title":"Source Endpoints"},"setup_summary":{"$ref":"#/components/schemas/TenantIntegrationProviderWalkthroughSetupSummary"},"latest_provider_dispatch":{"anyOf":[{"$ref":"#/components/schemas/TenantIntegrationProviderWalkthroughDispatchSummary"},{"type":"null"}]},"latest_review":{"anyOf":[{"$ref":"#/components/schemas/TenantIntegrationProviderWalkthroughReviewSummary"},{"type":"null"}]},"steps":{"items":{"$ref":"#/components/schemas/TenantIntegrationProviderWalkthroughStep"},"type":"array","title":"Steps"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"live_external_send_attempted":{"type":"boolean","title":"Live External Send Attempted","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Provider walkthrough composes existing tenant setup, routing, callback, evidence, and mirror-verification read models. It does not install provider apps, perform hosted OAuth, sync provider state, send external messages, prove provider-side delivery, determine legality, certify compliance, or return raw secrets."}},"type":"object","required":["tenant","package_version","source_endpoints","setup_summary","steps"],"title":"TenantIntegrationProviderWalkthroughResponse"},"TenantIntegrationProviderWalkthroughReviewSummary":{"properties":{"receipt_key":{"type":"string","title":"Receipt Key"},"decision":{"type":"string","title":"Decision"},"reviewer":{"type":"string","title":"Reviewer"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"mirror_seal_present":{"type":"boolean","title":"Mirror Seal Present","default":false},"mirror_stamp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mirror Stamp Id"},"mirror_verifier_endpoint":{"type":"string","title":"Mirror Verifier Endpoint","default":"/law/verify-mirror-seal"},"evidence_packet_href":{"type":"string","title":"Evidence Packet Href"},"reason_present":{"type":"boolean","title":"Reason Present","default":false},"reason_included":{"type":"boolean","title":"Reason Included","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"mirror_grades_stored":{"type":"boolean","title":"Mirror Grades Stored","default":false}},"type":"object","required":["receipt_key","decision","reviewer","evidence_packet_href"],"title":"TenantIntegrationProviderWalkthroughReviewSummary"},"TenantIntegrationProviderWalkthroughSetupSummary":{"properties":{"setup_item_count":{"type":"integer","title":"Setup Item Count"},"action_required_count":{"type":"integer","title":"Action Required Count"},"ready_for_operator_send_count":{"type":"integer","title":"Ready For Operator Send Count"},"ready_route_count":{"type":"integer","title":"Ready Route Count"}},"type":"object","required":["setup_item_count","action_required_count","ready_for_operator_send_count","ready_route_count"],"title":"TenantIntegrationProviderWalkthroughSetupSummary"},"TenantIntegrationProviderWalkthroughStep":{"properties":{"stage":{"type":"string","enum":["tenant_setup","delivery_preview","callback_fixture","evidence_packet","mirror_seal_verification"],"title":"Stage"},"status":{"type":"string","enum":["blocked","pending","available","complete"],"title":"Status"},"method":{"type":"string","title":"Method"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint"},"summary":{"type":"string","title":"Summary"},"next_action":{"type":"string","title":"Next Action"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"live_external_send_attempted":{"type":"boolean","title":"Live External Send Attempted","default":false}},"type":"object","required":["stage","status","method","summary","next_action"],"title":"TenantIntegrationProviderWalkthroughStep"},"TenantIntegrationReadinessItem":{"properties":{"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"supported":{"type":"boolean","title":"Supported"},"enabled":{"type":"boolean","title":"Enabled"},"configured":{"type":"boolean","title":"Configured"},"status":{"type":"string","enum":["ready","disabled","incomplete","secret_unresolved","unsupported"],"title":"Status"},"ready_for_route":{"type":"boolean","title":"Ready For Route"},"ready_for_operator_send":{"type":"boolean","title":"Ready For Operator Send"},"missing_config_keys":{"items":{"type":"string"},"type":"array","title":"Missing Config Keys"},"missing_config_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Missing Config One Of"},"missing_secret_ref":{"type":"boolean","title":"Missing Secret Ref","default":false},"secret_required":{"type":"boolean","title":"Secret Required"},"secret_ref_present":{"type":"boolean","title":"Secret Ref Present"},"secret_resolved":{"type":"boolean","title":"Secret Resolved","default":false},"secret_provider":{"type":"string","title":"Secret Provider","default":"none"},"secret_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Error"},"secret_lookup":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Lookup"},"secret_material_returned":{"type":"boolean","title":"Secret Material Returned","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"raw_secret_material_stored":{"type":"boolean","title":"Raw Secret Material Stored","default":false}},"type":"object","required":["channel","target","supported","enabled","configured","status","ready_for_route","ready_for_operator_send","secret_required","secret_ref_present"],"title":"TenantIntegrationReadinessItem"},"TenantIntegrationSecurityPolicyChannel":{"properties":{"channel":{"type":"string","title":"Channel"},"delivery_kind":{"type":"string","title":"Delivery Kind"},"requires_secret_ref":{"type":"boolean","title":"Requires Secret Ref"},"credential_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Purpose"},"required_provider_capabilities":{"items":{"type":"string"},"type":"array","title":"Required Provider Capabilities"},"accepted_secret_ref_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Secret Ref Schemes"},"raw_secret_material_allowed":{"type":"boolean","title":"Raw Secret Material Allowed","default":false},"secret_material_returned":{"type":"boolean","title":"Secret Material Returned","default":false},"callback_supported":{"type":"boolean","title":"Callback Supported"},"callback_path_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Path Template"},"review_callback_contract":{"additionalProperties":true,"type":"object","title":"Review Callback Contract"},"hosted_oauth_supported":{"type":"boolean","title":"Hosted Oauth Supported","default":false},"provider_state_sync_supported":{"type":"boolean","title":"Provider State Sync Supported","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"least_privilege_note":{"type":"string","title":"Least Privilege Note"},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["channel","delivery_kind","requires_secret_ref","callback_supported","least_privilege_note","claim_boundary"],"title":"TenantIntegrationSecurityPolicyChannel"},"TenantIntegrationSecurityPolicyResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"accepted_secret_ref_schemes":{"items":{"type":"string"},"type":"array","title":"Accepted Secret Ref Schemes"},"raw_secret_material_allowed":{"type":"boolean","title":"Raw Secret Material Allowed","default":false},"secret_material_returned":{"type":"boolean","title":"Secret Material Returned","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"hosted_oauth_supported":{"type":"boolean","title":"Hosted Oauth Supported","default":false},"provider_state_sync_supported":{"type":"boolean","title":"Provider State Sync Supported","default":false},"cloud_provider_assumptions":{"items":{"type":"string"},"type":"array","title":"Cloud Provider Assumptions"},"server_side_ip_boundary":{"type":"string","title":"Server Side Ip Boundary"},"operator_control_boundary":{"type":"string","title":"Operator Control Boundary"},"channel_policies":{"items":{"$ref":"#/components/schemas/TenantIntegrationSecurityPolicyChannel"},"type":"array","title":"Channel Policies"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Integration security policy is operating guidance for tenant credential setup. It does not install provider apps, provision IAM/RBAC, perform hosted OAuth, sync provider state, send external messages, or return raw secrets."}},"type":"object","required":["tenant","accepted_secret_ref_schemes","server_side_ip_boundary","operator_control_boundary","channel_policies"],"title":"TenantIntegrationSecurityPolicyResponse"},"TenantIntegrationSetupPlanItem":{"properties":{"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"source":{"type":"string","enum":["configured","suggested"],"title":"Source"},"requires_tenant_integration":{"type":"boolean","title":"Requires Tenant Integration"},"configured":{"type":"boolean","title":"Configured"},"enabled":{"type":"boolean","title":"Enabled"},"supported":{"type":"boolean","title":"Supported"},"readiness_status":{"type":"string","title":"Readiness Status"},"next_action":{"type":"string","title":"Next Action"},"action_required":{"type":"boolean","title":"Action Required"},"ready_for_route":{"type":"boolean","title":"Ready For Route"},"ready_for_operator_send":{"type":"boolean","title":"Ready For Operator Send"},"required_config_keys":{"items":{"type":"string"},"type":"array","title":"Required Config Keys"},"required_config_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Required Config One Of"},"missing_config_keys":{"items":{"type":"string"},"type":"array","title":"Missing Config Keys"},"missing_config_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Missing Config One Of"},"secret_required":{"type":"boolean","title":"Secret Required"},"missing_secret_ref":{"type":"boolean","title":"Missing Secret Ref","default":false},"secret_ref_present":{"type":"boolean","title":"Secret Ref Present"},"secret_resolved":{"type":"boolean","title":"Secret Resolved","default":false},"secret_provider":{"type":"string","title":"Secret Provider","default":"none"},"secret_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Error"},"secret_lookup":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Lookup"},"callback_supported":{"type":"boolean","title":"Callback Supported"},"callback_path_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Callback Path Template"},"review_callback_contract":{"additionalProperties":true,"type":"object","title":"Review Callback Contract"},"setup_steps":{"items":{"type":"string"},"type":"array","title":"Setup Steps"},"operator_preflight_steps":{"items":{"type":"string"},"type":"array","title":"Operator Preflight Steps"},"hosted_oauth_supported":{"type":"boolean","title":"Hosted Oauth Supported","default":false},"provider_state_sync_supported":{"type":"boolean","title":"Provider State Sync Supported","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["channel","target","source","requires_tenant_integration","configured","enabled","supported","readiness_status","next_action","action_required","ready_for_route","ready_for_operator_send","secret_required","secret_ref_present","callback_supported","claim_boundary"],"title":"TenantIntegrationSetupPlanItem"},"TenantIntegrationUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"config":{"additionalProperties":true,"type":"object","title":"Config"},"secret_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Ref","description":"Reference to a secret manager entry. Raw secret material is not accepted."},"rotate_signing_secret":{"type":"boolean","title":"Rotate Signing Secret","description":"Webhook channel only: mint and return a fresh one-time-shown signing secret, replacing the previous one. Ignored when a secret_ref is supplied.","default":false}},"type":"object","title":"TenantIntegrationUpdate"},"TenantIntegrationUpsertResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"channel":{"type":"string","title":"Channel"},"target":{"type":"string","title":"Target"},"enabled":{"type":"boolean","title":"Enabled"},"configured":{"type":"boolean","title":"Configured"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"secret_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Ref"},"secret_material_stored":{"type":"boolean","title":"Secret Material Stored","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"signing_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signing Secret","description":"One-time-shown webhook signing secret (whsec_…). Shown only on the minting response; store it now."},"signing_secret_returned_once":{"type":"boolean","title":"Signing Secret Returned Once","default":false},"signing_secret_configured":{"type":"boolean","title":"Signing Secret Configured","default":false},"signing_key_derivation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signing Key Derivation","description":"How to derive the HMAC key your receiver verifies with from the shown-once signing secret."},"raw_signing_secret_stored":{"type":"boolean","title":"Raw Signing Secret Stored","default":false}},"type":"object","required":["tenant","channel","target","enabled","configured","config","secret_ref","created_at","updated_at"],"title":"TenantIntegrationUpsertResponse","description":"Upsert response: the integration item plus one-time signing-secret fields.\n\n``signing_secret`` is set ONLY on the response that minted it (webhook\nchannel, no secret_ref). It is never stored raw and never returned again —\nonly its derived signing key is kept server-side. That derived key is the\nsymmetric HMAC signing key itself (usable signing material), not a one-way\nverifier like an API-key hash; tenants who need signing material held in an\nexternal secret manager should register a ``secret_ref`` instead."},"TenantIntegrationsReadinessResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"items":{"items":{"$ref":"#/components/schemas/TenantIntegrationReadinessItem"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count"},"ready_count":{"type":"integer","title":"Ready Count"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Integration readiness resolves secret references into safe metadata only. It does not return raw secrets, send external provider messages, or prove provider-side delivery."}},"type":"object","required":["tenant","items","count","ready_count"],"title":"TenantIntegrationsReadinessResponse"},"TenantIntegrationsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"integrations":{"items":{"$ref":"#/components/schemas/TenantIntegrationItem"},"type":"array","title":"Integrations"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["tenant","integrations","count"],"title":"TenantIntegrationsResponse"},"TenantIntegrationsSetupPlanResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"items":{"items":{"$ref":"#/components/schemas/TenantIntegrationSetupPlanItem"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count"},"action_required_count":{"type":"integer","title":"Action Required Count"},"ready_for_operator_send_count":{"type":"integer","title":"Ready For Operator Send Count"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"live_external_send_operator_only":{"type":"boolean","title":"Live External Send Operator Only","default":true},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Integration setup plan derives operator next actions from supported channels and tenant readiness. It does not install provider apps, perform hosted OAuth, sync provider state, send external messages, or return raw secrets."}},"type":"object","required":["tenant","items","count","action_required_count","ready_for_operator_send_count"],"title":"TenantIntegrationsSetupPlanResponse"},"TenantMeResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active"},"policy":{"additionalProperties":true,"type":"object","title":"Policy"}},"type":"object","required":["tenant","name","active","policy"],"title":"TenantMeResponse"},"TenantPolicyActionOption":{"properties":{"action_type":{"type":"string","title":"Action Type"},"default_decision":{"type":"string","title":"Default Decision"},"decisions":{"items":{"type":"string"},"type":"array","title":"Decisions"},"route_default":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Default"},"tenant_allowlist_can_allow":{"type":"boolean","title":"Tenant Allowlist Can Allow","default":false},"evidence_fields":{"items":{"type":"string"},"type":"array","title":"Evidence Fields"}},"type":"object","required":["action_type","default_decision","decisions"],"title":"TenantPolicyActionOption"},"TenantPolicyDiffResponse":{"properties":{"added":{"additionalProperties":true,"type":"object","title":"Added"},"removed":{"additionalProperties":true,"type":"object","title":"Removed"},"changed":{"additionalProperties":true,"type":"object","title":"Changed"},"unchanged":{"additionalProperties":true,"type":"object","title":"Unchanged"}},"type":"object","title":"TenantPolicyDiffResponse"},"TenantPolicyOptionsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"policy_pack":{"type":"string","title":"Policy Pack"},"supported_action_types":{"items":{"$ref":"#/components/schemas/TenantPolicyActionOption"},"type":"array","title":"Supported Action Types"},"default_review_action_types":{"items":{"type":"string"},"type":"array","title":"Default Review Action Types"},"default_review_routes":{"additionalProperties":{"type":"string"},"type":"object","title":"Default Review Routes"}},"type":"object","required":["tenant","policy_pack","supported_action_types","default_review_action_types","default_review_routes"],"title":"TenantPolicyOptionsResponse"},"TenantPolicyPreviewResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"policy_pack":{"type":"string","title":"Policy Pack","default":"law/default-us-legal-ai-supervision"},"current_policy":{"additionalProperties":true,"type":"object","title":"Current Policy"},"proposed_policy":{"additionalProperties":true,"type":"object","title":"Proposed Policy"},"diff":{"$ref":"#/components/schemas/TenantPolicyDiffResponse"},"current_policy_hash":{"type":"string","title":"Current Policy Hash"},"proposed_policy_hash":{"type":"string","title":"Proposed Policy Hash"},"mutation_applied":{"type":"boolean","title":"Mutation Applied","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Policy preview validates and compares tenant overlay metadata only. It does not mutate tenant policy, certify compliance, inspect raw prompt/document content, or replace owner review."}},"type":"object","required":["tenant","current_policy","proposed_policy","diff","current_policy_hash","proposed_policy_hash"],"title":"TenantPolicyPreviewResponse"},"TenantPolicyReceiptItem":{"properties":{"receipt_key":{"type":"string","title":"Receipt Key"},"tenant":{"type":"string","title":"Tenant"},"policy_pack":{"type":"string","title":"Policy Pack"},"current_policy_hash":{"type":"string","title":"Current Policy Hash"},"proposed_policy_hash":{"type":"string","title":"Proposed Policy Hash"},"diff":{"$ref":"#/components/schemas/TenantPolicyDiffResponse"},"policy_changed":{"type":"boolean","title":"Policy Changed"},"mutation_applied":{"type":"boolean","title":"Mutation Applied","default":true},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"created_at":{"type":"string","title":"Created At"},"href":{"type":"string","title":"Href","default":"/tenant/policy/receipts"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Policy receipts record tenant overlay metadata, hashes, and diffs after a successful policy write. They do not store raw prompt/document content, certify compliance, or replace owner review."}},"type":"object","required":["receipt_key","tenant","policy_pack","current_policy_hash","proposed_policy_hash","diff","policy_changed","created_at"],"title":"TenantPolicyReceiptItem"},"TenantPolicyReceiptsResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"policy_pack":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Policy Pack"},"count":{"type":"integer","title":"Count"},"receipts":{"items":{"$ref":"#/components/schemas/TenantPolicyReceiptItem"},"type":"array","title":"Receipts"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Policy receipts record tenant overlay metadata, hashes, and diffs after a successful policy write. They do not store raw prompt/document content, certify compliance, or replace owner review."}},"type":"object","required":["tenant","count","receipts"],"title":"TenantPolicyReceiptsResponse"},"TenantPolicyResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"policy_pack":{"type":"string","title":"Policy Pack","default":"law/default-us-legal-ai-supervision"},"policy":{"additionalProperties":true,"type":"object","title":"Policy"},"policy_receipt":{"anyOf":[{"$ref":"#/components/schemas/TenantPolicyReceiptItem"},{"type":"null"}]}},"type":"object","required":["tenant","policy"],"title":"TenantPolicyResponse"},"TenantPolicyUpdate":{"properties":{"allowed_action_types":{"items":{"type":"string"},"type":"array","title":"Allowed Action Types"},"denied_action_types":{"items":{"type":"string"},"type":"array","title":"Denied Action Types"},"require_review_action_types":{"items":{"type":"string"},"type":"array","title":"Require Review Action Types"},"review_routes":{"additionalProperties":{"type":"string"},"type":"object","title":"Review Routes"}},"type":"object","title":"TenantPolicyUpdate"},"TenantRecordsAttestationKey":{"properties":{"key":{"type":"string","title":"Key"},"retained":{"type":"integer","title":"Retained","description":"Records where this declared value is stored and readable."},"committed":{"type":"integer","title":"Committed","description":"Records where only the hash commitment of the value is stored."}},"type":"object","required":["key","retained","committed"],"title":"TenantRecordsAttestationKey"},"TenantRecordsAttestationPack":{"properties":{"pack":{"type":"string","title":"Pack"},"records":{"type":"integer","title":"Records"},"declared_keys":{"items":{"$ref":"#/components/schemas/TenantRecordsAttestationKey"},"type":"array","title":"Declared Keys"},"expired_records":{"type":"integer","title":"Expired Records"},"disposals":{"type":"integer","title":"Disposals"},"disposal_reasons":{"additionalProperties":{"type":"integer"},"type":"object","title":"Disposal Reasons","description":"Retained disposal reasons and their counts."},"disposal_reasons_committed_only":{"type":"integer","title":"Disposal Reasons Committed Only"}},"type":"object","required":["pack","records","declared_keys","expired_records","disposals","disposal_reasons","disposal_reasons_committed_only"],"title":"TenantRecordsAttestationPack"},"TenantRecordsAttestationsResponse":{"properties":{"object":{"type":"string","title":"Object","default":"records_attestations"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"recorded_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded From"},"recorded_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded To"},"retention_posture":{"type":"boolean","title":"Retention Posture","description":"Whether declared metadata values are currently retained for this tenant."},"packs":{"items":{"$ref":"#/components/schemas/TenantRecordsAttestationPack"},"type":"array","title":"Packs"},"truncated":{"type":"boolean","title":"Truncated"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Attestations are declared by the tenant and bound into sealed records — timestamped and tamper-evident, not verified by Planisphere."}},"type":"object","required":["tenant","generated_at","retention_posture","packs","truncated"],"title":"TenantRecordsAttestationsResponse"},"TenantRecordsByKeyResponse":{"properties":{"object":{"type":"string","const":"records_by_seal_key","title":"Object","default":"records_by_seal_key"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"keys":{"items":{"$ref":"#/components/schemas/SealKeyRow"},"type":"array","title":"Keys"},"records_without_a_seal_key":{"type":"integer","title":"Records Without A Seal Key","description":"Records whose stored response carried no seal to read a key from.","default":0},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Which signing key minted each record, read from the seal stored at mint. It reports attribution, not validity: a record minted under a retired key remains authentic, and this report is not a verification. Verify any individual receipt with POST /v1/verify."}},"type":"object","required":["tenant","generated_at","keys"],"title":"TenantRecordsByKeyResponse"},"TenantRecordsCoverageResponse":{"properties":{"object":{"type":"string","const":"records_coverage","title":"Object","default":"records_coverage"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"coverage_contract":{"type":"string","title":"Coverage Contract","default":"planisphere.coverage_report/1"},"systems":{"items":{"$ref":"#/components/schemas/SystemCoverageRow"},"type":"array","title":"Systems"},"undeclared_systems":{"items":{"type":"string"},"type":"array","title":"Undeclared Systems","description":"Systems seen in records with no declaration in force."},"records_without_a_system":{"type":"integer","title":"Records Without A System","description":"Sealed records carrying no system_id. Not attributable to a system and therefore excluded from sequence analysis entirely.","default":0},"observes_generation":{"type":"boolean","title":"Observes Generation","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Planisphere observes only what it is sent. Records prove that specific acts were attested at specific times and have not been altered since. Completeness of the record set relative to the operator's actual output volume is an OPERATOR ASSERTION. Planisphere makes that assertion explicit, dated, chained and mechanically reconcilable, and reports every gap it can detect. It does not and cannot observe generation."},"limits":{"items":{"type":"string"},"type":"array","title":"Limits"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false}},"type":"object","required":["tenant","generated_at","systems"],"title":"TenantRecordsCoverageResponse"},"TenantRecordsExpireRequest":{"properties":{"action_keys":{"items":{"type":"string"},"type":"array","maxItems":50,"minItems":1,"title":"Action Keys"},"reason":{"type":"string","maxLength":200,"title":"Reason","default":"operator_burn"}},"type":"object","required":["action_keys"],"title":"TenantRecordsExpireRequest"},"TenantRecordsExpireResponse":{"properties":{"expired":{"items":{"type":"string"},"type":"array","title":"Expired"},"already_expired":{"items":{"type":"string"},"type":"array","title":"Already Expired"},"not_found":{"items":{"type":"string"},"type":"array","title":"Not Found"},"expiry_records":{"items":{"$ref":"#/components/schemas/TenantRecordsExpiryRecord"},"type":"array","title":"Expiry Records"},"metered_actions":{"type":"integer","title":"Metered Actions"}},"type":"object","required":["expired","already_expired","not_found","expiry_records","metered_actions"],"title":"TenantRecordsExpireResponse"},"TenantRecordsExpiryRecord":{"properties":{"pack":{"type":"string","title":"Pack"},"action_key":{"type":"string","title":"Action Key"}},"type":"object","required":["pack","action_key"],"title":"TenantRecordsExpiryRecord"},"TenantRecordsExportItem":{"properties":{"action_key":{"type":"string","title":"Action Key"},"seal_standing":{"type":"string","title":"Seal Standing","description":"'active' or 'expired'. Expired = the tenant sealed a disposal record revoking this receipt's evidentiary endorsement; the row, chain and signature remain and verification reports it expired.","default":"active"},"pack":{"type":"string","title":"Pack"},"action_type":{"type":"string","title":"Action Type"},"decision":{"type":"string","title":"Decision"},"status":{"type":"string","enum":["pending_review","blocked","recorded"],"title":"Status"},"anchored":{"type":"boolean","title":"Anchored","description":"Whether this record is covered by the canonical roll-up: recorded at or before the tenant chain head's latest anchored epoch cut, so an inclusion proof against an anchored root is available now. False means sealed and awaiting the next hourly roll-up.","default":false},"recorded_at":{"type":"string","title":"Recorded At","description":"Server clock at seal time (UTC RFC 3339) — the timestamp the v2 seal commits and the timestamp this export filters and orders by."},"occurred_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Occurred At","description":"Caller clock claim for record-verb events (committed into payload_hash, not asserted by the seal). None for gate actions."},"source_key":{"type":"string","title":"Source Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"review_route":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Route"},"evidence_packet":{"$ref":"#/components/schemas/EvidencePacketStub"},"verify_request":{"additionalProperties":true,"type":"object","title":"Verify Request","description":"Ready-to-POST body for /evidence-packets/verify-seal (raw-safe). The same fields POST to /evidence-packets/seal-bundle for the offline 4-file bundle."},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false}},"type":"object","required":["action_key","pack","action_type","decision","status","recorded_at","source_key","payload_hash","evidence_packet","verify_request"],"title":"TenantRecordsExportItem"},"TenantRecordsExportResponse":{"properties":{"object":{"type":"string","const":"records_export_page","title":"Object","default":"records_export_page"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"recorded_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded From","description":"Inclusive lower bound applied to recorded_at (UTC RFC 3339)."},"recorded_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded To","description":"Exclusive upper bound applied to recorded_at (UTC RFC 3339)."},"range_semantics":{"type":"string","title":"Range Semantics","default":"recorded_from <= recorded_at < recorded_to (half-open)"},"order":{"type":"string","title":"Order","default":"recorded_at ascending, action_key ascending"},"count":{"type":"integer","title":"Count"},"records":{"items":{"$ref":"#/components/schemas/TenantRecordsExportItem"},"type":"array","title":"Records"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque continuation cursor. Present when more records remain in the range; pass it back as ?cursor= to fetch the next page. Each page is self-contained (every record carries its own verify fields), so pages can be streamed to disk as they arrive."},"has_more":{"type":"boolean","title":"Has More","default":false},"verify_endpoint":{"type":"string","title":"Verify Endpoint","default":"/evidence-packets/verify-seal"},"seal_bundle_batch_endpoint":{"type":"string","title":"Seal Bundle Batch Endpoint","default":"/evidence-packets/seal-bundle/batch"},"payload_retention":{"type":"string","title":"Payload Retention","default":"Planisphere stores hash commitments only — retain your payloads to re-prove WHAT was recorded. This export re-proves that each record was sealed, when, and for whom."},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The records export lists sealed routing, review, and record receipts for a time range. It omits raw prompt/document content and free-text review reasons, and it does not certify compliance or determine legality."}},"type":"object","required":["tenant","generated_at","count","records"],"title":"TenantRecordsExportResponse"},"TenantRecordsSummaryEventType":{"properties":{"event_type":{"type":"string","title":"Event Type","description":"The stored action_type — the gate action type or record-verb event type the rows were sealed under."},"total":{"type":"integer","title":"Total"},"by_decision":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Decision","description":"Sealed-row counts per stored decision for this event type."},"last_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Recorded At","description":"Most recent recorded_at among these rows (UTC RFC 3339)."}},"type":"object","required":["event_type","total","by_decision"],"title":"TenantRecordsSummaryEventType"},"TenantRecordsSummaryPack":{"properties":{"pack":{"type":"string","title":"Pack","description":"Pack derived from the action_key prefix over the closed pack vocabulary; action keys outside it bucket to 'other'."},"total_sealed":{"type":"integer","title":"Total Sealed"},"by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Status","description":"Counts keyed by evidence status derived from the STORED decision only (evidence_status_for_decision without review resolution): a needs_review row a reviewer has since resolved still counts as pending_review here. Per-record surfaces (the records export and packet fetch paths) are review-aware."},"first_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Recorded At","description":"Earliest recorded_at in the pack for the range (UTC RFC 3339)."},"last_recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Recorded At","description":"Latest recorded_at in the pack for the range (UTC RFC 3339)."},"event_types":{"items":{"$ref":"#/components/schemas/TenantRecordsSummaryEventType"},"type":"array","title":"Event Types"},"truncated":{"type":"boolean","title":"Truncated","description":"True when the pack had more distinct event types than the event_types list cap; totals above still count every sealed row.","default":false}},"type":"object","required":["pack","total_sealed","by_status","event_types"],"title":"TenantRecordsSummaryPack"},"TenantRecordsSummaryResponse":{"properties":{"object":{"type":"string","const":"records_summary","title":"Object","default":"records_summary"},"tenant":{"type":"string","title":"Tenant"},"generated_at":{"type":"string","title":"Generated At"},"recorded_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded From","description":"Inclusive lower bound applied to recorded_at (UTC RFC 3339)."},"recorded_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded To","description":"Exclusive upper bound applied to recorded_at (UTC RFC 3339)."},"range_semantics":{"type":"string","title":"Range Semantics","default":"recorded_from <= recorded_at < recorded_to (half-open)"},"total_sealed":{"type":"integer","title":"Total Sealed"},"packs":{"items":{"$ref":"#/components/schemas/TenantRecordsSummaryPack"},"type":"array","title":"Packs"},"records_export_endpoint":{"type":"string","title":"Records Export Endpoint","default":"/tenant/exports/records"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The records summary counts sealed receipts for a time range. Statuses derive from stored decisions without review resolution. It omits raw prompt/document content and free-text review reasons, and it does not certify compliance or determine legality."}},"type":"object","required":["tenant","generated_at","total_sealed","packs"],"title":"TenantRecordsSummaryResponse"},"TenantRetentionRuleItem":{"properties":{"pack":{"type":"string","title":"Pack"},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type","description":"None means the rule covers the whole pack."},"lifespan_days":{"type":"integer","title":"Lifespan Days"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["pack","lifespan_days"],"title":"TenantRetentionRuleItem"},"TenantRetentionRuleUpdate":{"properties":{"pack":{"type":"string","title":"Pack"},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"},"lifespan_days":{"anyOf":[{"type":"integer","maximum":36500.0,"minimum":1.0},{"type":"null"}],"title":"Lifespan Days","description":"Days a covered record stands before the sweep expires it; null clears the rule."}},"type":"object","required":["pack"],"title":"TenantRetentionRuleUpdate"},"TenantRetentionRulesResponse":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/TenantRetentionRuleItem"},"type":"array","title":"Rules"},"sweep_reason":{"type":"string","title":"Sweep Reason","description":"The reason stamped on sealed disposals the retention sweep produces (retention_policy)."}},"type":"object","required":["rules","sweep_reason"],"title":"TenantRetentionRulesResponse"},"TenantSampleRecordResponse":{"properties":{"action_key":{"type":"string","title":"Action Key","description":"The sealed sample record's action key."},"pack":{"type":"string","title":"Pack"},"event_type":{"type":"string","title":"Event Type"},"sample":{"type":"boolean","title":"Sample","default":true}},"type":"object","required":["action_key","pack","event_type"],"title":"TenantSampleRecordResponse","description":"A one-click sample seal for onboarding: a real, verifiable receipt the new\nuser can open and verify, without wiring an agent or minting a key first."},"TenantUsageMeterEventItem":{"properties":{"event_id":{"type":"string","title":"Event Id"},"action_key":{"type":"string","title":"Action Key"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"meter_event_name":{"type":"string","title":"Meter Event Name"},"usage_unit":{"type":"string","title":"Usage Unit"},"meter_value":{"type":"integer","title":"Meter Value"},"source_stamp_id":{"type":"string","title":"Source Stamp Id"},"source_attestation_root":{"type":"string","title":"Source Attestation Root"},"idempotency_key":{"type":"string","title":"Idempotency Key"},"stripe_event_identifier":{"type":"string","title":"Stripe Event Identifier"},"stripe_customer_id_present":{"type":"boolean","title":"Stripe Customer Id Present","default":false},"status":{"type":"string","enum":["pending_customer","pending_emit","emitted","failed","disabled"],"title":"Status"},"emission_attempt_count":{"type":"integer","title":"Emission Attempt Count","default":0},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"emitted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emitted At"},"price_applied":{"type":"boolean","title":"Price Applied","default":false},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"raw_secret_material_stored":{"type":"boolean","title":"Raw Secret Material Stored","default":false},"raw_api_key_stored":{"type":"boolean","title":"Raw Api Key Stored","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["event_id","action_key","meter_event_name","usage_unit","meter_value","source_stamp_id","source_attestation_root","idempotency_key","stripe_event_identifier","status"],"title":"TenantUsageMeterEventItem"},"TenantUsageResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"sandbox":{"type":"boolean","title":"Sandbox"},"actions_used":{"type":"integer","title":"Actions Used","description":"Sealed actions recorded on the usage meter ledger."},"action_cap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Action Cap","description":"Free sandbox cap on sealed actions; null for uncapped production tenants."},"remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Remaining","description":"Sealed actions left before the cap; null when uncapped."},"cap_status":{"type":"string","enum":["uncapped","ok","warning","reached"],"title":"Cap Status","default":"uncapped"},"free_tier_monthly":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Tier Monthly","description":"Production monthly free allowance, read live from the Stripe price's first $0 graduated tier (dashboard is the source of truth). Null when Stripe is unavailable."},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning","description":"Set when usage nears or reaches the sandbox cap."},"warning_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Warning Threshold","description":"Used-actions count at which the near-cap warning starts."},"meter_events_summary":{"additionalProperties":true,"type":"object","title":"Meter Events Summary"},"held_records":{"type":"integer","title":"Held Records","description":"Records this tenant is keeping live (active seal standing, disposals excluded). The keep-meter base — expiring a record drops it out of this count.","default":0},"keep_meter_enabled":{"type":"boolean","title":"Keep Meter Enabled","description":"Whether keeping records is metered monthly (the keep charge).","default":false},"keep_credits_monthly":{"type":"integer","title":"Keep Credits Monthly","description":"Credits accrued each month for keeping held_records live, into the same meter and free tier as creates. Zero when the keep-meter is off.","default":0},"upgrade_href":{"type":"string","title":"Upgrade Href","default":"/console#/keys"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Usage reports metered sealed actions for this tenant. It does not change billing state, certify compliance, or alter recorded evidence."}},"type":"object","required":["tenant","sandbox","actions_used"],"title":"TenantUsageResponse"},"TenantWebhookDeliveriesResponse":{"properties":{"tenant":{"type":"string","title":"Tenant"},"target":{"type":"string","title":"Target"},"items":{"items":{"$ref":"#/components/schemas/TenantWebhookDeliveryItem"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count"},"total_count":{"type":"integer","title":"Total Count"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"status_filter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Filter"},"raw_secret_material_returned":{"type":"boolean","title":"Raw Secret Material Returned","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Delivery records report Planisphere's outbound webhook attempts and HTTP outcomes. A delivered status is a 2xx from the configured endpoint, not proof the receiver processed the event."}},"type":"object","required":["tenant","target","items","count","total_count","limit","offset"],"title":"TenantWebhookDeliveriesResponse"},"TenantWebhookDeliveryItem":{"properties":{"delivery_id":{"type":"string","title":"Delivery Id"},"event":{"type":"string","title":"Event"},"event_id":{"type":"string","title":"Event Id"},"target":{"type":"string","title":"Target"},"status":{"type":"string","enum":["pending","delivered","failed"],"title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count","default":0},"last_attempt_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Attempt At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["delivery_id","event","event_id","target","status"],"title":"TenantWebhookDeliveryItem"},"TrustEpochItem":{"properties":{"epoch_id":{"type":"string","title":"Epoch Id"},"epoch_seq":{"type":"integer","title":"Epoch Seq"},"canonical_root":{"type":"string","title":"Canonical Root"},"members_digest":{"type":"string","title":"Members Digest"},"n_members":{"type":"integer","title":"N Members"},"prev_epoch_digest":{"type":"string","title":"Prev Epoch Digest"},"epoch_digest":{"type":"string","title":"Epoch Digest"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["epoch_id","epoch_seq","canonical_root","members_digest","n_members","prev_epoch_digest","epoch_digest"],"title":"TrustEpochItem"},"TrustEpochsResponse":{"properties":{"object":{"type":"string","title":"Object","default":"trust_epochs"},"rollup_cadence":{"type":"string","title":"Rollup Cadence","default":"hourly"},"epochs":{"items":{"$ref":"#/components/schemas/TrustEpochItem"},"type":"array","title":"Epochs"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Each epoch is SHA-pinned: its digest commits to its content and the previous epoch's digest, back to genesis. Digests, roots and counts only — member identities never appear on this surface."}},"type":"object","required":["epochs"],"title":"TrustEpochsResponse"},"TrustRecordAnchor":{"properties":{"epoch_seq":{"type":"integer","title":"Epoch Seq"},"canonical_root":{"type":"string","title":"Canonical Root"},"epoch_digest":{"type":"string","title":"Epoch Digest"},"anchored_at":{"type":"string","title":"Anchored At"}},"type":"object","required":["epoch_seq","canonical_root","epoch_digest","anchored_at"],"title":"TrustRecordAnchor"},"TrustRecordResponse":{"properties":{"object":{"type":"string","title":"Object","default":"trust_record"},"action_key":{"type":"string","title":"Action Key"},"exists":{"type":"boolean","title":"Exists"},"seal_standing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seal Standing"},"standing_notice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Standing Notice"},"expired_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expired At"},"expiry_action_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expiry Action Key"},"anchor":{"anyOf":[{"$ref":"#/components/schemas/TrustRecordAnchor"},{"type":"null"}]},"tenant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant","description":"Named only when the operator opted into public proof disclosure; null otherwise."},"disclosure":{"type":"string","title":"Disclosure","description":"pin_only, or opted_in when the operator discloses more.","default":"pin_only"},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The registry answers existence, standing, and the SHA pin of the epoch that anchors this record. Everything richer is the operator's to disclose, never Planisphere's."}},"type":"object","required":["action_key","exists"],"title":"TrustRecordResponse"},"V1GateRequest":{"properties":{"pack":{"type":"string","enum":["law","defense","medicine","education","us-regulatory","eu-ai-act","ca-sb942","cn-ai-labelling","in-it-rules","kr-ai-framework","ai-provenance"],"title":"Pack","description":"Policy pack to gate against (replaces the legacy path prefix).","examples":["defense","law"]}},"additionalProperties":true,"type":"object","required":["pack"],"title":"V1GateRequest","description":"Body for POST /v1/gate.\n\nCarries the policy ``pack`` plus the same action fields the legacy\n``/{vertical}/proposed-action`` endpoints accept. Extra action fields are\npermitted and forwarded to the underlying request model, which performs the\nsame validation as the legacy route."},"V1RecordBatchResponse":{"properties":{"object":{"type":"string","const":"record_batch","title":"Object","default":"record_batch"},"tenant":{"type":"string","title":"Tenant"},"count":{"type":"integer","title":"Count"},"results":{"items":{"$ref":"#/components/schemas/V1RecordResponse"},"type":"array","title":"Results"},"payload_retention":{"type":"string","title":"Payload Retention","default":"Planisphere stores hash commitments only — retain your payload to re-prove WHAT was recorded."},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false}},"type":"object","required":["tenant","count","results"],"title":"V1RecordBatchResponse"},"V1RecordInclusionProofResponse":{"properties":{"object":{"type":"string","const":"record_inclusion_proof","title":"Object","default":"record_inclusion_proof"},"tenant":{"type":"string","title":"Tenant"},"action_key":{"type":"string","title":"Action Key"},"record":{"additionalProperties":true,"type":"object","title":"Record","description":"Where this record sits in the proof: its attestation_root, its tenant-chain link (seq/link_digest), and the epoch that anchors it."},"bundle":{"additionalProperties":true,"type":"object","title":"Bundle","description":"The canonical two-level inclusion bundle, verbatim. Offline-verifiable: outer Merkle proof binds the tenant chain head into canonical_root; inner_chain re-derives the tenant chain up to that head, which must contain this record's attestation_root."},"verify":{"additionalProperties":true,"type":"object","title":"Verify","description":"Server-side run of the same offline verifier (canonical_chain.verify_inclusion_bundle) over `bundle`: {ok, outer_ok, inner_ok, root_ok, reason}."},"verify_with":{"type":"string","title":"Verify With"},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"The inclusion proof shows this sealed record's attestation root was committed into the tenant evidence chain and rolled up into Planisphere's canonical root. It is an integrity record, not external notarization, a legal determination, or a compliance certification."}},"type":"object","required":["tenant","action_key","record","bundle","verify","verify_with"],"title":"V1RecordInclusionProofResponse"},"V1RecordRequest":{"properties":{"pack":{"type":"string","enum":["law","defense","medicine","education","us-regulatory","eu-ai-act","ca-sb942","cn-ai-labelling","in-it-rules","kr-ai-framework","ai-provenance"],"title":"Pack","description":"Policy pack the completed act is recorded under.","examples":["law","us-regulatory"]},"system_id":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"System Id","description":"The system whose duty this act discharges. Supply it together with system_seq when one act per output must be distinguishable from the next: both are committed into payload_hash, so two genuinely distinct acts can no longer derive the same action_key and silently collapse into one record.","examples":["imagegen-eu-prod"]},"sequence_binding":{"type":"boolean","title":"Sequence Binding","description":"system_declared only: when true, subsequent records for this system must carry system_seq. Enforcement is switched on by the operator's own declaration rather than by Planisphere, so no existing integrator is broken by a deploy — and a record that violates the declaration becomes a detectable, sealed event.","default":false},"supersedes":{"anyOf":[{"type":"string","maxLength":180},{"type":"null"}],"title":"Supersedes","description":"system_declared only: action_key of the declaration this one replaces. The superseded declaration stays in the record chain."},"starts_from_action_key":{"anyOf":[{"type":"string","maxLength":180},{"type":"null"}],"title":"Starts From Action Key","description":"action_key of the record that started a statutory clock for this act — a takedown notice, for example. When the pack declares a deadline for this event type, the elapsed interval and whether it fell inside the window are computed server-side and sealed with the record."},"system_seq":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"System Seq","description":"Monotonic per-system sequence number for this act. Requires system_id. Gaps in the sequence are what later make an incomplete record set visible; without it, an omitted record leaves no trace.","examples":[10432]},"event_type":{"type":"string","maxLength":120,"minLength":1,"title":"Event Type","description":"Event type of the completed act. Event types registered on the pack for the record verb (e.g. the eu-ai-act and ca-sb942 duty vocabularies) are valid by default; any other event type is rejected 422 with the pack's registered record vocabulary unless allow_unregistered:true is set, in which case it seals flagged event_registered=false with a prominent unregistered_event notice. Gate-vocabulary event types whose contract only ever blocks are always rejected — a completed act cannot be attested across a hard-block boundary.","examples":["output_marked","latent_disclosure_embedded"]},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At","description":"Caller clock (RFC 3339) for when the act occurred. This is the caller's own claim, committed into payload_hash; the seal's recorded_at is the server clock at seal time. Must not be in the future — a completed act cannot occur after its record is sealed.","examples":["2026-07-22T17:03:11Z"]},"source_payload":{"additionalProperties":{"type":"string"},"type":"object","title":"Source Payload","description":"Hash commitments for the recorded payload (e.g. content_sha256, manifest_sha256). Values must be digests — optionally prefixed with an algorithm label — never raw content. Planisphere stores hash commitments only — retain your payload to re-prove WHAT was recorded.","examples":[{"content_sha256":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","manifest_sha256":"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"}]},"regime_refs":{"items":{"type":"string"},"type":"array","title":"Regime Refs","description":"Optional regime/authority anchors for the evidence record. When omitted for a registered record event, defaults to the pack's declared regimes (e.g. 'EU AI Act Art. 50')."},"allow_unregistered":{"type":"boolean","title":"Allow Unregistered","description":"Explicit opt-in to seal an event_type that is not registered on the pack for the record verb. Without it, unregistered event types are rejected 422 (listing the pack's registered record vocabulary). With it, the record seals flagged event_registered=false and carries a prominent unregistered_event notice in the response and stored packet metadata.","default":false},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Optional caller metadata. Committed into payload_hash; only key names and a canonical hash are stored, never the raw values."}},"type":"object","required":["pack","event_type","occurred_at"],"title":"V1RecordRequest","description":"Body for POST /v1/record (and each item of POST /v1/record/batch)."},"V1RecordResponse":{"properties":{"object":{"type":"string","const":"record","title":"Object","default":"record"},"tenant":{"type":"string","title":"Tenant"},"pack":{"type":"string","enum":["law","defense","medicine","education","us-regulatory","eu-ai-act","ca-sb942","cn-ai-labelling","in-it-rules","kr-ai-framework","ai-provenance"],"title":"Pack"},"policy_pack":{"type":"string","title":"Policy Pack"},"event_type":{"type":"string","title":"Event Type"},"event_registered":{"type":"boolean","title":"Event Registered","description":"Whether the event type is registered on the pack FOR THE RECORD VERB. Registered record event types are valid by default. False for unregistered event types AND for gate-vocabulary event types (permission events recorded here were never gated or reviewed) — neither should be presented as pack-vocabulary completed-act claims."},"status":{"type":"string","const":"recorded","title":"Status","default":"recorded"},"workflow_stage":{"type":"string","const":"recorded","title":"Workflow Stage","default":"recorded"},"action_key":{"type":"string","title":"Action Key"},"source_key":{"type":"string","title":"Source Key"},"payload_hash":{"type":"string","title":"Payload Hash"},"system_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Id"},"system_seq":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"System Seq"},"retained_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Retained Metadata","description":"Declared statutory metadata values kept for this record. Present only for keys the pack marks retainable AND when the tenant has retention enabled. Keys identifying a natural person are never retainable."},"redacted_metadata_keys":{"items":{"type":"string"},"type":"array","title":"Redacted Metadata Keys","description":"Metadata keys whose values were hashed and discarded — the default. Their commitments are still in metadata_commitment_root."},"deadline":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Deadline","description":"Elapsed interval against a statutory window, computed from this record and the one named by starts_from_action_key, and sealed with the record. Evidence that the operator's own account is internally consistent with the window — not observation of when the act occurred."},"policy_ref":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Policy Ref","description":"Which pack policy governed this record: pack id, pack version, and a hash over the policy's normative content. Answers 'which policy was in force when this was recorded?' — a pack NAME alone cannot."},"metadata_commitment_root":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata Commitment Root","description":"Merkle root over one commitment per metadata key, so a single retained value can be proven against the record on its own, and the key set cannot be edited after the fact."},"first_recorded":{"type":"boolean","title":"First Recorded","description":"False when this request matched a record already sealed under the same action_key rather than minting a new one. Two distinct acts that commit identical fields derive the same action_key and are indistinguishable to Planisphere; this flag is what makes that collapse visible instead of silent. Supply system_id and system_seq to keep distinct acts distinct.","default":true},"occurred_at":{"type":"string","title":"Occurred At","description":"Caller clock claim (normalized to UTC RFC 3339)."},"recorded_at":{"type":"string","title":"Recorded At","description":"Server clock at seal time (UTC RFC 3339) — committed into the signed attestation content, distinct from occurred_at."},"regime_refs":{"items":{"type":"string"},"type":"array","title":"Regime Refs","description":"Regime/authority anchors committed into payload_hash. Registered pack events default to the pack's declared regimes when the caller supplies none."},"source_payload_commitments":{"additionalProperties":{"type":"string"},"type":"object","title":"Source Payload Commitments"},"unregistered_event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unregistered Event","description":"Prominent notice set when an unregistered event_type was sealed via allow_unregistered:true — the receipt is a caller-supplied claim, not a pack-vocabulary duty record. None for registered record events."},"evidence_packet":{"$ref":"#/components/schemas/EvidencePacketStub"},"verify_request":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verify Request","description":"Ready-to-POST body for POST /v1/verify (alias: /evidence-packets/verify-seal). Raw-safe: hashes and seal fields only. The same fields POST to /evidence-packets/seal-bundle for the offline 4-file bundle."},"payload_retention":{"type":"string","title":"Payload Retention","default":"Planisphere stores hash commitments only — retain your payload to re-prove WHAT was recorded."},"raw_content_stored":{"type":"boolean","title":"Raw Content Stored","default":false},"claim_boundary":{"type":"string","title":"Claim Boundary","default":"Planisphere records that a completed act was attested and sealed. It does not certify compliance or verify that the act itself occurred as described."}},"type":"object","required":["tenant","pack","policy_pack","event_type","event_registered","action_key","source_key","payload_hash","occurred_at","recorded_at","evidence_packet"],"title":"V1RecordResponse"},"V1ReviewDecisionRequest":{"properties":{"action_key":{"type":"string","title":"Action Key"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer","description":"Who decided. IGNORED for a signed-in person — the server names them from the session, because a receipt must not take the caller's word for who was acting. Required for an API key, which authenticates a caller and names no human; that value is recorded with reviewer_basis='caller_asserted' so the receipt says plainly it is the operator's own claim. Placeholder strings are refused.","examples":["partner-or-gc"]},"decision":{"type":"string","enum":["approved","rejected","escalated"],"title":"Decision"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Optional reviewer note accepted at the API edge. Planisphere stores only reason_present and reason_hash; do not send raw client, prompt, document, or privileged content."},"mirror_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mirror Version","description":"Optional law-grading mirror version. Supply with mirror_digest and mirror_grades to bind client-side categorical review grades to the receipt."},"mirror_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mirror Digest","description":"Optional digest from GET /law/grading-mirror."},"mirror_grades":{"anyOf":[{"additionalProperties":{"type":"string","enum":["PASS","PARTIAL","FAIL","NA"]},"type":"object"},{"type":"null"}],"title":"Mirror Grades","description":"Optional categorical review grades produced client-side. Raw legal text is not accepted or stored here."},"pack":{"type":"string","enum":["law","defense","medicine","education","us-regulatory","ai-provenance"],"title":"Pack"}},"type":"object","required":["action_key","decision","pack"],"title":"V1ReviewDecisionRequest","description":"``ReviewDecisionRequest`` plus the ``pack`` selector read from the body.\n\nSubclassing keeps every existing field/validation identical, so the object\ncan be handed straight to the wrapped handlers, which expect a\n``ReviewDecisionRequest``."},"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"},"VerticalPackResponse":{"properties":{"packs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Packs"}},"type":"object","required":["packs"],"title":"VerticalPackResponse"},"VerticalProposedActionRequest":{"properties":{"tenant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant","description":"Optional tenant id assertion."},"surface":{"type":"string","title":"Surface","default":"generic","examples":["browser","servicenow","generic"]},"source_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"},"source_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source Payload","description":"Optional source metadata. Manifest-backed vertical endpoints store only a stable hash of this payload, not the raw payload."},"action_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Type","description":"Optional pack action type. Defaults to the pack's first supported action."},"proposed_action":{"type":"string","title":"Proposed Action","description":"The action an AI system or workflow is about to take.","examples":["Share controlled technical details with an external vendor."]},"context":{"additionalProperties":true,"type":"object","title":"Context","description":"Vertical-specific context fields required by the selected pack."},"regime_refs":{"items":{"type":"string"},"type":"array","title":"Regime Refs","description":"Optional regime/authority anchors for the evidence packet."},"redacted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redacted Text","description":"Optional transient text for policy checks. The endpoint records a hash and flags only; it does not persist the raw text."},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["proposed_action"],"title":"VerticalProposedActionRequest"},"WebhookDeliveryEnvelope":{"properties":{"id":{"type":"string","title":"Id","description":"Per-delivery event id (also in X-Planisphere-Id)."},"event":{"type":"string","title":"Event","description":"Event name.","examples":["record.sealed","receipt.anchored","verify.failed","meter.threshold"]},"created_at":{"type":"string","title":"Created At","description":"RFC-3339 emission time."},"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Event-specific payload."}},"type":"object","required":["id","event","created_at","data"],"title":"WebhookDeliveryEnvelope","description":"The signed JSON body Planisphere POSTs to a tenant's webhook URL.\n\nDelivery headers carry the signature (``X-Planisphere-Signature: t=<ts>,v1=<hmac>``),\nthe event name, a per-delivery id, and the timestamp. Verify by recomputing\n``HMAC-SHA256(secret, \"{timestamp}.{id}.{raw_body}\")`` over the exact bytes\nreceived — do not re-serialize the JSON."},"WebsiteDemoExportResponse":{"properties":{"schema":{"type":"string","title":"Schema"},"package_version":{"type":"string","title":"Package Version"},"source_endpoints":{"additionalProperties":{"type":"string"},"type":"object","title":"Source Endpoints"},"website_surfaces":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Website Surfaces"},"hero":{"additionalProperties":true,"type":"object","title":"Hero"},"demo_contract":{"additionalProperties":true,"type":"object","title":"Demo Contract"},"proof_contract":{"additionalProperties":true,"type":"object","title":"Proof Contract"},"federal_contract":{"additionalProperties":true,"type":"object","title":"Federal Contract"},"fixtures":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Fixtures"},"downstream_requirements":{"items":{"type":"string"},"type":"array","title":"Downstream Requirements"},"claim_boundary":{"type":"string","title":"Claim Boundary"}},"type":"object","required":["schema","package_version","source_endpoints","website_surfaces","hero","demo_contract","proof_contract","federal_contract","fixtures","downstream_requirements","claim_boundary"],"title":"WebsiteDemoExportResponse"},"WorkflowMapResponse":{"properties":{"workflows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Workflows"},"integration_evidence":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Evidence"}},"type":"object","required":["workflows","integration_evidence"],"title":"WorkflowMapResponse"},"ProblemDetails":{"type":"object","required":["type","title","status","detail","instance"],"properties":{"type":{"type":"string","format":"uri-reference","description":"Stable problem type URI. about:blank is used for generic HTTP errors."},"title":{"type":"string","description":"Short human-readable summary for this problem type."},"status":{"type":"integer","description":"HTTP status code generated by the origin server.","minimum":100,"maximum":599},"detail":{"description":"Existing Planisphere error detail. String details are RFC 9457-native; object and array details are preserved for backward-compatible API clients.","oneOf":[{"type":"string"},{"type":"object","additionalProperties":true},{"type":"array","items":{}}]},"instance":{"type":"string","description":"Request path that produced this problem response."},"request_id":{"type":"string","description":"Tenant-safe request correlation id mirrored from X-Planisphere-Request-ID."},"errors":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Validation error details when request parsing fails."}},"additionalProperties":true}},"securitySchemes":{"PlanisphereAccountSession":{"type":"apiKey","in":"cookie","name":"ps_account_session"},"BearerAuth":{"type":"http","scheme":"bearer"},"PlanisphereKey":{"type":"apiKey","in":"header","name":"X-Planisphere-Key"}}}}