{"openapi":"3.1.0","info":{"title":"SuperLink API","version":"1.37.0.dev33619846291+flower.9ff0053.labs.42c93f1"},"paths":{"/health":{"get":{"tags":["Health"],"summary":"Health","description":"Report whether the API server is healthy.","operationId":"health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["Health"],"summary":"Health Head","description":"Report whether the API server is healthy.","operationId":"health_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/start-run":{"post":{"tags":["Control"],"summary":"Start Run","operationId":"start_run","parameters":[{"name":"x-flwr-client","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Flwr-Client"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/control/list-runs":{"post":{"tags":["Control"],"summary":"List Runs","operationId":"list_runs","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-run-series":{"post":{"tags":["Control"],"summary":"List Run Series","operationId":"list_run_series","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/get-run-series":{"post":{"tags":["Control"],"summary":"Get Run Series","operationId":"get_run_series","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-run-series-events":{"post":{"tags":["Control"],"summary":"List Run Series Events","operationId":"list_run_series_events","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/stop-run":{"post":{"tags":["Control"],"summary":"Stop Run","operationId":"stop_run","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/stream-logs":{"post":{"tags":["Control"],"summary":"Stream Logs","operationId":"stream_logs","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/stream-run-events":{"post":{"tags":["Control"],"summary":"Stream Run Events","operationId":"stream_run_events","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/pull-artifacts":{"post":{"tags":["Control"],"summary":"Pull Artifacts","operationId":"pull_artifacts","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/start-automation":{"post":{"tags":["Control"],"summary":"Start Automation","operationId":"start_automation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-automations":{"post":{"tags":["Control"],"summary":"List Automations","operationId":"list_automations","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/stop-automation":{"post":{"tags":["Control"],"summary":"Stop Automation","operationId":"stop_automation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/get-login-details":{"post":{"tags":["Control"],"summary":"Get Login Details","operationId":"get_login_details","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/get-auth-tokens":{"post":{"tags":["Control"],"summary":"Get Auth Tokens","operationId":"get_auth_tokens","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/refresh-auth-tokens":{"post":{"tags":["Control"],"summary":"Refresh Auth Tokens","operationId":"refresh_auth_tokens","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-connectors":{"post":{"tags":["Control"],"summary":"List Connectors","operationId":"list_connectors","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/disconnect-connector":{"post":{"tags":["Control"],"summary":"Disconnect Connector","operationId":"disconnect_connector","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/begin-connector-oauth":{"post":{"tags":["Control"],"summary":"Begin Connector Oauth","operationId":"begin_connector_oauth","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/complete-connector-oauth":{"post":{"tags":["Control"],"summary":"Complete Connector Oauth","operationId":"complete_connector_oauth","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/register-node":{"post":{"tags":["Control"],"summary":"Register Node","operationId":"register_node","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/unregister-node":{"post":{"tags":["Control"],"summary":"Unregister Node","operationId":"unregister_node","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-nodes":{"post":{"tags":["Control"],"summary":"List Nodes","operationId":"list_nodes","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-federations":{"post":{"tags":["Control"],"summary":"List Federations","operationId":"list_federations","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-apps":{"post":{"tags":["Control"],"summary":"List Apps","operationId":"list_apps","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/add-app":{"post":{"tags":["Control"],"summary":"Add App","operationId":"add_app","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/remove-app":{"post":{"tags":["Control"],"summary":"Remove App","operationId":"remove_app","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/show-federation":{"post":{"tags":["Control"],"summary":"Show Federation","operationId":"show_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/create-federation":{"post":{"tags":["Control"],"summary":"Create Federation","operationId":"create_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/archive-federation":{"post":{"tags":["Control"],"summary":"Archive Federation","operationId":"archive_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/add-node-to-federation":{"post":{"tags":["Control"],"summary":"Add Node To Federation","operationId":"add_node_to_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/remove-node-from-federation":{"post":{"tags":["Control"],"summary":"Remove Node From Federation","operationId":"remove_node_from_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/remove-account-from-federation":{"post":{"tags":["Control"],"summary":"Remove Account From Federation","operationId":"remove_account_from_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/create-invitation":{"post":{"tags":["Control"],"summary":"Create Invitation","operationId":"create_invitation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/list-invitations":{"post":{"tags":["Control"],"summary":"List Invitations","operationId":"list_invitations","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/accept-invitation":{"post":{"tags":["Control"],"summary":"Accept Invitation","operationId":"accept_invitation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/reject-invitation":{"post":{"tags":["Control"],"summary":"Reject Invitation","operationId":"reject_invitation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/revoke-invitation":{"post":{"tags":["Control"],"summary":"Revoke Invitation","operationId":"revoke_invitation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/control/configure-simulation-federation":{"post":{"tags":["Control"],"summary":"Configure Simulation Federation","operationId":"configure_simulation_federation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/runtime/pull-pending-tasks":{"post":{"tags":["Runtime"],"summary":"Pull Pending Tasks","operationId":"pull_pending_tasks","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/runtime/claim-task":{"post":{"tags":["Runtime"],"summary":"Claim Task","operationId":"claim_task","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/runtime/send-task-heartbeat":{"post":{"tags":["Runtime"],"summary":"Send Task Heartbeat","operationId":"send_task_heartbeat","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/pull-task-input":{"post":{"tags":["Runtime"],"summary":"Pull Task Input","operationId":"pull_task_input","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/push-task-output":{"post":{"tags":["Runtime"],"summary":"Push Task Output","operationId":"push_task_output","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/push-object":{"post":{"tags":["Runtime"],"summary":"Push Object","operationId":"push_object","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/pull-object":{"post":{"tags":["Runtime"],"summary":"Pull Object","operationId":"pull_object","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/confirm-message-received":{"post":{"tags":["Runtime"],"summary":"Confirm Message Received","operationId":"confirm_message_received","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/create-task":{"post":{"tags":["Runtime"],"summary":"Create Task","operationId":"create_task","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/start-automation":{"post":{"tags":["Runtime"],"summary":"Runtime Start Automation","operationId":"runtime_start_automation","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/push-task-message":{"post":{"tags":["Runtime"],"summary":"Push Task Message","operationId":"push_task_message","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/push-task-events":{"post":{"tags":["Runtime"],"summary":"Push Task Events","operationId":"push_task_events","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/pull-task-message":{"post":{"tags":["Runtime"],"summary":"Pull Task Message","operationId":"pull_task_message","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/record-task-usage":{"post":{"tags":["Runtime"],"summary":"Record Task Usage","operationId":"record_task_usage","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/get-connector":{"post":{"tags":["Runtime"],"summary":"Get Connector","operationId":"get_connector","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/push-logs":{"post":{"tags":["Runtime"],"summary":"Push Logs","operationId":"push_logs","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/push-messages":{"post":{"tags":["Runtime"],"summary":"Push Messages","operationId":"push_messages","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/pull-messages":{"post":{"tags":["Runtime"],"summary":"Pull Messages","operationId":"pull_messages","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/get-nodes":{"post":{"tags":["Runtime"],"summary":"Get Nodes","operationId":"get_nodes","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"RuntimeTaskToken":[]}]}},"/v1/runtime/responses":{"post":{"tags":["Runtime"],"summary":"Create Runtime Response","description":"Create a model response through a child model task.","operationId":"create_runtime_response","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ready":{"get":{"tags":["Health"],"summary":"Ready","description":"Readiness check endpoint to verify dependent services are operational.","operationId":"ready","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["Health"],"summary":"Ready Head","description":"Readiness check endpoint to verify dependent services are operational.","operationId":"ready_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/license/validate":{"post":{"tags":["License"],"summary":"Validate a license key (public)","description":"Get license information based on the provided license key.","operationId":"get_license","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseVerificationInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/license/validate":{"post":{"tags":["License"],"summary":"Validate a license key (public)","description":"Get license information based on the provided license key.","operationId":"superlink_http_get_license","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseVerificationInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true}},"/v1/cvm/attestations":{"post":{"tags":["CVM Attestation"],"summary":"Create Cvm Attestation","description":"Store a CVM attestation payload.","operationId":"create_cvm_attestation","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCvmAttestationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CvmAttestationCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/aws/sev-snp-attestations":{"post":{"tags":["CVM Attestation"],"summary":"Create Cvm Aws Sev Snp Attestation","description":"Store an AWS SEV-SNP attestation token payload.","operationId":"create_cvm_aws_sev_snp_attestation","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAwsSevSnpAttestationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsSevSnpAttestationCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/intel/tdx-attestations":{"post":{"tags":["CVM Attestation"],"summary":"Create Cvm Intel Tdx Attestation","description":"Store an Intel TDX attestation JWT payload.","operationId":"create_cvm_intel_tdx_attestation","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntelTdxAttestationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelTdxAttestationCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/federations":{"post":{"tags":["CVM Attestation"],"summary":"Attestation Create Federation","description":"Create a federation and reserve a new set of node IDs.","operationId":"attestation_create_federation","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/federations/{federation_id}/nodes":{"post":{"tags":["CVM Attestation"],"summary":"Create Federation Memberships","description":"Create federation membership records for node IDs.","operationId":"create_federation_memberships","parameters":[{"name":"federation_id","in":"path","required":true,"schema":{"type":"string","title":"Federation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationMembershipCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationMembershipCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/federations/memberships":{"get":{"tags":["CVM Attestation"],"summary":"List Federation Memberships","description":"Return all federations and their node IDs.","operationId":"list_federation_memberships","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FederationMembershipListItem"},"title":"Response List Federation Memberships"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/federations/{federation_id}/attestations/status":{"get":{"tags":["CVM Attestation"],"summary":"Get Federation Attestation Status","description":"Return attestation status for all nodes in a federation.","operationId":"get_federation_attestation_status","parameters":[{"name":"federation_id","in":"path","required":true,"schema":{"type":"string","title":"Federation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationAttestationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/federations/{federation_id}/tpm-attestations/status":{"get":{"tags":["CVM Attestation"],"summary":"Get Federation Tpm Attestation Status","description":"Return TPM attestation status for all nodes in a federation.","operationId":"get_federation_tpm_attestation_status","parameters":[{"name":"federation_id","in":"path","required":true,"schema":{"type":"string","title":"Federation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationTpmAttestationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/federations/{federation_id}/app-policy":{"post":{"tags":["CVM Attestation"],"summary":"Create Federation App Policy","description":"Create federation app policy records (allowed FAB hashes).","operationId":"create_federation_app_policy","parameters":[{"name":"federation_id","in":"path","required":true,"schema":{"type":"string","title":"Federation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationAppPolicyCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationAppPolicyCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/global-pcr-policy":{"post":{"tags":["CVM Attestation"],"summary":"Create Global Pcr Policy","description":"Replace global PCR policy records for supported measurement kinds.","operationId":"create_global_pcr_policy","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalPcrPolicyCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalPcrPolicyCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cvm/tpm-attestations":{"post":{"tags":["CVM Attestation"],"summary":"Create Tpm Attestation","description":"Store a TPM quote attestation (PCR evidence).","operationId":"create_tpm_attestation","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTpmAttestationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TpmAttestationCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/entitlement/check":{"post":{"tags":["Entitlement"],"summary":"Entitlement Check","description":"Return the current entitlement check decision for SuperLink.","operationId":"entitlement_check","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitlementCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitlementConsumeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/status":{"get":{"tags":["Billing"],"summary":"Billing Status","description":"Return billing status (active subscription + plan) for the given account.","operationId":"billing_status","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/portal/session":{"post":{"tags":["Billing"],"summary":"Billing Portal Session","description":"Create a Stripe Customer Portal session and return its URL.","operationId":"billing_portal_session","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}},{"name":"X-Checkout-Origin","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Checkout-Origin"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPortalSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/credits":{"get":{"tags":["Billing"],"summary":"Billing Credits","description":"Return granted and available credits for the requested account and day.","operationId":"billing_credits","security":[{"HTTPBearer":[]}],"parameters":[{"name":"on_date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Date to evaluate balance on","title":"On Date"},"description":"Date to evaluate balance on"},{"name":"flwr_aid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional Flower Account ID. Defaults to the authenticated caller.","title":"Flwr Aid"},"description":"Optional Flower Account ID. Defaults to the authenticated caller."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/credits/usage":{"get":{"tags":["Billing"],"summary":"Billing Credit Usage","description":"Return paginated ledger-backed credit usage history.","operationId":"billing_credit_usage","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of rows to skip","default":0,"title":"Skip"},"description":"Number of rows to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum rows to return","default":20,"title":"Limit"},"description":"Maximum rows to return"},{"name":"flwr_aid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional Flower Account ID. Defaults to the authenticated caller.","title":"Flwr Aid"},"description":"Optional Flower Account ID. Defaults to the authenticated caller."},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Optional organization ID. Defaults to the caller's personal organization.","title":"Organization Id"},"description":"Optional organization ID. Defaults to the caller's personal organization."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditUsageHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/credits/assignments":{"get":{"tags":["Billing"],"summary":"Billing Credit Assignments","description":"Return credit assignment history for the resolved billing scope.","operationId":"billing_credit_assignments","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of rows to skip","default":0,"title":"Skip"},"description":"Number of rows to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum rows to return","default":20,"title":"Limit"},"description":"Maximum rows to return"},{"name":"flwr_aid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional Flower Account ID. Defaults to the authenticated caller.","title":"Flwr Aid"},"description":"Optional Flower Account ID. Defaults to the authenticated caller."},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Optional organization ID. Defaults to the caller's personal organization.","title":"Organization Id"},"description":"Optional organization ID. Defaults to the caller's personal organization."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationCreditAssignmentResponse"},"title":"Response Billing Credit Assignments"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/credits/assignments/history":{"get":{"tags":["Billing"],"summary":"Billing Credit Assignment History","description":"Return paginated credit assignment history for the resolved billing scope.","operationId":"billing_credit_assignment_history","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of rows to skip","default":0,"title":"Skip"},"description":"Number of rows to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum rows to return","default":20,"title":"Limit"},"description":"Maximum rows to return"},{"name":"flwr_aid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional Flower Account ID. Defaults to the authenticated caller.","title":"Flwr Aid"},"description":"Optional Flower Account ID. Defaults to the authenticated caller."},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Optional organization ID. Defaults to the caller's personal organization.","title":"Organization Id"},"description":"Optional organization ID. Defaults to the caller's personal organization."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditAssignmentHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/completions":{"post":{"tags":["Intelligence"],"summary":"Create Chat Completion","description":"Forward chat completion request to inference-api and track usage.","operationId":"create_chat_completion","security":[{"HTTPBearer":[]}],"parameters":[{"name":"fi-sdk-type","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fi-Sdk-Type"}},{"name":"fi-sdk-version","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fi-Sdk-Version"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/responses":{"post":{"tags":["Intelligence"],"summary":"Create Response","description":"Forward Responses API requests to the resolved upstream and track usage.","operationId":"create_response","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsesCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsesCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/encryption/public-key":{"post":{"tags":["Intelligence"],"summary":"Submit Public Key","description":"Forward public key submission to inference-api and return structured response.","operationId":"submit_public_key","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitPublicKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitPublicKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/encryption/server-public-key":{"get":{"tags":["Intelligence"],"summary":"Get Server Public Key","description":"Forward request to inference-api and convert response into\nGetServerPublicKeyResponse.\n\nThis function sends a request to the inference API and converts the response into a\nGetServerPublicKeyResponse object.","operationId":"get_server_public_key","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetServerPublicKeyResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/web-search":{"post":{"tags":["Intelligence"],"summary":"Perform Web Search","description":"Search the web for a given query.","operationId":"perform_web_search","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/embeddings":{"post":{"tags":["Intelligence"],"summary":"Create Embedding","description":"Forward embedding request to inference-api and track usage.","operationId":"create_embedding","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/attestations/gpu":{"post":{"tags":["Intelligence"],"summary":"Get Gpu Attestation","description":"NVIDIA Remote Attestation Service (NRAS) GPU attestation.\n\nExpects a nonce (hex) and returns NVIDIA-signed Entity Attestation Tokens (EATs).","operationId":"get_gpu_attestation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GpuAttestationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GpuAttestationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/organization/usage/daily-aggregate":{"post":{"tags":["Organization"],"summary":"Compute and store daily usage + spend for organizations","description":"Compute and store daily usage and spend for organizations.","operationId":"aggregate_daily_usage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyAggregateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyAggregateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/organization/usage/{organization_id}":{"get":{"tags":["Organization"],"summary":"Get organization usage summary for dashboard","description":"Get organization usage summary including current and previous billing periods.","operationId":"get_organization_usage","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUsageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organization/usage/{organization_id}/daily/{year}/{month}":{"get":{"tags":["Organization"],"summary":"Get daily usage breakdown for organization","description":"Get daily usage breakdown for a specific organization and month.","operationId":"get_organization_daily_usage_endpoint","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}},{"name":"month","in":"path","required":true,"schema":{"type":"integer","title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyUsageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organization/{organization_id}":{"get":{"tags":["Organization"],"summary":"Get Organization","description":"Retrieve an organization by its ID.","operationId":"get_organization","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organization/projects/{project_id}/api_keys":{"post":{"tags":["Organization"],"summary":"Create Api Key","description":"Create a new API key for a given project.","operationId":"create_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Organization"],"summary":"List Api Keys","description":"List all API keys for a given project.","operationId":"list_api_keys","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyDetailsResponse"},"title":"Response List Api Keys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organization/projects/{project_id}/api_keys/{api_key_id}":{"get":{"tags":["Organization"],"summary":"Retrieve Api Key","description":"Retrieve API key details by ID.","operationId":"retrieve_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyDetailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organization"],"summary":"Delete Api Key","description":"Revoke an API key by its ID.","operationId":"delete_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/{project_id}/api_keys":{"post":{"tags":["Organizations"],"summary":"Create Api Key For Web","description":"Create API key using session authentication and management API key ID.","operationId":"create_api_key_for_web","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyForOwnerRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/{project_id}/api_keys/{api_key_id}":{"put":{"tags":["Organizations"],"summary":"Update Api Key For Web","description":"Update API key using session authentication.","operationId":"update_api_key_for_web","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyForOwnerRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyDetailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Delete Api Key For Web","description":"Revoke API key using session authentication.","operationId":"delete_api_key_for_web","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/{project_id}/management-api-keys/{management_api_key_id}":{"get":{"tags":["Organizations"],"summary":"Get Management Api Key","description":"Retrieve a specific management API key by its ID.","operationId":"get_management_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"management_api_key_id","in":"path","required":true,"schema":{"type":"integer","title":"Management Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagementApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Organizations"],"summary":"Update Management Api Key","description":"Update a management API key's details.","operationId":"update_management_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"management_api_key_id","in":"path","required":true,"schema":{"type":"integer","title":"Management Api Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagementApiKeyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagementApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Revoke Management Api Key","description":"Revoke (delete) a management API key.","operationId":"revoke_management_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"management_api_key_id","in":"path","required":true,"schema":{"type":"integer","title":"Management Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/{project_id}/management-api-keys/":{"get":{"tags":["Organizations"],"summary":"List Management Api Keys","description":"List all management API keys for a project.","operationId":"list_management_api_keys","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ManagementApiKeyResponse"},"title":"Response List Management Api Keys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Organizations"],"summary":"Create Management Api Key","description":"Create a new management API key for a project.","operationId":"create_management_api_key","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagementApiKeyCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagementApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/{project_id}":{"get":{"tags":["Organizations"],"summary":"Get Project","description":"Retrieve a project by its ID.","operationId":"get_project","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Organizations"],"summary":"Update Project","description":"Update a project's information.","operationId":"update_project","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Delete Project","description":"Delete a project by its ID.","operationId":"delete_project","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/":{"get":{"tags":["Organizations"],"summary":"List Projects","description":"List all projects under the specified organization.","operationId":"list_projects","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListResponse"},"title":"Response List Projects"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Organizations"],"summary":"Create Project","description":"Create a new project under the specified organization.","operationId":"create_project","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organizations/{organization_id}/projects/{project_id}/api-keys":{"get":{"tags":["Organizations"],"summary":"Get Project Api Keys","description":"Retrieve all management API keys and their associated API keys for a project.","operationId":"get_project_api_keys","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ManagementApiKeyWithApiKeys"}},"title":"Response Get Project Api Keys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/product/":{"get":{"tags":["Product"],"summary":"Route List Products","description":"List all products, optionally filtered by organization ID.","operationId":"route_list_products","parameters":[{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"User's Organization ID for whitelisted products","title":"Organization Id"},"description":"User's Organization ID for whitelisted products"},{"name":"pricing_region","in":"query","required":false,"schema":{"anyOf":[{"enum":["germany","eu","non-eu"],"type":"string"},{"type":"null"}],"description":"Pricing region derived from visitor geolocation and used to select the correct presentment price.","title":"Pricing Region"},"description":"Pricing region derived from visitor geolocation and used to select the correct presentment price."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductResponse"},"title":"Response Route List Products"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/product/{product_id}":{"get":{"tags":["Product"],"summary":"Route Get Product","description":"Retrieve a product by its ID.","operationId":"route_get_product","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}},{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public-key/":{"post":{"tags":["Public Key"],"summary":"Retrieve the public key (public)","description":"Get the public key and its signature.","operationId":"get_public_key","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKeyResponse"}}}}}}},"/v1/subscription/":{"post":{"tags":["Subscription"],"summary":"Create Subscription","description":"Create a subscription for a given user and product.","operationId":"create_subscription","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}},{"name":"product_id","in":"query","required":true,"schema":{"type":"integer","description":"The Product ID","title":"Product Id"},"description":"The Product ID"},{"name":"pricing_region","in":"query","required":false,"schema":{"anyOf":[{"enum":["germany","eu","non-eu"],"type":"string"},{"type":"null"}],"description":"Pricing region derived from visitor geolocation and forwarded to checkout metadata for observability.","title":"Pricing Region"},"description":"Pricing region derived from visitor geolocation and forwarded to checkout metadata for observability."},{"name":"X-Checkout-Origin","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Checkout-Origin"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/subscription/pending":{"delete":{"tags":["Subscription"],"summary":"Cancel Pending Subscription","description":"Discard a pending checkout so the user can start a new one.","operationId":"cancel_pending_subscription","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/subscription/checkout":{"post":{"tags":["Subscription"],"summary":"Create Checkout","description":"Create a simple checkout session for a given product.","operationId":"create_checkout","parameters":[{"name":"product_id","in":"query","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tos/latest":{"get":{"tags":["tos"],"summary":"Read the latest ToS (public)","description":"Fetch the ToS entry with the highest version.","operationId":"read_latest_terms","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToSOut"}}}}}}},"/v1/tos/{tos_id}":{"get":{"tags":["tos"],"summary":"Read a ToS by its ID (public)","description":"Fetch a specific ToS entry by its primary key.","operationId":"read_terms","parameters":[{"name":"tos_id","in":"path","required":true,"schema":{"type":"integer","title":"Tos Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToSOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/agents":{"get":{"tags":["User"],"summary":"List agent apps available to the current user.","description":"List agent apps available to the current authenticated user.","operationId":"list_user_agents","security":[{"HTTPBearer":[]}],"parameters":[{"name":"federation_id","in":"query","required":true,"schema":{"type":"string","title":"Federation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUserAgentsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/{flwr_aid}/feature-flags":{"get":{"tags":["User"],"summary":"List User Feature Flags","description":"List a user's active feature flags.","operationId":"list_user_feature_flags","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"path","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureFlags"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/keys/":{"post":{"tags":["User"],"summary":"Create User Key","description":"Create a new user public key after validating and computing public_key_id.","operationId":"create_user_key","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserPublicKeyRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPublicKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User"],"summary":"List User Keys","description":"List public keys for a given username.\n\nThis endpoint requires a `username` query parameter and does not require\nauthentication. The supplied username is resolved to the canonical\n`flwr_aid` and used to return the user's public keys.","operationId":"list_user_keys","parameters":[{"name":"username","in":"query","required":true,"schema":{"type":"string","description":"Username to list public keys for","title":"Username"},"description":"Username to list public keys for"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPublicKeyResponse"},"title":"Response List User Keys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/profile":{"get":{"tags":["User"],"summary":"Get User Profile","description":"Retrieve a user's profile information by their username.","operationId":"get_user_profile","parameters":[{"name":"username","in":"query","required":true,"schema":{"type":"string","title":"Username"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/user_info":{"get":{"tags":["User"],"summary":"Get User Info","description":"Retrieve a user's information by their external ID.","operationId":"get_user_info","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/":{"get":{"tags":["User"],"summary":"Get User","description":"Retrieve a user's information by their external ID.","operationId":"get_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["User"],"summary":"Update User","description":"Update a user's information.","operationId":"update_user","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetails"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/avatar":{"get":{"tags":["User"],"summary":"Get Avatar","description":"Get a user's avatar image.","operationId":"get_avatar","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAvatar"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["User"],"summary":"Update Avatar","description":"Update a user's avatar image.","operationId":"update_avatar","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_avatar"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAvatar"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["User"],"summary":"Delete Avatar","description":"Delete a user's avatar image.","operationId":"delete_avatar","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/ensure":{"post":{"tags":["User"],"summary":"Ensure a user exists and has accepted the latest Terms of Service","description":"Ensure a user exists and has accepted the latest Terms of Service.\n\n- If the user doesn't exist, create it.\n- In all cases, ensure the user has accepted the latest TOS.","operationId":"ensure_user_and_tos","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"query","required":true,"schema":{"type":"string","title":"Flwr Aid"}},{"name":"username","in":"query","required":true,"schema":{"type":"string","title":"Username"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserComplete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user/{username}/starred":{"get":{"tags":["User"],"summary":"List apps starred by a user.","description":"List apps starred by a user.","operationId":"list_user_starred_apps","security":[{"HTTPBearer":[]}],"parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string","title":"Username"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user-tos/{flwr_aid}":{"get":{"tags":["User"],"summary":"Get a user's latest ToS acceptance","description":"Get the latest Terms of Service acceptance for a given user.","operationId":"read_user_tos","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"path","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTosOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["User"],"summary":"Record a user's latest ToS acceptance","description":"Record that the user has accepted the latest Terms of Service.","operationId":"record_user_tos","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"path","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTosOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/user-tos/{flwr_aid}/latest":{"get":{"tags":["User"],"summary":"Check if the user accepted the very latest ToS","description":"Check if the user has accepted the latest Terms of Service.","operationId":"read_user_tos_latest","security":[{"HTTPBearer":[]}],"parameters":[{"name":"flwr_aid","in":"path","required":true,"schema":{"type":"string","title":"Flwr Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTosLatestOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/stripe/webhook":{"post":{"tags":["Integrations"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events with deduplication and retry logic.","operationId":"stripe_webhook","parameters":[{"name":"stripe-signature","in":"header","required":true,"schema":{"type":"string","title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/fetch-fab":{"post":{"tags":["Hub"],"summary":"Return a presigned FAB URL and optionally include verifications.","description":"Return a presigned FAB URL.","operationId":"fetch_fab","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadLinkResponseFab"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/fetch-zip":{"post":{"tags":["Hub"],"summary":"Return a presigned ZIP URL.","description":"Return a presigned ZIP URL.","operationId":"fetch_zip","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadLinkResponseZip"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/apps":{"get":{"tags":["Hub"],"summary":"List available apps with signer users and aggregate stats.","description":"List apps with optional filtering by owner/tags plus summary stats.","operationId":"superlink_http_list_apps","security":[{"HTTPBearer":[]}],"parameters":[{"name":"owner","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter apps by owner username. If omitted, returns all apps.","title":"Owner"},"description":"Filter apps by owner username. If omitted, returns all apps."},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter apps by one or more tag slugs. Example: ?tag=featured&tag=recommended. An app must have *all* specified tags to be returned.","title":"Tag"},"description":"Filter apps by one or more tag slugs. Example: ?tag=featured&tag=recommended. An app must have *all* specified tags to be returned."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/apps/{publisher}/{app_name}":{"get":{"tags":["Hub"],"summary":"Get app details and versions (with signatures).","description":"Get app details by publisher and app name.","operationId":"get_app_details","security":[{"HTTPBearer":[]}],"parameters":[{"name":"publisher","in":"path","required":true,"schema":{"type":"string","title":"Publisher"}},{"name":"app_name","in":"path","required":true,"schema":{"type":"string","title":"App Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppDetailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/apps/publish":{"post":{"tags":["Hub"],"summary":"Publish a Flower app via multipart upload (used by `flwr app publish`).","description":"Publish a Flower app via multipart upload (used by `flwr app publish`).","operationId":"publish_app","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_publish_app"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/hub/apps/signature":{"post":{"tags":["Hub"],"summary":"Submit a signature for an app version.","description":"Submit a signature for an app version.","operationId":"submit_app_signature","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitSignatureRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitSignatureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/hub/apps/{publisher}/{app_name}/star":{"post":{"tags":["Hub"],"summary":"Star an app.","description":"Star an app.","operationId":"star_app","security":[{"HTTPBearer":[]}],"parameters":[{"name":"publisher","in":"path","required":true,"schema":{"type":"string","title":"Publisher"}},{"name":"app_name","in":"path","required":true,"schema":{"type":"string","title":"App Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StarResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Hub"],"summary":"Remove star from an app.","description":"Remove star from an app.","operationId":"unstar_app","security":[{"HTTPBearer":[]}],"parameters":[{"name":"publisher","in":"path","required":true,"schema":{"type":"string","title":"Publisher"}},{"name":"app_name","in":"path","required":true,"schema":{"type":"string","title":"App Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StarResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/apps/{publisher}/{app_name}/{version}/files":{"get":{"tags":["Hub"],"summary":"List files for an app version.","description":"Return the file tree (path + size) for a specific app version.","operationId":"list_app_files","parameters":[{"name":"publisher","in":"path","required":true,"schema":{"type":"string","title":"Publisher"}},{"name":"app_name","in":"path","required":true,"schema":{"type":"string","title":"App Name"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppFileTreeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/hub/apps/{publisher}/{app_name}/{version}/file":{"get":{"tags":["Hub"],"summary":"Return a presigned URL for a single file in an app version.","description":"Return a presigned URL for a single file in an app version.","operationId":"get_app_file","parameters":[{"name":"publisher","in":"path","required":true,"schema":{"type":"string","title":"Publisher"}},{"name":"app_name","in":"path","required":true,"schema":{"type":"string","title":"App Name"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","title":"Version"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}},{"name":"content-disposition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Content-Disposition for the file: 'inline' or 'attachment'","title":"Content-Disposition"},"description":"Content-Disposition for the file: 'inline' or 'attachment'"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppFileDownloadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/update-check/flwr":{"put":{"tags":["Update Check"],"summary":"Route Upsert Version Update Policy","description":"Create or update a flwr version update policy.","operationId":"route_upsert_version_update_policy","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionUpdatePolicyUpsertRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionUpdatePolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Update Check"],"summary":"Route Flwr Update Check","description":"Check if the caller's Flower runtime version is outdated.","operationId":"route_flwr_update_check","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlwrUpdateCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlwrUpdateCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AcceptInvitationContext":{"properties":{"type":{"type":"string","const":"accept_invitation","title":"Type"},"federation_id":{"type":"string","minLength":1,"title":"Federation Id"},"runtime":{"type":"string","enum":["deployment","simulation"],"title":"Runtime"}},"type":"object","required":["type","federation_id","runtime"],"title":"AcceptInvitationContext","description":"Schema for accept invitation context."},"AchievementKey":{"type":"string","enum":["launch_partner","early_contributor"],"title":"AchievementKey","description":"Achievement key values."},"AgentColor":{"type":"string","enum":["yellow","sky","emerald","rose","indigo","pink","purple","slate","gray"],"title":"AgentColor","description":"Supported agent color themes."},"ApiKeyDetailsResponse":{"properties":{"id":{"type":"string","title":"Id","description":"API key ID","examples":["123","456"]},"redacted_value":{"type":"string","title":"Redacted Value","description":"Redacted API key value","examples":["flwr_***"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the API key","examples":["Production App","Development Key"]},"expires_at":{"type":"integer","title":"Expires At","description":"Expiration timestamp","examples":[1790938037]},"created_at":{"type":"integer","title":"Created At","description":"Creation timestamp","examples":[1788346037]},"revoked_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revoked At","description":"Revocation timestamp","examples":[null,1788346037]}},"type":"object","required":["id","redacted_value","expires_at","created_at"],"title":"ApiKeyDetailsResponse","description":"Response model for API key details."},"ApiKeyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"redacted_value":{"type":"string","title":"Redacted Value"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"total_tokens_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens Limit"},"total_searches_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Searches Limit"}},"type":"object","required":["id","redacted_value","name","expires_at","created_at"],"title":"ApiKeyResponse","description":"Response schema for API key."},"AppDetailsResponse":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License"},"license_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Content"},"versions":{"items":{"$ref":"#/components/schemas/AppVersionDetails"},"type":"array","title":"Versions"},"total_downloads":{"type":"integer","title":"Total Downloads","default":0},"total_runs":{"type":"integer","title":"Total Runs","default":0},"star_count":{"type":"integer","title":"Star Count","default":0},"is_starred":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Starred"},"readme_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Readme Content"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["app_id","description"],"title":"AppDetailsResponse","description":"Response schema for app details."},"AppFileDownloadResponse":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"app_version":{"type":"string","title":"App Version"},"path":{"type":"string","title":"Path"},"url":{"type":"string","title":"Url"}},"type":"object","required":["app_id","app_version","path","url"],"title":"AppFileDownloadResponse","description":"Response schema for app file download."},"AppFileEntry":{"properties":{"path":{"type":"string","title":"Path"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["path","size"],"title":"AppFileEntry","description":"Schema for app file entry."},"AppFileTreeResponse":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"app_version":{"type":"string","title":"App Version"},"files":{"items":{"$ref":"#/components/schemas/AppFileEntry"},"type":"array","title":"Files"}},"type":"object","required":["app_id","app_version"],"title":"AppFileTreeResponse","description":"Response schema for app file tree."},"AppSummary":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"app_type":{"type":"string","enum":["agentapp","serverapp"],"title":"App Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"signer_users":{"items":{"type":"string"},"type":"array","title":"Signer Users"},"star_count":{"type":"integer","title":"Star Count"},"total_downloads":{"type":"integer","title":"Total Downloads"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["app_id","app_type","description","star_count","total_downloads"],"title":"AppSummary","description":"Schema for app summary."},"AppVersionDetails":{"properties":{"app_version":{"type":"string","title":"App Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"verifications":{"items":{"$ref":"#/components/schemas/Verification"},"type":"array","title":"Verifications"}},"type":"object","required":["app_version","created_at"],"title":"AppVersionDetails","description":"Schema for app version details."},"AppVersionState":{"type":"string","enum":["available","rejected"],"title":"AppVersionState","description":"App version state values."},"AppsListResponse":{"properties":{"apps":{"items":{"$ref":"#/components/schemas/AppSummary"},"type":"array","title":"Apps"}},"type":"object","required":["apps"],"title":"AppsListResponse","description":"Response schema for listing apps."},"AwsSevSnpAttestationCreateResponse":{"properties":{"node_id":{"type":"string","title":"Node Id"},"status":{"type":"string","title":"Status"},"attested_at":{"type":"string","format":"date-time","title":"Attested At"}},"type":"object","required":["node_id","status","attested_at"],"title":"AwsSevSnpAttestationCreateResponse","description":"Response schema for creating AWS SEV SNP attestation."},"AwsSevSnpAttestationToken":{"properties":{"type":{"type":"string","const":"sev-snp-attestation","title":"Type"},"report_b64":{"type":"string","title":"Report B64"},"certs":{"additionalProperties":{"type":"string"},"type":"object","title":"Certs"}},"type":"object","required":["type","report_b64","certs"],"title":"AwsSevSnpAttestationToken","description":"Schema for AWS SEV SNP attestation token."},"BillingPeriod":{"properties":{"month_starting":{"type":"string","title":"Month Starting","description":"Month starting date (YYYY-MM-DD)"},"tokens_used":{"type":"integer","minimum":0.0,"title":"Tokens Used","description":"Total tokens used in the period"},"search_queries_used":{"type":"integer","minimum":0.0,"title":"Search Queries Used","description":"Total search queries used in the period"},"spend_cents":{"type":"integer","minimum":0.0,"title":"Spend Cents","description":"Total spend in cents for the period"}},"type":"object","required":["month_starting","tokens_used","search_queries_used","spend_cents"],"title":"BillingPeriod","description":"Billing period usage summary."},"BillingPortalSessionResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"BillingPortalSessionResponse","description":"Response schema for billing portal session."},"BillingStatusResponse":{"properties":{"has_active_subscription":{"type":"boolean","title":"Has Active Subscription"},"has_pending_subscription":{"type":"boolean","title":"Has Pending Subscription","default":false},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End","default":false},"current_period_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Period End"},"checkout_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Url"}},"type":"object","required":["has_active_subscription"],"title":"BillingStatusResponse","description":"Response schema for billing status."},"Body_publish_app":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files","description":"All project files as multipart parts named 'file'. Each part's filename MUST be the project-relative path (e.g., 'pyproject.toml', 'src/main.py'). Allowed file types: .py, .toml, .md, .yaml, .yml, .json, .jsonl, .editorconfig, and .gitignore."},"flwr_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Version","description":"Optional Flower platform version making this request."}},"type":"object","required":["files"],"title":"Body_publish_app"},"Body_update_avatar":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_update_avatar"},"ChatCompletionsRequest":{"properties":{"model":{"type":"string","title":"Model"},"messages":{"items":{"$ref":"#/components/schemas/Message"},"type":"array","title":"Messages"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P"},"response_format":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Format"},"max_completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Completion Tokens"},"tools":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolFunction"},"type":"array"},{"type":"null"}],"title":"Tools"},"tool_choice":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Choice"},"stream":{"type":"boolean","title":"Stream","default":false},"encrypt":{"type":"boolean","title":"Encrypt","default":false},"encryption_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encryption Id"},"confidential":{"type":"boolean","title":"Confidential","default":false}},"type":"object","required":["model","messages"],"title":"ChatCompletionsRequest","description":"Request schema for chat completions."},"ChatCompletionsResponse":{"properties":{"object":{"type":"string","title":"Object"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"choices":{"items":{"$ref":"#/components/schemas/Choice"},"type":"array","title":"Choices"},"usage":{"$ref":"#/components/schemas/Usage"}},"type":"object","required":["object","created","model","choices","usage"],"title":"ChatCompletionsResponse","description":"Response schema for chat completions."},"CheckoutResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"CheckoutResponse","description":"Response schema for checkout."},"Choice":{"properties":{"index":{"type":"integer","title":"Index"},"message":{"$ref":"#/components/schemas/ChoiceMessage"}},"type":"object","required":["index","message"],"title":"Choice","description":"Schema for choice."},"ChoiceMessage":{"properties":{"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"},"tool_calls":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tool Calls"}},"type":"object","required":["role","content"],"title":"ChoiceMessage","description":"Schema for choice message."},"CreateApiKeyForOwnerRequest":{"properties":{"management_api_key_id":{"type":"integer","title":"Management Api Key Id","description":"Management API key ID","examples":[1,2,3]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the API key","examples":["Production App","Development Key","Testing Environment"]},"expires_at":{"type":"integer","title":"Expires At","description":"Expiration timestamp (Unix timestamp)","examples":[1790938037]},"total_tokens_limit":{"type":"integer","title":"Total Tokens Limit","description":"Total tokens limit","default":100000000,"examples":[100000,500000,1000000]},"total_searches_limit":{"type":"integer","title":"Total Searches Limit","description":"Total searches limit","default":0,"examples":[1000,5000,10000]}},"type":"object","required":["management_api_key_id"],"title":"CreateApiKeyForOwnerRequest","description":"Request model for creating a new API key for project owner."},"CreateApiKeyRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the API key","examples":["Production App","Development Key","Testing Environment"]},"expires_at":{"type":"integer","title":"Expires At","description":"Expiration timestamp (Unix timestamp)","examples":[1790938037]},"total_tokens_limit":{"type":"integer","title":"Total Tokens Limit","description":"Total tokens limit","default":100000000,"examples":[100000,500000,1000000]},"total_searches_limit":{"type":"integer","title":"Total Searches Limit","description":"Total searches limit","default":0,"examples":[1000,5000,10000]}},"type":"object","title":"CreateApiKeyRequest","description":"Request model for creating a new API key using management API key credentials."},"CreateApiKeyResponse":{"properties":{"id":{"type":"string","title":"Id","description":"API key ID","examples":["123","456"]},"api_key":{"type":"string","title":"Api Key","description":"Plaintext API key (shown only once)","examples":["flwr_abc123def456ghi789"]},"redacted_value":{"type":"string","title":"Redacted Value","description":"Redacted API key value","examples":["flwr_***"]},"expires_at":{"type":"integer","title":"Expires At","description":"Expiration timestamp","examples":[1790938037]}},"type":"object","required":["id","api_key","redacted_value","expires_at"],"title":"CreateApiKeyResponse","description":"Response model for created API key."},"CreateAwsSevSnpAttestationRequest":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"node_id":{"type":"string","title":"Node Id"},"role":{"type":"string","enum":["SuperLink","SuperNode"],"title":"Role"},"public_key":{"type":"string","title":"Public Key"},"attestation_token":{"$ref":"#/components/schemas/AwsSevSnpAttestationToken"}},"type":"object","required":["federation_id","node_id","role","public_key","attestation_token"],"title":"CreateAwsSevSnpAttestationRequest","description":"Request schema for creating AWS SEV SNP attestation."},"CreateCvmAttestationRequest":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"node_id":{"type":"string","title":"Node Id"},"role":{"type":"string","enum":["SuperLink","SuperNode"],"title":"Role"},"attestation_jwt":{"type":"string","title":"Attestation Jwt"},"attestation_provider":{"type":"string","title":"Attestation Provider"},"public_key":{"type":"string","title":"Public Key"},"signature":{"type":"string","title":"Signature"},"superlink_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superlink Address"}},"type":"object","required":["federation_id","node_id","role","attestation_jwt","attestation_provider","public_key","signature"],"title":"CreateCvmAttestationRequest","description":"Request schema for creating CVM attestation."},"CreateFederationContext":{"properties":{"type":{"type":"string","const":"create_federation","title":"Type"},"visibility":{"type":"string","enum":["public","private"],"title":"Visibility"},"runtime":{"type":"string","enum":["deployment","simulation"],"title":"Runtime"}},"type":"object","required":["type","visibility","runtime"],"title":"CreateFederationContext","description":"Schema for create federation context."},"CreateIntelTdxAttestationRequest":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"node_id":{"type":"string","title":"Node Id"},"role":{"type":"string","enum":["SuperLink","SuperNode"],"title":"Role"},"public_key":{"type":"string","title":"Public Key"},"attestation_jwt":{"type":"string","title":"Attestation Jwt"},"superlink_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Superlink Address"}},"type":"object","required":["federation_id","node_id","role","public_key","attestation_jwt"],"title":"CreateIntelTdxAttestationRequest","description":"Request schema for creating intel TDX attestation."},"CreateInvitationContext":{"properties":{"type":{"type":"string","const":"create_invitation","title":"Type"},"federation_id":{"type":"string","minLength":1,"title":"Federation Id"},"invitee_account_name":{"type":"string","maxLength":32,"minLength":5,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Invitee Account Name"},"runtime":{"type":"string","enum":["deployment","simulation"],"title":"Runtime"}},"type":"object","required":["type","federation_id","invitee_account_name","runtime"],"title":"CreateInvitationContext","description":"Schema for create invitation context."},"CreateTpmAttestationRequest":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"node_id":{"type":"string","title":"Node Id"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Id"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"pcr_bank":{"type":"string","const":"sha256","title":"Pcr Bank","default":"sha256"},"pcrs":{"items":{"type":"integer"},"type":"array","title":"Pcrs"},"ak_public_pem":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ak Public Pem"},"quote_msg_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Msg B64"},"quote_sig_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Sig B64"},"sig_alg":{"anyOf":[{"type":"string","enum":["rsassa","ecdsa"]},{"type":"null"}],"title":"Sig Alg","default":"rsassa"},"pcr_values":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Pcr Values"}},"type":"object","required":["federation_id","node_id","pcrs"],"title":"CreateTpmAttestationRequest","description":"Request schema for creating TPM attestation."},"CreateUserPublicKeyRequest":{"properties":{"public_key_openssh":{"type":"string","title":"Public Key Openssh"}},"type":"object","required":["public_key_openssh"],"title":"CreateUserPublicKeyRequest","description":"Request schema for creating user public key."},"CreditAssignmentHistoryResponse":{"properties":{"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id"},"skip":{"type":"integer","minimum":0.0,"title":"Skip"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"items":{"items":{"$ref":"#/components/schemas/OrganizationCreditAssignmentResponse"},"type":"array","title":"Items"}},"type":"object","required":["skip","limit","total","items"],"title":"CreditAssignmentHistoryResponse","description":"Paginated credit assignment history for one organization's ledger."},"CreditBalanceResponse":{"properties":{"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id"},"subject_flwr_aid":{"type":"string","title":"Subject Flwr Aid"},"on_date":{"type":"string","format":"date","title":"On Date"},"granted_credits":{"type":"integer","minimum":0.0,"title":"Granted Credits"},"used_credits":{"type":"integer","minimum":0.0,"title":"Used Credits"},"available_credits":{"type":"integer","minimum":0.0,"title":"Available Credits"}},"type":"object","required":["subject_flwr_aid","on_date","granted_credits","used_credits","available_credits"],"title":"CreditBalanceResponse","description":"Balance of credits available to a user on a given date."},"CreditUsageHistoryItem":{"properties":{"run_id":{"type":"string","title":"Run Id"},"federation_id":{"type":"string","title":"Federation Id"},"accounted_at":{"type":"string","format":"date-time","title":"Accounted At"},"used_credits":{"type":"integer","minimum":0.0,"title":"Used Credits"}},"type":"object","required":["run_id","federation_id","accounted_at","used_credits"],"title":"CreditUsageHistoryItem","description":"User-facing summary of one credit-charged run."},"CreditUsageHistoryResponse":{"properties":{"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id"},"skip":{"type":"integer","minimum":0.0,"title":"Skip"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"items":{"items":{"$ref":"#/components/schemas/CreditUsageHistoryItem"},"type":"array","title":"Items"}},"type":"object","required":["skip","limit","total","items"],"title":"CreditUsageHistoryResponse","description":"Paginated usage history for one organization's credit ledger."},"CvmAttestationCreateResponse":{"properties":{"node_id":{"type":"string","title":"Node Id"},"status":{"type":"string","title":"Status"},"attested_at":{"type":"string","format":"date-time","title":"Attested At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["node_id","status","attested_at","expires_at"],"title":"CvmAttestationCreateResponse","description":"Response schema for creating CVM attestation."},"DailyAggregateRequest":{"properties":{"organization_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array","minItems":1},{"type":"null"}],"title":"Organization Ids"},"skip":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Skip","description":"Offset into organizations table when using windowed mode"},"limit":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Limit","description":"Max number of orgs to aggregate in windowed mode"},"day":{"type":"string","format":"date-time","title":"Day","description":"UTC day to aggregate (YYYY-MM-DD), must not be in the future","examples":["2026-09-01"]}},"type":"object","required":["day"],"title":"DailyAggregateRequest","description":"Must provide EITHER:\n  - organization_ids (explicit list), OR\n  - skip AND limit (windowed selection)."},"DailyAggregateResponse":{"properties":{"day":{"type":"string","format":"date","title":"Day","description":"UTC day that was aggregated (YYYY-MM-DD)"},"results":{"items":{"$ref":"#/components/schemas/DailyAggregateResult"},"type":"array","title":"Results","description":"Per-organization aggregate results"}},"type":"object","required":["day","results"],"title":"DailyAggregateResponse","description":"Per-organization daily aggregates for the given day."},"DailyAggregateResult":{"properties":{"organization_id":{"type":"integer","title":"Organization Id"},"usage_date":{"type":"string","format":"date","title":"Usage Date","description":"UTC day that was aggregated (YYYY-MM-DD)"},"daily_spend_cents":{"type":"integer","minimum":0.0,"title":"Daily Spend Cents","description":"Total spend for the day (cents)"},"breakdown_json":{"items":{"$ref":"#/components/schemas/UsageBucket"},"type":"array","title":"Breakdown Json","description":"Per-model breakdown for the day"}},"type":"object","required":["organization_id","usage_date","daily_spend_cents","breakdown_json"],"title":"DailyAggregateResult","description":"Schema for daily aggregate result."},"DailyUsageItem":{"properties":{"usage_date":{"type":"string","title":"Usage Date","description":"Usage date (YYYY-MM-DD)"},"spend_cents":{"type":"integer","minimum":0.0,"title":"Spend Cents","description":"Daily spend in cents"},"tokens_used":{"type":"integer","minimum":0.0,"title":"Tokens Used","description":"Tokens used on this date","default":0},"search_queries_used":{"type":"integer","minimum":0.0,"title":"Search Queries Used","description":"Search queries used on this date","default":0}},"type":"object","required":["usage_date","spend_cents"],"title":"DailyUsageItem","description":"Daily usage breakdown for a specific date."},"DailyUsageResponse":{"properties":{"year":{"type":"integer","maximum":3000.0,"minimum":2020.0,"title":"Year","description":"Year (YYYY)"},"month":{"type":"integer","maximum":12.0,"minimum":1.0,"title":"Month","description":"Month (1-12)"},"organization_id":{"type":"integer","minimum":1.0,"title":"Organization Id","description":"Organization ID"},"daily_usage":{"items":{"$ref":"#/components/schemas/DailyUsageItem"},"type":"array","title":"Daily Usage","description":"Daily usage items for the month"},"total_spend_cents":{"type":"integer","minimum":0.0,"title":"Total Spend Cents","description":"Total spend for the month in cents"}},"type":"object","required":["year","month","organization_id","total_spend_cents"],"title":"DailyUsageResponse","description":"Daily usage breakdown for a specific month."},"DownloadLinkRequest":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id","description":"Like '@user/app', either this or 'identifier' must be provided."},"identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identifier","description":"Alternative to app_id, will be used if app_id is not provided."},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version","description":"Specific app version to fetch (if omitted, fetches latest available)"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Alternative to app_version, will be used if app_version is not provided."},"flwr_license_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr License Key","description":"Optional Flower license key to authorize the request to receive verifications"},"flwr_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Version","description":"Optional Flower platform version making this request."}},"type":"object","required":["app_id"],"title":"DownloadLinkRequest","description":"Request schema for download link."},"DownloadLinkResponseFab":{"properties":{"app_version":{"type":"string","title":"App Version"},"latest_app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest App Version"},"resolved_by_compatibility":{"type":"boolean","title":"Resolved By Compatibility","default":false},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"fab_url":{"type":"string","title":"Fab Url"},"verifications":{"anyOf":[{"items":{"$ref":"#/components/schemas/Verification"},"type":"array"},{"type":"null"}],"title":"Verifications"}},"type":"object","required":["app_version","app_id","fab_url"],"title":"DownloadLinkResponseFab","description":"Schema for download link response fab."},"DownloadLinkResponseZip":{"properties":{"app_version":{"type":"string","title":"App Version"},"latest_app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest App Version"},"resolved_by_compatibility":{"type":"boolean","title":"Resolved By Compatibility","default":false},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"zip_url":{"type":"string","title":"Zip Url"}},"type":"object","required":["app_version","app_id","zip_url"],"title":"DownloadLinkResponseZip","description":"Schema for download link response zip."},"EmbeddingData":{"properties":{"index":{"type":"integer","title":"Index"},"embedding":{"items":{"type":"number"},"type":"array","title":"Embedding"},"object":{"type":"string","title":"Object"}},"type":"object","required":["index","embedding","object"],"title":"EmbeddingData","description":"Schema for embedding data."},"EmbeddingRequest":{"properties":{"model":{"type":"string","title":"Model"},"input":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"title":"Input"}},"type":"object","required":["model","input"],"title":"EmbeddingRequest","description":"Request schema for embedding."},"EmbeddingResponse":{"properties":{"object":{"type":"string","title":"Object"},"data":{"items":{"$ref":"#/components/schemas/EmbeddingData"},"type":"array","title":"Data"},"model":{"type":"string","title":"Model"},"usage":{"$ref":"#/components/schemas/EmbeddingUsage"}},"type":"object","required":["object","data","model","usage"],"title":"EmbeddingResponse","description":"Response schema for embedding."},"EmbeddingUsage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"}},"type":"object","required":["prompt_tokens","total_tokens"],"title":"EmbeddingUsage","description":"Schema for embedding usage."},"EntitlementAction":{"type":"string","enum":["start_run","create_federation","register_supernode","create_invitation","accept_invitation"],"title":"EntitlementAction","description":"Entitlement action values."},"EntitlementCheckRequest":{"properties":{"subject":{"$ref":"#/components/schemas/EntitlementSubject"},"action":{"$ref":"#/components/schemas/EntitlementAction"},"context":{"oneOf":[{"$ref":"#/components/schemas/StartRunContext"},{"$ref":"#/components/schemas/CreateFederationContext"},{"$ref":"#/components/schemas/RegisterSuperNodeContext"},{"$ref":"#/components/schemas/CreateInvitationContext"},{"$ref":"#/components/schemas/AcceptInvitationContext"}],"title":"Context","discriminator":{"propertyName":"type","mapping":{"accept_invitation":"#/components/schemas/AcceptInvitationContext","create_federation":"#/components/schemas/CreateFederationContext","create_invitation":"#/components/schemas/CreateInvitationContext","register_supernode":"#/components/schemas/RegisterSuperNodeContext","start_run":"#/components/schemas/StartRunContext"}}}},"type":"object","required":["subject","action","context"],"title":"EntitlementCheckRequest","description":"Request schema for entitlement check."},"EntitlementConsumeResponse":{"properties":{"allowed":{"type":"boolean","title":"Allowed"},"reason_code":{"type":"integer","title":"Reason Code"},"reason_message":{"type":"string","title":"Reason Message"},"public_details":{"type":"string","title":"Public Details"}},"type":"object","required":["allowed","reason_code","reason_message","public_details"],"title":"EntitlementConsumeResponse","description":"Response schema for entitlement consume."},"EntitlementSubject":{"properties":{"type":{"type":"string","const":"account","title":"Type"},"id":{"type":"string","title":"Id"}},"type":"object","required":["type","id"],"title":"EntitlementSubject","description":"Schema for entitlement subject."},"FeatureFlagName":{"type":"string","enum":["deployment_engine","agent_early_access"],"title":"FeatureFlagName","description":"Supported user feature flag names."},"FederationAppPolicyCreateRequest":{"properties":{"policies":{"items":{"$ref":"#/components/schemas/FederationAppPolicyItem"},"type":"array","title":"Policies"}},"type":"object","required":["policies"],"title":"FederationAppPolicyCreateRequest","description":"Request schema for federation app policy create."},"FederationAppPolicyCreateResponse":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"saved_count":{"type":"integer","title":"Saved Count"}},"type":"object","required":["federation_id","saved_count"],"title":"FederationAppPolicyCreateResponse","description":"Response schema for creating federation app policy."},"FederationAppPolicyItem":{"properties":{"app_id":{"type":"string","title":"App Id","description":"Application identifier carried by the attestation payload."},"app_version":{"type":"string","title":"App Version"},"fab_hash":{"type":"string","title":"Fab Hash"},"hash_alg":{"type":"string","title":"Hash Alg","default":"sha256"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["app_id","app_version","fab_hash"],"title":"FederationAppPolicyItem","description":"Schema for federation app policy item."},"FederationAttestationStatusResponse":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"total_nodes":{"type":"integer","title":"Total Nodes"},"verified_nodes_count":{"type":"integer","title":"Verified Nodes Count"},"all_verified":{"type":"boolean","title":"All Verified"},"verified_nodes":{"items":{"$ref":"#/components/schemas/FederationAttestedNode"},"type":"array","title":"Verified Nodes"}},"type":"object","required":["federation_id","total_nodes","verified_nodes_count","all_verified"],"title":"FederationAttestationStatusResponse","description":"Response schema for federation attestation status."},"FederationAttestedNode":{"properties":{"node_id":{"type":"integer","title":"Node Id"},"role":{"type":"string","enum":["SuperLink","SuperNode"],"title":"Role"},"public_key":{"type":"string","title":"Public Key"},"superlink-address":{"anyOf":[{"type":"string","format":"ipvanyaddress"},{"type":"null"}],"title":"Superlink-Address"}},"type":"object","required":["node_id","role","public_key"],"title":"FederationAttestedNode","description":"Schema for federation attested node."},"FederationCreateRequest":{"properties":{"node_count":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Node Count","description":"Number of nodes to reserve for the new federation."}},"type":"object","required":["node_count"],"title":"FederationCreateRequest","description":"Request schema for federation create."},"FederationCreateResponse":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"node_ids":{"items":{"type":"integer"},"type":"array","title":"Node Ids"}},"type":"object","required":["federation_id"],"title":"FederationCreateResponse","description":"Response schema for creating federation."},"FederationMembershipCreateRequest":{"properties":{"node_ids":{"items":{"type":"string"},"type":"array","title":"Node Ids"}},"type":"object","required":["node_ids"],"title":"FederationMembershipCreateRequest","description":"Request schema for federation membership create."},"FederationMembershipCreateResponse":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"saved_count":{"type":"integer","title":"Saved Count"}},"type":"object","required":["federation_id","saved_count"],"title":"FederationMembershipCreateResponse","description":"Response schema for creating federation membership."},"FederationMembershipListItem":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"node_ids":{"items":{"type":"integer"},"type":"array","title":"Node Ids"}},"type":"object","required":["federation_id"],"title":"FederationMembershipListItem","description":"Schema for federation membership list item."},"FederationTpmAttestationStatusResponse":{"properties":{"federation_id":{"type":"string","title":"Federation Id"},"total_nodes":{"type":"integer","title":"Total Nodes"},"verified_nodes_count":{"type":"integer","title":"Verified Nodes Count"},"all_verified":{"type":"boolean","title":"All Verified"},"verified_node_ids":{"items":{"type":"integer"},"type":"array","title":"Verified Node Ids"}},"type":"object","required":["federation_id","total_nodes","verified_nodes_count","all_verified"],"title":"FederationTpmAttestationStatusResponse","description":"Response schema for federation TPM attestation status."},"FlwrUpdateCheckRequest":{"properties":{"package_name":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Package Name","description":"Installed Flower package name, for example flwr or flwr-nightly."},"flwr_version":{"type":"string","maxLength":64,"minLength":1,"title":"Flwr Version","description":"Current Flower version running in the process."},"python_version":{"type":"string","maxLength":64,"minLength":1,"title":"Python Version","description":"Current Python version running in the process."},"os":{"type":"string","maxLength":64,"minLength":1,"title":"Os","description":"OS identifier of the runtime host."},"os_version":{"type":"string","maxLength":128,"minLength":1,"title":"Os Version","description":"OS version of the runtime host."},"process_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Name","description":"Optional Flower process or command name."}},"type":"object","required":["flwr_version","python_version","os","os_version"],"title":"FlwrUpdateCheckRequest","description":"Request schema for Flower update check."},"FlwrUpdateCheckResponse":{"properties":{"update_available":{"type":"boolean","title":"Update Available"},"current_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Version"},"latest_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Version"},"upgrade_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upgrade Hint"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"additionalProperties":false,"type":"object","required":["update_available"],"title":"FlwrUpdateCheckResponse","description":"Response schema for Flower update check."},"GetServerPublicKeyResponse":{"properties":{"public_key_base64":{"type":"string","title":"Public Key Base64"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["public_key_base64","expires_at"],"title":"GetServerPublicKeyResponse","description":"Response schema for get server public key."},"GlobalPcrPolicyCreateRequest":{"properties":{"policies":{"items":{"$ref":"#/components/schemas/GlobalPcrPolicyItem"},"type":"array","title":"Policies"}},"type":"object","required":["policies"],"title":"GlobalPcrPolicyCreateRequest","description":"Request schema for global PCR policy create."},"GlobalPcrPolicyCreateResponse":{"properties":{"saved_count":{"type":"integer","title":"Saved Count"}},"type":"object","required":["saved_count"],"title":"GlobalPcrPolicyCreateResponse","description":"Response schema for creating global PCR policy."},"GlobalPcrPolicyItem":{"properties":{"measurement_kind":{"type":"string","title":"Measurement Kind"},"measurement_hash":{"type":"string","title":"Measurement Hash"},"hash_alg":{"type":"string","const":"sha256","title":"Hash Alg","default":"sha256"},"pcr_bank":{"type":"string","const":"sha256","title":"Pcr Bank","default":"sha256"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["measurement_kind","measurement_hash"],"title":"GlobalPcrPolicyItem","description":"Schema for global PCR policy item."},"GpuAttestationRequest":{"properties":{"nonce_hex":{"type":"string","maxLength":256,"minLength":32,"title":"Nonce Hex"}},"type":"object","required":["nonce_hex"],"title":"GpuAttestationRequest","description":"Request schema for GPU attestation."},"GpuAttestationResponse":{"properties":{"nonce":{"type":"string","title":"Nonce"},"platform_token":{"type":"string","title":"Platform Token"},"gpu_token":{"additionalProperties":{"type":"string"},"type":"object","title":"Gpu Token"},"verifier_env":{"type":"string","const":"REMOTE","title":"Verifier Env"},"issued_at":{"type":"integer","title":"Issued At"}},"type":"object","required":["nonce","platform_token","gpu_token","verifier_env","issued_at"],"title":"GpuAttestationResponse","description":"Response schema for GPU attestation."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntelTdxAttestationCreateResponse":{"properties":{"node_id":{"type":"string","title":"Node Id"},"status":{"type":"string","title":"Status"},"attested_at":{"type":"string","format":"date-time","title":"Attested At"},"iat":{"type":"string","format":"date-time","title":"Iat"},"exp":{"type":"string","format":"date-time","title":"Exp"},"verification_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Error"}},"type":"object","required":["node_id","status","attested_at","iat","exp"],"title":"IntelTdxAttestationCreateResponse","description":"Response schema for creating intel TDX attestation."},"LicenseRequest":{"properties":{"flwr_license_key":{"type":"string","title":"Flwr License Key"},"flwr_version":{"type":"string","title":"Flwr Version"},"nonce":{"type":"string","title":"Nonce"}},"type":"object","required":["flwr_license_key","flwr_version","nonce"],"title":"LicenseRequest","description":"Request schema for license."},"LicenseVerificationInfo":{"properties":{"expires_at":{"type":"string","title":"Expires At"},"nonce":{"type":"string","title":"Nonce"},"timestamp":{"type":"integer","title":"Timestamp"}},"type":"object","required":["expires_at","nonce","timestamp"],"title":"LicenseVerificationInfo","description":"Schema for license verification info."},"LicenseVerificationInfoResponse":{"properties":{"license_verification_info":{"$ref":"#/components/schemas/LicenseVerificationInfo"},"signature_hex":{"type":"string","title":"Signature Hex"}},"type":"object","required":["license_verification_info","signature_hex"],"title":"LicenseVerificationInfoResponse","description":"Response schema for license verification info."},"ListUserAgentsResponse":{"properties":{"agents":{"items":{"$ref":"#/components/schemas/UserAgentSummary"},"type":"array","title":"Agents"}},"type":"object","title":"ListUserAgentsResponse","description":"Response schema for listing user agents."},"ManagementApiKeyCreateIn":{"properties":{},"type":"object","title":"ManagementApiKeyCreateIn","description":"Input schema for creating management API key."},"ManagementApiKeyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"hash_value":{"type":"string","title":"Hash Value"},"hash_method":{"type":"string","title":"Hash Method"},"project_id":{"type":"integer","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"}},"type":"object","required":["id","hash_value","hash_method","project_id","created_at"],"title":"ManagementApiKeyResponse","description":"Response schema for management API key."},"ManagementApiKeyUpdate":{"properties":{},"type":"object","title":"ManagementApiKeyUpdate","description":"Update schema for management API key."},"ManagementApiKeyWithApiKeys":{"properties":{"id":{"type":"integer","title":"Id"},"hash_value":{"type":"string","title":"Hash Value"},"hash_method":{"type":"string","title":"Hash Method"},"project_id":{"type":"integer","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"api_keys":{"items":{"$ref":"#/components/schemas/ApiKeyResponse"},"type":"array","title":"Api Keys"}},"type":"object","required":["id","hash_value","hash_method","project_id","created_at"],"title":"ManagementApiKeyWithApiKeys","description":"Schema for management API key with API keys."},"Message":{"properties":{"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"}},"type":"object","required":["role","content"],"title":"Message","description":"Schema for message."},"OrganizationCreditAssignmentResponse":{"properties":{"id":{"type":"integer","title":"Id"},"organization_id":{"type":"integer","title":"Organization Id"},"credits":{"type":"integer","title":"Credits"},"description":{"type":"string","title":"Description"},"valid_from":{"type":"string","format":"date","title":"Valid From"},"valid_to":{"type":"string","format":"date","title":"Valid To"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","organization_id","credits","description","valid_from","valid_to","created_at"],"title":"OrganizationCreditAssignmentResponse","description":"Serialized organization credit assignment."},"OrganizationOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"owner_flwr_aid":{"type":"string","title":"Owner Flwr Aid"}},"type":"object","required":["id","name","owner_flwr_aid"],"title":"OrganizationOut","description":"Output schema for organization."},"OrganizationUsageResponse":{"properties":{"current_billing_period":{"$ref":"#/components/schemas/BillingPeriod","description":"Current month usage"},"previous_billing_periods":{"items":{"$ref":"#/components/schemas/BillingPeriod"},"type":"array","title":"Previous Billing Periods","description":"Previous months usage history"}},"type":"object","required":["current_billing_period"],"title":"OrganizationUsageResponse","description":"Organization usage data formatted for frontend dashboard."},"ProductResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"display_name":{"type":"string","title":"Display Name"},"details":{"type":"string","title":"Details"},"stripe_product_id":{"type":"string","title":"Stripe Product Id"},"stripe_price_id":{"type":"string","title":"Stripe Price Id"},"whitelist_only":{"type":"boolean","title":"Whitelist Only"},"is_active":{"type":"boolean","title":"Is Active","default":false},"stripe":{"anyOf":[{"$ref":"#/components/schemas/ProductStripeInfo"},{"type":"null"}]}},"type":"object","required":["id","name","display_name","details","stripe_product_id","stripe_price_id","whitelist_only","stripe"],"title":"ProductResponse","description":"Response schema for product."},"ProductStripeInfo":{"properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"price":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"price_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Id"}},"type":"object","required":["active","price","currency","price_id"],"title":"ProductStripeInfo","description":"Schema for product stripe info."},"ProjectCreateRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"ProjectCreateRequest","description":"Request schema for project create."},"ProjectListResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"organization_id":{"type":"integer","title":"Organization Id"},"management_api_keys_count":{"type":"integer","title":"Management Api Keys Count"},"api_keys_count":{"type":"integer","title":"Api Keys Count"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"}},"type":"object","required":["id","name","organization_id","management_api_keys_count","api_keys_count"],"title":"ProjectListResponse","description":"Response schema for listing project."},"ProjectResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"organization_id":{"type":"integer","title":"Organization Id"},"management_api_keys":{"items":{"$ref":"#/components/schemas/ManagementApiKeyWithApiKeys"},"type":"array","title":"Management Api Keys"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"}},"type":"object","required":["id","name","organization_id"],"title":"ProjectResponse","description":"Response schema for project."},"ProjectUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"ProjectUpdate","description":"Update schema for project."},"PublicKeyResponse":{"properties":{"public_key":{"type":"string","title":"Public Key"},"signature":{"type":"string","title":"Signature"}},"type":"object","required":["public_key","signature"],"title":"PublicKeyResponse","description":"Response schema for public key."},"PublishAppResponse":{"properties":{"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Id"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"state":{"anyOf":[{"$ref":"#/components/schemas/AppVersionState"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","title":"PublishAppResponse","description":"Response schema for publish app."},"RegisterSuperNodeContext":{"properties":{"type":{"type":"string","const":"register_supernode","title":"Type"}},"additionalProperties":false,"type":"object","required":["type"],"title":"RegisterSuperNodeContext","description":"Schema for register super node context."},"ResponsesCreateRequest":{"properties":{"model":{"type":"string","title":"Model"},"input":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"$ref":"#/components/schemas/ResponsesInputMessage"},{"$ref":"#/components/schemas/ResponsesInputFunctionCall"},{"$ref":"#/components/schemas/ResponsesInputFunctionCallOutput"},{"$ref":"#/components/schemas/ResponsesInputReasoning"},{"$ref":"#/components/schemas/ResponsesInputAgentMessage"}]},"type":"array"}],"title":"Input"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number","maximum":1.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Top P","description":"top_p must be in (0, 1]."},"max_output_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Output Tokens"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools"},"tool_choice":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Choice"},"parallel_tool_calls":{"type":"boolean","title":"Parallel Tool Calls","default":true},"stream":{"type":"boolean","title":"Stream","default":false},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"store":{"type":"boolean","title":"Store","default":true},"previous_response_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Response Id"}},"additionalProperties":true,"type":"object","required":["model","input"],"title":"ResponsesCreateRequest","description":"Request schema for responses create."},"ResponsesCreateResponse":{"properties":{},"additionalProperties":true,"type":"object","title":"ResponsesCreateResponse","description":"Response schema for creating responses."},"ResponsesInputAgentMessage":{"properties":{"type":{"type":"string","const":"agent_message","title":"Type"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"recipient":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient"},"content":{"items":{"anyOf":[{"$ref":"#/components/schemas/ResponsesInputTextContent"},{"$ref":"#/components/schemas/ResponsesInputRefusalContent"},{"$ref":"#/components/schemas/ResponsesInputEncryptedContent"}]},"type":"array","title":"Content"}},"additionalProperties":true,"type":"object","required":["type","content"],"title":"ResponsesInputAgentMessage","description":"Schema for a Codex agent-to-agent replay item."},"ResponsesInputEncryptedContent":{"properties":{"type":{"type":"string","const":"encrypted_content","title":"Type"},"encrypted_content":{"type":"string","title":"Encrypted Content"}},"type":"object","required":["type","encrypted_content"],"title":"ResponsesInputEncryptedContent","description":"Schema for Codex agent-to-agent continuation content."},"ResponsesInputFunctionCall":{"properties":{"type":{"type":"string","const":"function_call","title":"Type"},"call_id":{"type":"string","title":"Call Id"},"name":{"type":"string","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"type":"object","required":["type","call_id","name","arguments"],"title":"ResponsesInputFunctionCall","description":"Schema for responses input function call."},"ResponsesInputFunctionCallOutput":{"properties":{"type":{"type":"string","const":"function_call_output","title":"Type"},"call_id":{"type":"string","title":"Call Id"},"output":{"type":"string","title":"Output"}},"type":"object","required":["type","call_id","output"],"title":"ResponsesInputFunctionCallOutput","description":"Schema for responses input function call output."},"ResponsesInputMessage":{"properties":{"type":{"anyOf":[{"type":"string","const":"message"},{"type":"null"}],"title":"Type"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"role":{"type":"string","enum":["user","assistant","system","developer"],"title":"Role"},"content":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"$ref":"#/components/schemas/ResponsesInputTextContent"},{"$ref":"#/components/schemas/ResponsesInputRefusalContent"}]},"type":"array"}],"title":"Content"},"phase":{"anyOf":[{"type":"string","enum":["commentary","final_answer"]},{"type":"null"}],"title":"Phase"}},"type":"object","required":["role","content"],"title":"ResponsesInputMessage","description":"Schema for responses input message."},"ResponsesInputReasoning":{"properties":{"type":{"type":"string","const":"reasoning","title":"Type"}},"additionalProperties":true,"type":"object","required":["type"],"title":"ResponsesInputReasoning","description":"Schema for a native Responses reasoning replay item."},"ResponsesInputRefusalContent":{"properties":{"type":{"type":"string","const":"refusal","title":"Type"},"refusal":{"type":"string","title":"Refusal"}},"type":"object","required":["type","refusal"],"title":"ResponsesInputRefusalContent","description":"Schema for a replayed Responses refusal content part."},"ResponsesInputTextContent":{"properties":{"type":{"type":"string","enum":["input_text","output_text"],"title":"Type"},"text":{"type":"string","title":"Text"}},"type":"object","required":["type","text"],"title":"ResponsesInputTextContent","description":"Schema for responses input text content."},"SearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"max_results":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Results"},"include_raw_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Raw Content"}},"type":"object","required":["query"],"title":"SearchRequest","description":"Request schema for search."},"SearchResponse":{"properties":{"query":{"type":"string","title":"Query"},"answer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer"},"images":{"items":{"$ref":"#/components/schemas/SearchResultImage"},"type":"array","title":"Images"},"results":{"items":{"$ref":"#/components/schemas/SearchResult"},"type":"array","title":"Results"},"response_time":{"type":"number","title":"Response Time"}},"type":"object","required":["query","answer","images","results","response_time"],"title":"SearchResponse","description":"Response schema for search."},"SearchResult":{"properties":{"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"},"content":{"type":"string","title":"Content"},"score":{"type":"number","title":"Score"},"raw_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw Content"}},"type":"object","required":["title","url","content","score"],"title":"SearchResult","description":"Schema for search result."},"SearchResultImage":{"properties":{"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["url","description"],"title":"SearchResultImage","description":"Schema for search result image."},"SocialLinks":{"properties":{"x":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"X"},"github":{"anyOf":[{"type":"string","maxLength":39},{"type":"null"}],"title":"Github"},"linkedin":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Linkedin"},"huggingface":{"anyOf":[{"type":"string","maxLength":39},{"type":"null"}],"title":"Huggingface"},"scholar":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Scholar"}},"type":"object","title":"SocialLinks","description":"Schema for social links."},"StarResponse":{"properties":{"app_id":{"type":"string","title":"App Id"},"starred":{"type":"boolean","title":"Starred"}},"type":"object","required":["app_id","starred"],"title":"StarResponse","description":"Response schema for star."},"StartRunContext":{"properties":{"type":{"type":"string","const":"start_run","title":"Type"},"federation_id":{"type":"string","minLength":1,"title":"Federation Id"},"runtime":{"type":"string","enum":["deployment","simulation"],"title":"Runtime"}},"type":"object","required":["type","federation_id","runtime"],"title":"StartRunContext","description":"Schema for start run context."},"SubmitPublicKeyRequest":{"properties":{"public_key_base64":{"type":"string","title":"Public Key Base64"}},"type":"object","required":["public_key_base64"],"title":"SubmitPublicKeyRequest","description":"Request schema for submit public key."},"SubmitPublicKeyResponse":{"properties":{"encryption_id":{"type":"string","title":"Encryption Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["encryption_id","expires_at"],"title":"SubmitPublicKeyResponse","description":"Response schema for submit public key."},"SubmitSignatureRequest":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id","description":"Like '@user/app'"},"app_version":{"type":"string","title":"App Version"},"signature_b64":{"type":"string","title":"Signature B64"},"signed_at":{"type":"integer","title":"Signed At"},"flwr_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Version","description":"Optional Flower platform version making this request."}},"type":"object","required":["app_id","app_version","signature_b64","signed_at"],"title":"SubmitSignatureRequest","description":"Request schema for submit signature."},"SubmitSignatureResponse":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"app_version":{"type":"string","title":"App Version"},"public_key_id":{"type":"string","title":"Public Key Id"},"signer_user":{"type":"string","title":"Signer User"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["app_id","app_version","public_key_id","signer_user","created_at"],"title":"SubmitSignatureResponse","description":"Response schema for submit signature."},"ToSOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"effective_date":{"type":"string","format":"date-time","title":"Effective Date","description":"Timezone-naive datetime. Do not include 'Z' or timezone offset.","example":"2025-06-18T12:18:36.224"},"link":{"type":"string","title":"Link"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["id","name","effective_date","link","version"],"title":"ToSOut","description":"Output schema for to s."},"ToolFunction":{"properties":{"type":{"type":"string","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/ToolFunctionParameters"},"required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required"}},"type":"object","required":["function"],"title":"ToolFunction","description":"Schema for tool function."},"ToolFunctionParameters":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"parameters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Parameters"}},"type":"object","required":["name","description"],"title":"ToolFunctionParameters","description":"Schema for tool function parameters."},"TpmAttestationCreateResponse":{"properties":{"node_id":{"type":"string","title":"Node Id"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Id"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"status":{"type":"string","title":"Status"},"verification_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Error"}},"type":"object","required":["node_id","status"],"title":"TpmAttestationCreateResponse","description":"Response schema for creating TPM attestation."},"UpdateApiKeyForOwnerRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name","description":"Name of the API key","examples":["Updated Production App","New Development Key"]},"expires_at":{"type":"integer","exclusiveMinimum":0.0,"title":"Expires At","description":"Expiration timestamp (Unix timestamp)","examples":[1790938037]},"total_tokens_limit":{"type":"integer","minimum":0.0,"title":"Total Tokens Limit","description":"Total tokens limit","default":100000000,"examples":[100000,500000,1000000]},"total_searches_limit":{"type":"integer","minimum":0.0,"title":"Total Searches Limit","description":"Total searches limit","default":0,"examples":[1000,5000,10000]}},"type":"object","title":"UpdateApiKeyForOwnerRequest","description":"Request schema for updating API key for owner."},"Usage":{"properties":{"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Tokens"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completion Tokens"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens"}},"type":"object","required":["prompt_tokens","completion_tokens","total_tokens"],"title":"Usage","description":"Schema for usage."},"UsageBucket":{"properties":{"model":{"type":"string","title":"Model"},"task":{"type":"string","title":"Task"},"e2ee_enabled":{"type":"boolean","title":"E2Ee Enabled"},"cc_enabled":{"type":"boolean","title":"Cc Enabled"},"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"completion_tokens":{"type":"integer","title":"Completion Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"},"requests":{"type":"integer","title":"Requests"},"spend_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Spend Cents"}},"type":"object","required":["model","task","e2ee_enabled","cc_enabled","prompt_tokens","completion_tokens","total_tokens","requests"],"title":"UsageBucket","description":"One grouped usage bucket."},"User":{"properties":{"flwr_aid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Aid"},"username":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Username"},"tagline":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Tagline"},"affiliation":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Affiliation"},"location":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Location"},"website":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Website"},"social_links":{"anyOf":[{"$ref":"#/components/schemas/SocialLinks"},{"type":"null"}]}},"type":"object","title":"User","description":"Schema for user."},"UserAchievement":{"properties":{"key":{"$ref":"#/components/schemas/AchievementKey"},"label":{"type":"string","title":"Label"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"}},"type":"object","required":["key","label","assigned_at"],"title":"UserAchievement","description":"Schema for user achievement."},"UserAgentSummary":{"properties":{"app_id":{"type":"string","pattern":"^@[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$","title":"App Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"color":{"anyOf":[{"$ref":"#/components/schemas/AgentColor"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"fab_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fab Hash"}},"type":"object","required":["app_id"],"title":"UserAgentSummary","description":"Schema for a user agent summary."},"UserAvatar":{"properties":{"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"}},"type":"object","title":"UserAvatar","description":"Schema for user avatar."},"UserComplete":{"properties":{"flwr_aid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Aid"},"username":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Username"},"tagline":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Tagline"},"affiliation":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Affiliation"},"location":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Location"},"website":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Website"},"social_links":{"anyOf":[{"$ref":"#/components/schemas/SocialLinks"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"accepted":{"type":"boolean","title":"Accepted"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"},"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id"}},"type":"object","required":["accepted"],"title":"UserComplete","description":"Schema for user complete."},"UserDetails":{"properties":{"tagline":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Tagline"},"affiliation":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Affiliation"},"location":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Location"},"website":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Website"},"social_links":{"anyOf":[{"$ref":"#/components/schemas/SocialLinks"},{"type":"null"}]}},"type":"object","title":"UserDetails","description":"Schema for user details."},"UserFeatureFlags":{"properties":{"flwr_aid":{"type":"string","title":"Flwr Aid"},"feature_flags":{"items":{"$ref":"#/components/schemas/FeatureFlagName"},"type":"array","title":"Feature Flags"}},"type":"object","required":["flwr_aid","feature_flags"],"title":"UserFeatureFlags","description":"Active feature flags assigned to a user."},"UserInfo":{"properties":{"flwr_aid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Aid"},"username":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Username"},"tagline":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Tagline"},"affiliation":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Affiliation"},"location":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Location"},"website":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Website"},"social_links":{"anyOf":[{"$ref":"#/components/schemas/SocialLinks"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"achievements":{"items":{"$ref":"#/components/schemas/UserAchievement"},"type":"array","title":"Achievements"}},"type":"object","title":"UserInfo","description":"Schema for user info."},"UserPublicKeyResponse":{"properties":{"public_key_id":{"type":"string","title":"Public Key Id"},"public_key_openssh":{"type":"string","title":"Public Key Openssh"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["public_key_id","public_key_openssh","created_at"],"title":"UserPublicKeyResponse","description":"Public view of a user's public key.\n\nReturns only the fields required by the consumer: id, the OpenSSH one-line\nkey and the creation timestamp."},"UserTosLatestOut":{"properties":{"flwr_aid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Aid"},"version":{"type":"integer","title":"Version"},"accepted":{"type":"boolean","title":"Accepted"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["version","accepted"],"title":"UserTosLatestOut","description":"Output schema for user Terms of Service latest."},"UserTosOut":{"properties":{"flwr_aid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flwr Aid"},"accepted_at":{"type":"string","format":"date-time","title":"Accepted At"},"tos":{"$ref":"#/components/schemas/ToSOut"}},"type":"object","required":["accepted_at","tos"],"title":"UserTosOut","description":"Output schema for user Terms of Service."},"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"},"Verification":{"properties":{"public_key_id":{"type":"string","title":"Public Key Id"},"signature":{"type":"string","title":"Signature"},"signed_at":{"type":"integer","title":"Signed At"},"signer_user":{"type":"string","title":"Signer User"},"is_publisher_signature":{"type":"boolean","title":"Is Publisher Signature"}},"type":"object","required":["public_key_id","signature","signed_at","signer_user","is_publisher_signature"],"title":"Verification","description":"Schema for verification."},"VersionUpdatePolicyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"message_template":{"type":"string","title":"Message Template"},"target_version":{"type":"string","title":"Target Version"},"upgrade_hint":{"type":"string","title":"Upgrade Hint"},"active_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Active From"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"additionalProperties":false,"type":"object","required":["id","name","message_template","target_version","upgrade_hint","active_from","is_enabled","created_at","updated_at"],"title":"VersionUpdatePolicyResponse","description":"Response schema for version update policy."},"VersionUpdatePolicyUpsertRequest":{"properties":{"target_version":{"type":"string","maxLength":64,"minLength":1,"title":"Target Version","description":"Target Flower version that should trigger an update notice."},"message_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Template","description":"Optional message template with current_version, latest_version, and upgrade_hint placeholders."},"upgrade_hint":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Upgrade Hint","description":"Optional upgrade hint shown to callers."},"active_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Active From","description":"Optional UTC timestamp after which this policy becomes active."},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled","description":"Optional flag to enable or disable this policy."}},"additionalProperties":false,"type":"object","required":["target_version"],"title":"VersionUpdatePolicyUpsertRequest","description":"Request schema for version update policy upsert."}},"securitySchemes":{"RuntimeTaskToken":{"type":"apiKey","description":"Task token issued by the Runtime API.","in":"header","name":"flwr-task-token"},"HTTPBearer":{"type":"http","scheme":"bearer"}}}}