{"openapi":"3.1.0","info":{"title":"Carbon Arc - Client Admin API","version":"0.1.0"},"paths":{"/api/v1/admin/clients":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Clients","operationId":"get_clients_api_v1_admin_clients_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientRead"},"title":"Response Get Clients Api V1 Admin Clients Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","clients"],"summary":"Create Client","description":"Create a new client with audit field. Whenever a client is created,\na default wallet is also created. This is done based on logic in models/events/account.py.\nThis also assigns provider access to the client based on logic in models/events/provider.py,\nwhich depends on the client compliance managed status and provider properties.\n\nAddress validation is performed via stripe.tax.Calculation.create() before the client is\npersisted. This creates a lightweight Calculation record in the Stripe dashboard on every\nattempt (Stripe has no dry-run mode for this API). The records carry no financial impact and\nare not tied to a customer, but will be visible in the Stripe audit trail.\n\nArgs:\n    client: ClientCreate\n    user_email: str","operationId":"create_client_api_v1_admin_clients_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Client","operationId":"get_client_api_v1_admin_clients__client_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","clients"],"summary":"Update Client","operationId":"update_client_api_v1_admin_clients__client_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","clients"],"summary":"Delete Client","operationId":"delete_client_api_v1_admin_clients__client_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_delete_client_api_v1_admin_clients__client_id__delete"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/mcp-provider-access-follows":{"patch":{"tags":["Admin APIs","clients"],"summary":"Patch Mcp Provider Access Follows","description":"Set whether MCP access follows API access for this client, then align MCP\nflags on all client–provider rows from API access (respecting MCP locks).","operationId":"patch_mcp_provider_access_follows_api_v1_admin_clients__client_id__mcp_provider_access_follows_patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientMcpProviderAccessFollowsPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/exchange":{"put":{"tags":["Admin APIs","clients"],"summary":"Set Client Exchange","description":"PRO-136: enable or disable Exchange for this client.\n\nAtomic toggle for Exchange across all plan tiers. Updates both the\n``client_feature_access`` row (source of truth for\n``Client.exchange_enabled``) and the platform\n``client_products.features`` entry (source of truth for the user-facing\n``/me/products/{pid}/feature-access`` response) in a single transaction.","operationId":"set_client_exchange_api_v1_admin_clients__client_id__exchange_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientExchangeUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/bulk-plan-type":{"post":{"tags":["Admin APIs","clients"],"summary":"Bulk Set Client Plan Type","description":"Upsert plan_type for multiple clients in one call.\n\nEach upsert runs in a savepoint so one failure does not abort the shared\ntransaction or poison subsequent rows; successes match persisted rows.","operationId":"bulk_set_client_plan_type_api_v1_admin_clients_bulk_plan_type_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBulkPlanTypeUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/clients/{client_id}/plan-type":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Client Plan Type","description":"Fetch plan_type from carcapi_config.catalog_clients for the given client UUID.","operationId":"get_client_plan_type_api_v1_admin_clients__client_id__plan_type_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","clients"],"summary":"Set Client Plan Type","description":"Upsert plan_type into carcapi_config.catalog_clients using the main client UUID.","operationId":"set_client_plan_type_api_v1_admin_clients__client_id__plan_type_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPlanTypeUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/send-payment-collection-email":{"post":{"tags":["Admin APIs","clients"],"summary":"Send Payment Collection Email","description":"Send payment method collection email to the client.","operationId":"send_payment_collection_email_api_v1_admin_clients__client_id__send_payment_collection_email_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/groups":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Groups By Client","operationId":"get_groups_by_client_api_v1_admin_clients__client_id__groups_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GroupRead"},"title":"Response Get Groups By Client Api V1 Admin Clients  Client Id  Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/default-group":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Default Group","description":"Get the default group for a client","operationId":"get_default_group_api_v1_admin_clients__client_id__default_group_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/users":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Users By Client","description":"Get all users for a client","operationId":"get_users_by_client_api_v1_admin_clients__client_id__users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"},"title":"Response Get Users By Client Api V1 Admin Clients  Client Id  Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/issue-promotional-grants":{"post":{"tags":["Admin APIs","clients"],"summary":"Issue Promotional Grants","description":"Issue a promotional token grant to a client using existing or newly created promotional tokens.\n\nThis endpoint finds an existing promotional token and issues a single grant to the client.\nIf no promotional tokens exist, it creates a new one with a safe priority (10) to avoid conflicts.\nThis prevents the priority conflicts that occur when creating tokens with priority 1.\n\nArgs:\n    client_id: ID of the client to issue grant to\n    request: Promotional grant request with amount, expires_at, and priority\n    funding_service: Service for issuing token grants\n    token_service: Service for finding/creating promotional tokens\n    user: Authenticated admin user\n\nReturns:\n    Dict containing details of the issued grant\n\nRaises:\n    ValidationError: If promotional token creation fails or client not found","operationId":"issue_promotional_grants_api_v1_admin_clients__client_id__issue_promotional_grants_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuePromotionalGrantsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/buy-grants":{"post":{"tags":["Admin APIs","clients"],"summary":"Buy Grants","description":"Create a token purchase for the client with comprehensive validation and error handling.\n\nThis endpoint provides a production-ready token purchase flow supporting:\n- Credit card payments via Stripe PaymentIntent\n- ACH payments via Stripe PaymentIntent\n- Invoice payments for eligible plans\n\nThe endpoint implements proper:\n- Input validation and sanitization\n- User permission checks\n- Business rule enforcement\n- Comprehensive error handling\n- Audit logging\n\nArgs:\n    client_id: UUID string of the client to purchase tokens for\n    request: Purchase request with token_amount, payment_method, and optional fields\n    user: Authenticated user making the request\n\nReturns:\n    Dict containing purchase details:\n    - payment_method: The payment method used\n    - payment_id: Internal payment tracking ID\n    - token_amount: Number of tokens purchased\n    - total_amount: Total cost in USD\n    - For Card/ACH: PaymentIntent with client_secret for frontend processing\n    - For Invoice: Invoice details with hosted_invoice_url\n\nRaises:\n    400: Invalid input parameters or business rule violations\n    401: User not authenticated\n    403: User lacks permission for this client\n    404: Client plan or tokens not found\n    422: Business logic violations\n    500: System errors\n    502: External service (Stripe) errors","operationId":"buy_grants_api_v1_admin_clients__client_id__buy_grants_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyTokensRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Buy Grants Api V1 Admin Clients  Client Id  Buy Grants Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/mcp/daily-window":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Mcp Daily Window","description":"MCP daily issuance cap, balance, and today's activity (MCP timezone window).","operationId":"get_mcp_daily_window_api_v1_admin_clients__client_id__mcp_daily_window_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpDailyWindowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/recurring-token-grant-schedules":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Client Recurring Token Grant Schedules","description":"Get recurring token grant schedules for a client.","operationId":"get_client_recurring_token_grant_schedules_api_v1_admin_clients__client_id__recurring_token_grant_schedules_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RecurringGrantScheduleResponse"},"title":"Response Get Client Recurring Token Grant Schedules Api V1 Admin Clients  Client Id  Recurring Token Grant Schedules Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/health":{"get":{"tags":["Admin APIs","clients"],"summary":"Get Client Health","operationId":"get_client_health_api_v1_admin_clients__client_id__health_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Client Health Api V1 Admin Clients  Client Id  Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users":{"get":{"tags":["Admin APIs","users"],"summary":"Get Users","operationId":"get_users_api_v1_admin_users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"},"title":"Response Get Users Api V1 Admin Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","users"],"summary":"Create User","operationId":"create_user_api_v1_admin_users_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/admins":{"get":{"tags":["Admin APIs","users"],"summary":"Get Admin Users","operationId":"get_admin_users_api_v1_admin_users_admins_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"},"title":"Response Get Admin Users Api V1 Admin Users Admins Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}":{"get":{"tags":["Admin APIs","users"],"summary":"Get User","operationId":"get_user_api_v1_admin_users__user_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","users"],"summary":"Update User","operationId":"update_user_api_v1_admin_users__user_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","users"],"summary":"Delete User","operationId":"delete_user_api_v1_admin_users__user_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_delete_user_api_v1_admin_users__user_id__delete"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/okta-status":{"get":{"tags":["Admin APIs","users"],"summary":"Get Okta User Status","operationId":"get_okta_user_status_api_v1_admin_users__user_id__okta_status_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Okta User Status Api V1 Admin Users  User Id  Okta Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/marketing-preferences":{"get":{"tags":["Admin APIs","users"],"summary":"Get User Marketing Preferences","description":"Admin view into a user's marketing subscription state.\n\nHubSpot is the source of truth.","operationId":"get_user_marketing_preferences_api_v1_admin_users__user_id__marketing_preferences_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingPreferencesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","users"],"summary":"Update User Marketing Preferences","description":"Admin update of a user's marketing subscription state.\n\nThis has the same HubSpot effect as if the user updated their own preferences.","operationId":"update_user_marketing_preferences_api_v1_admin_users__user_id__marketing_preferences_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingPreferencesUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingPreferencesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/payment-methods":{"get":{"tags":["Admin APIs","users"],"summary":"Get User Payment Methods","description":"Get saved payment methods for a user","operationId":"get_user_payment_methods_api_v1_admin_users__user_id__payment_methods_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/group/{group_id}":{"put":{"tags":["Admin APIs","users"],"summary":"Change User Group","description":"Change a user's group (admin only)","operationId":"change_user_group_api_v1_admin_users__user_id__group__group_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/group":{"delete":{"tags":["Admin APIs","users"],"summary":"Remove User From Group","description":"Remove a user from their current group (admin only)","operationId":"remove_user_from_group_api_v1_admin_users__user_id__group_delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/reset-password":{"post":{"tags":["Admin APIs","users"],"summary":"Reset User Password","description":"Reset a user's password (admin only)","operationId":"reset_user_password_api_v1_admin_users__user_id__reset_password_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/resend-activation":{"post":{"tags":["Admin APIs","users"],"summary":"Resend User Activation","description":"Resend activation email to a user (admin only)","operationId":"resend_user_activation_api_v1_admin_users__user_id__resend_activation_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/user-data-collection-consent-history":{"get":{"tags":["Admin APIs","user-data-collection-consent-history"],"summary":"Get User Data Collection Consent History","operationId":"get_user_data_collection_consent_history_api_v1_admin_user_data_collection_consent_history_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserDataCollectionConsentHistoryRead"},"title":"Response Get User Data Collection Consent History Api V1 Admin User Data Collection Consent History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/user-data-collection-consent-history/{history_id}":{"get":{"tags":["Admin APIs","user-data-collection-consent-history"],"summary":"Get User Data Collection Consent History Record","operationId":"get_user_data_collection_consent_history_record_api_v1_admin_user_data_collection_consent_history__history_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"history_id","in":"path","required":true,"schema":{"type":"string","title":"History Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDataCollectionConsentHistoryRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-data-collection-consent-restrictions/client/{client_id}":{"get":{"tags":["Admin APIs","client-data-collection-consent-restrictions"],"summary":"Get Client Data Collection Consent Restriction","operationId":"get_client_data_collection_consent_restriction_api_v1_admin_client_data_collection_consent_restrictions_client__client_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientDataCollectionConsentRestrictionStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","client-data-collection-consent-restrictions"],"summary":"Set Client Data Collection Consent Restriction","operationId":"set_client_data_collection_consent_restriction_api_v1_admin_client_data_collection_consent_restrictions_client__client_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientDataCollectionConsentRestrictionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientDataCollectionConsentRestrictionStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/products":{"get":{"tags":["Admin APIs","products"],"summary":"Get Products","operationId":"get_products_api_v1_admin_products_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","products"],"summary":"Create Product","operationId":"create_product_api_v1_admin_products_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/products/{product_id}":{"get":{"tags":["Admin APIs","products"],"summary":"Get Product","operationId":"get_product_api_v1_admin_products__product_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","products"],"summary":"Update Product","operationId":"update_product_api_v1_admin_products__product_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","products"],"summary":"Delete Product","operationId":"delete_product_api_v1_admin_products__product_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-products":{"get":{"tags":["Admin APIs","client-products"],"summary":"Get Client Products","operationId":"get_client_products_api_v1_admin_client_products_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientProductRead"},"title":"Response Get Client Products Api V1 Admin Client Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","client-products"],"summary":"Create Client Product","description":"Create a client product association.\n\nThis endpoint creates the database record. User onboarding to the product's\nOkta group is triggered automatically via SQLAlchemy event listeners and\nprocessed in the background.\n\nReturns HTTP 202 to indicate the request is accepted and Okta sync processing\ncontinues in the background.","operationId":"create_client_product_api_v1_admin_client_products_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProductCreate"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProductBackgroundTaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-products/client/{client_id}/product/{product_id}":{"get":{"tags":["Admin APIs","client-products"],"summary":"Get Client Product","operationId":"get_client_product_api_v1_admin_client_products_client__client_id__product__product_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProductRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","client-products"],"summary":"Update Client Product","operationId":"update_client_product_api_v1_admin_client_products_client__client_id__product__product_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProductUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProductRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","client-products"],"summary":"Delete Client Product","description":"Delete a client product association.\n\nThis endpoint deletes the database record. User offboarding from the product's\nOkta group is triggered automatically via SQLAlchemy event listeners and\nprocessed in the background.\n\nReturns HTTP 202 to indicate the request is accepted and Okta sync processing\ncontinues in the background.","operationId":"delete_client_product_api_v1_admin_client_products_client__client_id__product__product_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProductBackgroundTaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/features":{"get":{"tags":["Admin APIs","features"],"summary":"Get Features","operationId":"get_features_api_v1_admin_features_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeatureRead"},"title":"Response Get Features Api V1 Admin Features Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","features"],"summary":"Create Feature","operationId":"create_feature_api_v1_admin_features_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/features/{feature_id}":{"get":{"tags":["Admin APIs","features"],"summary":"Get Feature","operationId":"get_feature_api_v1_admin_features__feature_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","features"],"summary":"Update Feature","operationId":"update_feature_api_v1_admin_features__feature_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","features"],"summary":"Delete Feature","operationId":"delete_feature_api_v1_admin_features__feature_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-feature-accesses":{"get":{"tags":["Admin APIs","client-feature-accesses"],"summary":"Get Client Feature Accesses","operationId":"get_client_feature_accesses_api_v1_admin_client_feature_accesses_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientFeatureAccessRead"},"title":"Response Get Client Feature Accesses Api V1 Admin Client Feature Accesses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","client-feature-accesses"],"summary":"Create Client Feature Access","operationId":"create_client_feature_access_api_v1_admin_client_feature_accesses_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureAccessCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-feature-accesses/client/{client_id}/feature/{feature_id}":{"get":{"tags":["Admin APIs","client-feature-accesses"],"summary":"Get Client Feature Access","operationId":"get_client_feature_access_api_v1_admin_client_feature_accesses_client__client_id__feature__feature_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","client-feature-accesses"],"summary":"Update Client Feature Access","operationId":"update_client_feature_access_api_v1_admin_client_feature_accesses_client__client_id__feature__feature_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureAccessUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","client-feature-accesses"],"summary":"Delete Client Feature Access","operationId":"delete_client_feature_access_api_v1_admin_client_feature_accesses_client__client_id__feature__feature_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/user-feature-accesses":{"get":{"tags":["Admin APIs","user-feature-accesses"],"summary":"Get User Feature Accesses","operationId":"get_user_feature_accesses_api_v1_admin_user_feature_accesses_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserFeatureAccessRead"},"title":"Response Get User Feature Accesses Api V1 Admin User Feature Accesses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","user-feature-accesses"],"summary":"Create User Feature Access","operationId":"create_user_feature_access_api_v1_admin_user_feature_accesses_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureAccessCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/user-feature-accesses/user/{user_id}/feature/{feature_id}":{"get":{"tags":["Admin APIs","user-feature-accesses"],"summary":"Get User Feature Access","operationId":"get_user_feature_access_api_v1_admin_user_feature_accesses_user__user_id__feature__feature_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","user-feature-accesses"],"summary":"Update User Feature Access","operationId":"update_user_feature_access_api_v1_admin_user_feature_accesses_user__user_id__feature__feature_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureAccessUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","user-feature-accesses"],"summary":"Delete User Feature Access","operationId":"delete_user_feature_access_api_v1_admin_user_feature_accesses_user__user_id__feature__feature_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-flags":{"get":{"tags":["Admin APIs","feature-flags"],"summary":"Get Feature Flags","operationId":"get_feature_flags_api_v1_admin_feature_flags_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeatureFlagRead"},"title":"Response Get Feature Flags Api V1 Admin Feature Flags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","feature-flags"],"summary":"Create Feature Flag","operationId":"create_feature_flag_api_v1_admin_feature_flags_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-flags/{feature_flag_id}":{"get":{"tags":["Admin APIs","feature-flags"],"summary":"Get Feature Flag","operationId":"get_feature_flag_api_v1_admin_feature_flags__feature_flag_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","feature-flags"],"summary":"Update Feature Flag","operationId":"update_feature_flag_api_v1_admin_feature_flags__feature_flag_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","feature-flags"],"summary":"Delete Feature Flag","operationId":"delete_feature_flag_api_v1_admin_feature_flags__feature_flag_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-feature-flags":{"get":{"tags":["Admin APIs","client-feature-flag"],"summary":"Get Client Feature Flags","operationId":"get_client_feature_flags_api_v1_admin_client_feature_flags_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientFeatureFlagRead"},"title":"Response Get Client Feature Flags Api V1 Admin Client Feature Flags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","client-feature-flag"],"summary":"Create Client Feature Flag","operationId":"create_client_feature_flag_api_v1_admin_client_feature_flags_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-feature-flags/client/{client_id}/feature_flag/{feature_flag_id}":{"get":{"tags":["Admin APIs","client-feature-flag"],"summary":"Get Client Feature Flag","operationId":"get_client_feature_flag_api_v1_admin_client_feature_flags_client__client_id__feature_flag__feature_flag_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","client-feature-flag"],"summary":"Update Client Feature Flag","operationId":"update_client_feature_flag_api_v1_admin_client_feature_flags_client__client_id__feature_flag__feature_flag_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","client-feature-flag"],"summary":"Delete Client Feature Flag","operationId":"delete_client_feature_flag_api_v1_admin_client_feature_flags_client__client_id__feature_flag__feature_flag_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/user-feature-flags":{"get":{"tags":["Admin APIs","user-feature-flag"],"summary":"Get User Feature Flags","operationId":"get_user_feature_flags_api_v1_admin_user_feature_flags_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserFeatureFlagRead"},"title":"Response Get User Feature Flags Api V1 Admin User Feature Flags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","user-feature-flag"],"summary":"Create User Feature Flag","operationId":"create_user_feature_flag_api_v1_admin_user_feature_flags_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureFlagCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/user-feature-flags/user/{user_id}/feature_flag/{feature_flag_id}":{"get":{"tags":["Admin APIs","user-feature-flag"],"summary":"Get User Feature Flag","operationId":"get_user_feature_flag_api_v1_admin_user_feature_flags_user__user_id__feature_flag__feature_flag_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","user-feature-flag"],"summary":"Update User Feature Flag","operationId":"update_user_feature_flag_api_v1_admin_user_feature_flags_user__user_id__feature_flag__feature_flag_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureFlagUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFeatureFlagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","user-feature-flag"],"summary":"Delete User Feature Flag","operationId":"delete_user_feature_flag_api_v1_admin_user_feature_flags_user__user_id__feature_flag__feature_flag_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"feature_flag_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/api-keys":{"get":{"tags":["Admin APIs","api-keys"],"summary":"Get Api Keys","operationId":"get_api_keys_api_v1_admin_api_keys_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyRead"},"title":"Response Get Api Keys Api V1 Admin Api Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/api-keys/{api_key_id}":{"get":{"tags":["Admin APIs","api-keys"],"summary":"Get Api Key","operationId":"get_api_key_api_v1_admin_api_keys__api_key_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"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/ApiKeyRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-elements":{"get":{"tags":["Admin APIs","feature-elements"],"summary":"Get Feature Elements","operationId":"get_feature_elements_api_v1_admin_feature_elements_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeatureElementRead"},"title":"Response Get Feature Elements Api V1 Admin Feature Elements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-elements/{feature_element_id}":{"get":{"tags":["Admin APIs","feature-elements"],"summary":"Get Feature Element","operationId":"get_feature_element_api_v1_admin_feature_elements__feature_element_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_element_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Element Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureElementRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","feature-elements"],"summary":"Delete Feature Element","operationId":"delete_feature_element_api_v1_admin_feature_elements__feature_element_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_element_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Element Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-feature-element-accesses":{"get":{"tags":["Admin APIs","client-feature-element-accesses"],"summary":"Get Client Feature Element Accesses","operationId":"get_client_feature_element_accesses_api_v1_admin_client_feature_element_accesses_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientFeatureElementAccessRead"},"title":"Response Get Client Feature Element Accesses Api V1 Admin Client Feature Element Accesses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-feature-element-accesses/client/{client_id}/feature_element/{feature_element_id}":{"get":{"tags":["Admin APIs","client-feature-element-accesses"],"summary":"Get Client Feature Element Access","operationId":"get_client_feature_element_access_api_v1_admin_client_feature_element_accesses_client__client_id__feature_element__feature_element_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_element_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Element Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureElementAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","client-feature-element-accesses"],"summary":"Update Client Feature Element Access","operationId":"update_client_feature_element_access_api_v1_admin_client_feature_element_accesses_client__client_id__feature_element__feature_element_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"feature_element_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Element Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureElementAccessUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureElementAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-data-source-links":{"get":{"tags":["Admin APIs","feature-data-source-links"],"summary":"Get Feature Data Source Links","operationId":"get_feature_data_source_links_api_v1_admin_feature_data_source_links_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeatureDataSourceLinkRead"},"title":"Response Get Feature Data Source Links Api V1 Admin Feature Data Source Links Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","feature-data-source-links"],"summary":"Create Feature Data Source Link","operationId":"create_feature_data_source_link_api_v1_admin_feature_data_source_links_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureDataSourceLinkCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureDataSourceLinkRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-data-source-links/feature/{feature_id}/data_source/{data_source_id}":{"get":{"tags":["Admin APIs","feature-data-source-links"],"summary":"Get Feature Data Source Link","operationId":"get_feature_data_source_link_api_v1_admin_feature_data_source_links_feature__feature_id__data_source__data_source_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureDataSourceLinkRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","feature-data-source-links"],"summary":"Delete Feature Data Source Link","operationId":"delete_feature_data_source_link_api_v1_admin_feature_data_source_links_feature__feature_id__data_source__data_source_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-element-data-sources":{"get":{"tags":["Admin APIs","feature-element-data-sources"],"summary":"Get Feature Element Data Sources","operationId":"get_feature_element_data_sources_api_v1_admin_feature_element_data_sources_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeatureElementDataSourceRead"},"title":"Response Get Feature Element Data Sources Api V1 Admin Feature Element Data Sources Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","feature-element-data-sources"],"summary":"Create Feature Element Data Source","operationId":"create_feature_element_data_source_api_v1_admin_feature_element_data_sources_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureElementDataSourceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureElementDataSourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feature-element-data-sources/{feature_element_data_source_id}":{"get":{"tags":["Admin APIs","feature-element-data-sources"],"summary":"Get Feature Element Data Source","operationId":"get_feature_element_data_source_api_v1_admin_feature_element_data_sources__feature_element_data_source_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_element_data_source_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Element Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureElementDataSourceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","feature-element-data-sources"],"summary":"Delete Feature Element Data Source","operationId":"delete_feature_element_data_source_api_v1_admin_feature_element_data_sources__feature_element_data_source_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_element_data_source_id","in":"path","required":true,"schema":{"type":"string","title":"Feature Element Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/providers":{"get":{"tags":["Admin APIs","providers"],"summary":"Get Providers","operationId":"get_providers_api_v1_admin_providers_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderRead"},"title":"Response Get Providers Api V1 Admin Providers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","providers"],"summary":"Create Provider","operationId":"create_provider_api_v1_admin_providers_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/providers/export":{"get":{"tags":["Admin APIs","providers"],"summary":"Get Providers Export","description":"Full provider rows from ``provider_admin_export`` (stage + channel restrictions).","operationId":"get_providers_export_api_v1_admin_providers_export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Providers Export Api V1 Admin Providers Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/providers/{provider_id}":{"get":{"tags":["Admin APIs","providers"],"summary":"Get Provider","operationId":"get_provider_api_v1_admin_providers__provider_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","providers"],"summary":"Update Provider","operationId":"update_provider_api_v1_admin_providers__provider_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","providers"],"summary":"Delete Provider","operationId":"delete_provider_api_v1_admin_providers__provider_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provider-services":{"get":{"tags":["Admin APIs","provider-services"],"summary":"Get Provider Services","operationId":"get_provider_services_api_v1_admin_provider_services_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderServiceRead"},"title":"Response Get Provider Services Api V1 Admin Provider Services Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","provider-services"],"summary":"Create Provider Service","operationId":"create_provider_service_api_v1_admin_provider_services_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderServiceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provider-services/{provider_service_id}":{"get":{"tags":["Admin APIs","provider-services"],"summary":"Get Provider Service","operationId":"get_provider_service_api_v1_admin_provider_services__provider_service_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_service_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Service Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","provider-services"],"summary":"Update Provider Service","operationId":"update_provider_service_api_v1_admin_provider_services__provider_service_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_service_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Service Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderServiceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","provider-services"],"summary":"Delete Provider Service","operationId":"delete_provider_service_api_v1_admin_provider_services__provider_service_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_service_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Service Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-restrictions":{"get":{"tags":["Admin APIs","client-provider-restrictions"],"summary":"Get Client Provider Restrictions","operationId":"get_client_provider_restrictions_api_v1_admin_client_provider_restrictions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderChannelRestrictionItemRead"},"title":"Response Get Client Provider Restrictions Api V1 Admin Client Provider Restrictions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","client-provider-restrictions"],"summary":"Create Client Provider Restrictions","operationId":"create_client_provider_restrictions_api_v1_admin_client_provider_restrictions_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderChannelRestrictionCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderChannelRestrictionItemRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provider-logs":{"get":{"tags":["Admin APIs","provider-logs"],"summary":"Get Provider Logs","operationId":"get_provider_logs_api_v1_admin_provider_logs_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderLogRead"},"title":"Response Get Provider Logs Api V1 Admin Provider Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","provider-logs"],"summary":"Create Provider Log","operationId":"create_provider_log_api_v1_admin_provider_logs_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderLogCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderLogRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provider-logs/{provider_log_id}":{"get":{"tags":["Admin APIs","provider-logs"],"summary":"Get Provider Log","operationId":"get_provider_log_api_v1_admin_provider_logs__provider_log_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_log_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderLogRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","provider-logs"],"summary":"Update Provider Log","operationId":"update_provider_log_api_v1_admin_provider_logs__provider_log_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_log_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Log Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderLogUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderLogRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","provider-logs"],"summary":"Delete Provider Log","operationId":"delete_provider_log_api_v1_admin_provider_logs__provider_log_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_log_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-accesses":{"get":{"tags":["Admin APIs","client-provider-accesses"],"summary":"Get Client Provider Accesses","operationId":"get_client_provider_accesses_api_v1_admin_client_provider_accesses_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientProviderAccessServiceCodeNameVendor"},"title":"Response Get Client Provider Accesses Api V1 Admin Client Provider Accesses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-accesses/client/{client_id}/provider/{provider_id}":{"put":{"tags":["Admin APIs","client-provider-accesses"],"summary":"Update Client Provider Access","operationId":"update_client_provider_access_api_v1_admin_client_provider_accesses_client__client_id__provider__provider_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProviderAccessServiceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProviderAccessServiceRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-accesses/client/{client_id}/":{"put":{"tags":["Admin APIs","client-provider-accesses"],"summary":"Update Client Accesses For All Providers","operationId":"update_client_accesses_for_all_providers_api_v1_admin_client_provider_accesses_client__client_id___put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProviderAccessServiceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-accesses/client-providers-table/":{"get":{"tags":["Admin APIs","client-provider-accesses"],"summary":"Get Client Provider Accesses Table","operationId":"get_client_provider_accesses_table_api_v1_admin_client_provider_accesses_client_providers_table__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"client_filter","in":"query","required":false,"schema":{"type":"string","default":"","title":"Client Filter"}},{"name":"provider_filter","in":"query","required":false,"schema":{"type":"string","default":"","title":"Provider Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-accesses/client/{client_id}/provider/{provider_id}/logs":{"get":{"tags":["Admin APIs","client-provider-accesses"],"summary":"Get Client Provider Access Audit","operationId":"get_client_provider_access_audit_api_v1_admin_client_provider_accesses_client__client_id__provider__provider_id__logs_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientProviderAccessAuditServiceRead"},"title":"Response Get Client Provider Access Audit Api V1 Admin Client Provider Accesses Client  Client Id  Provider  Provider Id  Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-provider-accesses/bulk-update/":{"put":{"tags":["Admin APIs","client-provider-accesses"],"summary":"Update Provider Accesses For All Clients","operationId":"update_provider_accesses_for_all_clients_api_v1_admin_client_provider_accesses_bulk_update__put","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientProviderAccessServiceBulkUpdate"},"type":"array","title":"Client Provider Accesses"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/tags":{"get":{"tags":["Admin APIs","tags"],"summary":"Get Tags","operationId":"get_tags_api_v1_admin_tags_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagRead"},"title":"Response Get Tags Api V1 Admin Tags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","tags"],"summary":"Create Tag","operationId":"create_tag_api_v1_admin_tags_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCreateOrUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tags/{tag_id}":{"get":{"tags":["Admin APIs","tags"],"summary":"Get Tag","operationId":"get_tag_api_v1_admin_tags__tag_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","tags"],"summary":"Update Tag","operationId":"update_tag_api_v1_admin_tags__tag_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCreateOrUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","tags"],"summary":"Delete Tag","operationId":"delete_tag_api_v1_admin_tags__tag_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string","title":"Tag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tags/create-bulk/":{"post":{"tags":["Admin APIs","tags"],"summary":"Create Bulk Tags","operationId":"create_bulk_tags_api_v1_admin_tags_create_bulk__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkTagCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/api-tokens":{"get":{"tags":["Admin APIs","api-tokens"],"summary":"Get Api Tokens","operationId":"get_api_tokens_api_v1_admin_api_tokens_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/APITokenRead"},"title":"Response Get Api Tokens Api V1 Admin Api Tokens Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/api-tokens/{api_token_id}":{"get":{"tags":["Admin APIs","api-tokens"],"summary":"Get Api Token","operationId":"get_api_token_api_v1_admin_api_tokens__api_token_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"api_token_id","in":"path","required":true,"schema":{"type":"string","title":"Api Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APITokenRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","api-tokens"],"summary":"Update Api Token","operationId":"update_api_token_api_v1_admin_api_tokens__api_token_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"api_token_id","in":"path","required":true,"schema":{"type":"string","title":"Api Token Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APITokenUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APITokenRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/roles":{"get":{"tags":["Admin APIs","roles"],"summary":"Get Roles","description":"Get all roles with optional filtering based on client compliance status.\n\n- Non-compliance managed clients: Returns only Client Admin and User roles\n- Compliance managed clients: Returns all roles\n- No client_id: Returns all roles","operationId":"get_roles_api_v1_admin_roles_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},{"type":"null"}],"description":"Filter roles by client's compliance status","title":"Client Id"},"description":"Filter roles by client's compliance status"},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleRead"},"title":"Response Get Roles Api V1 Admin Roles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","roles"],"summary":"Create Role","operationId":"create_role_api_v1_admin_roles_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/roles/{role_id}":{"get":{"tags":["Admin APIs","roles"],"summary":"Get Role","operationId":"get_role_api_v1_admin_roles__role_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","roles"],"summary":"Update Role","operationId":"update_role_api_v1_admin_roles__role_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","roles"],"summary":"Delete Role","operationId":"delete_role_api_v1_admin_roles__role_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/policy-elements":{"get":{"tags":["Admin APIs","policy-elements"],"summary":"Get Policy Elements","operationId":"get_policy_elements_api_v1_admin_policy_elements_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PolicyElementRead"},"title":"Response Get Policy Elements Api V1 Admin Policy Elements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","policy-elements"],"summary":"Create Policy Element","operationId":"create_policy_element_api_v1_admin_policy_elements_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyElementCreateOrUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyElementRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/policy-elements/{policy_element_id}":{"get":{"tags":["Admin APIs","policy-elements"],"summary":"Get Policy Element","operationId":"get_policy_element_api_v1_admin_policy_elements__policy_element_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"policy_element_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Element Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyElementRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","policy-elements"],"summary":"Update Policy Element","operationId":"update_policy_element_api_v1_admin_policy_elements__policy_element_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"policy_element_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Element Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyElementCreateOrUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyElementRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","policy-elements"],"summary":"Delete Policy Element","operationId":"delete_policy_element_api_v1_admin_policy_elements__policy_element_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"policy_element_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Element Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-users":{"get":{"tags":["Admin APIs","admin-users"],"summary":"Get Admin Users","operationId":"get_admin_users_api_v1_admin_admin_users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdminUserRead"},"title":"Response Get Admin Users Api V1 Admin Admin Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","admin-users"],"summary":"Create Admin User","operationId":"create_admin_user_api_v1_admin_admin_users_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-users/{user_id}":{"get":{"tags":["Admin APIs","admin-users"],"summary":"Get Admin User","operationId":"get_admin_user_api_v1_admin_admin_users__user_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","admin-users"],"summary":"Update Admin User","operationId":"update_admin_user_api_v1_admin_admin_users__user_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","admin-users"],"summary":"Delete Admin User","operationId":"delete_admin_user_api_v1_admin_admin_users__user_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-roles":{"get":{"tags":["Admin APIs","admin-roles"],"summary":"Get Roles","operationId":"get_roles_api_v1_admin_admin_roles_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdminRoleRead"},"title":"Response Get Roles Api V1 Admin Admin Roles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","admin-roles"],"summary":"Create Role","operationId":"create_role_api_v1_admin_admin_roles_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRoleCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRoleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-roles/{role_id}":{"get":{"tags":["Admin APIs","admin-roles"],"summary":"Get Role","operationId":"get_role_api_v1_admin_admin_roles__role_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRoleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","admin-roles"],"summary":"Update Role","operationId":"update_role_api_v1_admin_admin_roles__role_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRoleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","admin-roles"],"summary":"Delete Role","operationId":"delete_role_api_v1_admin_admin_roles__role_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-groups":{"get":{"tags":["Admin APIs","admin-groups"],"summary":"Get Groups","operationId":"get_groups_api_v1_admin_admin_groups_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdminGroupRead"},"title":"Response Get Groups Api V1 Admin Admin Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","admin-groups"],"summary":"Create Group","operationId":"create_group_api_v1_admin_admin_groups_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminGroupCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-groups/{group_id}":{"get":{"tags":["Admin APIs","admin-groups"],"summary":"Get Group","operationId":"get_group_api_v1_admin_admin_groups__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","admin-groups"],"summary":"Update Group","operationId":"update_group_api_v1_admin_admin_groups__group_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminGroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","admin-groups"],"summary":"Delete Group","operationId":"delete_group_api_v1_admin_admin_groups__group_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-permissions":{"get":{"tags":["Admin APIs","admin-permissions"],"summary":"Get Permissions","operationId":"get_permissions_api_v1_admin_admin_permissions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdminPermissionRead"},"title":"Response Get Permissions Api V1 Admin Admin Permissions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","admin-permissions"],"summary":"Create Permission","operationId":"create_permission_api_v1_admin_admin_permissions_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPermissionCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPermissionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admin-permissions/bulk":{"post":{"tags":["Admin APIs","admin-permissions"],"summary":"Bulk Create Permissions","description":"Create multiple permissions in a single request.\n\nAccepts a JSON array of permission objects. Each is created individually\nso that partial success is possible — already-existing entries are\nskipped and reported in the response.","operationId":"bulk_create_permissions_api_v1_admin_admin_permissions_bulk_post","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AdminPermissionCreate"},"type":"array","title":"Permissions"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AdminPermissionRead"},"type":"array","title":"Response Bulk Create Permissions Api V1 Admin Admin Permissions Bulk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-permissions/detect-resources":{"get":{"tags":["Admin APIs","admin-permissions"],"summary":"Detect Resources","description":"Introspect registered API routes and compare against existing permissions.\n\nReturns existing and missing resource names so admins can see which\nresources still need permission definitions created.","operationId":"detect_resources_api_v1_admin_admin_permissions_detect_resources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-permissions/sync-resources":{"post":{"tags":["Admin APIs","admin-permissions"],"summary":"Sync Resources","description":"Auto-create the 5 permission tiers for any API resources that are missing them.","operationId":"sync_resources_api_v1_admin_admin_permissions_sync_resources_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-permissions/export":{"get":{"tags":["Admin APIs","admin-permissions"],"summary":"Export Permissions","description":"Export all permission records as portable JSON (no UUIDs).\n\nUse this to capture the current state before a migration, or to\ngenerate a golden config that can be imported into other environments.","operationId":"export_permissions_api_v1_admin_admin_permissions_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionExportResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-permissions/{permission_id}":{"get":{"tags":["Admin APIs","admin-permissions"],"summary":"Get Permission","operationId":"get_permission_api_v1_admin_admin_permissions__permission_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"permission_id","in":"path","required":true,"schema":{"type":"string","title":"Permission Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPermissionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","admin-permissions"],"summary":"Update Permission","operationId":"update_permission_api_v1_admin_admin_permissions__permission_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"permission_id","in":"path","required":true,"schema":{"type":"string","title":"Permission Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPermissionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPermissionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","admin-permissions"],"summary":"Delete Permission","operationId":"delete_permission_api_v1_admin_admin_permissions__permission_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"permission_id","in":"path","required":true,"schema":{"type":"string","title":"Permission Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/tables":{"get":{"tags":["Admin APIs","delta-tables"],"summary":"Get Delta Tables","operationId":"get_delta_tables_api_v1_admin_delta_tables_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeltaTableRead"},"title":"Response Get Delta Tables Api V1 Admin Delta Tables Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","delta-tables"],"summary":"Create Delta Table","operationId":"create_delta_table_api_v1_admin_delta_tables_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaTableCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaTableRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/tables/{delta_table_id}":{"get":{"tags":["Admin APIs","delta-tables"],"summary":"Get Delta Table","operationId":"get_delta_table_api_v1_admin_delta_tables__delta_table_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_table_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Table Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaTableRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","delta-tables"],"summary":"Update Delta Table","operationId":"update_delta_table_api_v1_admin_delta_tables__delta_table_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_table_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Table Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaTableUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaTableRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","delta-tables"],"summary":"Delete Delta Table","operationId":"delete_delta_table_api_v1_admin_delta_tables__delta_table_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_table_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Table Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/schemas":{"get":{"tags":["Admin APIs","delta-schemas"],"summary":"Get Delta Schemas","operationId":"get_delta_schemas_api_v1_admin_delta_schemas_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeltaSchemaRead"},"title":"Response Get Delta Schemas Api V1 Admin Delta Schemas Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","delta-schemas"],"summary":"Create Delta Schema","operationId":"create_delta_schema_api_v1_admin_delta_schemas_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSchemaCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSchemaRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/schemas/{delta_schema_id}":{"get":{"tags":["Admin APIs","delta-schemas"],"summary":"Get Delta Schema","operationId":"get_delta_schema_api_v1_admin_delta_schemas__delta_schema_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_schema_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Schema Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSchemaRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","delta-schemas"],"summary":"Update Delta Schema","operationId":"update_delta_schema_api_v1_admin_delta_schemas__delta_schema_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_schema_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Schema Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSchemaUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSchemaRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","delta-schemas"],"summary":"Delete Delta Schema","operationId":"delete_delta_schema_api_v1_admin_delta_schemas__delta_schema_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_schema_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Schema Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/shares":{"get":{"tags":["Admin APIs","delta-shares"],"summary":"Get Delta Shares","operationId":"get_delta_shares_api_v1_admin_delta_shares_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeltaSharesRead"},"title":"Response Get Delta Shares Api V1 Admin Delta Shares Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","delta-shares"],"summary":"Create Delta Share","operationId":"create_delta_share_api_v1_admin_delta_shares_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSharesCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSharesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/shares/{delta_share_id}":{"get":{"tags":["Admin APIs","delta-shares"],"summary":"Get Delta Share","operationId":"get_delta_share_api_v1_admin_delta_shares__delta_share_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_share_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Share Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSharesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","delta-shares"],"summary":"Update Delta Share","operationId":"update_delta_share_api_v1_admin_delta_shares__delta_share_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_share_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Share Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSharesUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaSharesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","delta-shares"],"summary":"Delete Delta Share","operationId":"delete_delta_share_api_v1_admin_delta_shares__delta_share_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"delta_share_id","in":"path","required":true,"schema":{"type":"string","title":"Delta Share Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/client-configs/{client_id}":{"get":{"tags":["Admin APIs","client-delta-configs"],"summary":"Get Client Delta Config","operationId":"get_client_delta_config_api_v1_admin_delta_client_configs__client_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Client Delta Config Api V1 Admin Delta Client Configs  Client Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","client-delta-configs"],"summary":"Create Client Delta Config","operationId":"create_client_delta_config_api_v1_admin_delta_client_configs__client_id__post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Client Delta Config Api V1 Admin Delta Client Configs  Client Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/delta/client-configs/create_with_shares_names":{"post":{"tags":["Admin APIs","client-delta-configs"],"summary":"Create Client Delta Config With Shares Names","operationId":"create_client_delta_config_with_shares_names_api_v1_admin_delta_client_configs_create_with_shares_names_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeltaClientConfigCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Client Delta Config With Shares Names Api V1 Admin Delta Client Configs Create With Shares Names Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/delta/client-configs/{client_id}/regenerate_token":{"post":{"tags":["Admin APIs","client-delta-configs"],"summary":"Regenerate Client Token","operationId":"regenerate_client_token_api_v1_admin_delta_client_configs__client_id__regenerate_token_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regenerate Client Token Api V1 Admin Delta Client Configs  Client Id  Regenerate Token Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/groups":{"get":{"tags":["Admin APIs","groups"],"summary":"Get Groups","operationId":"get_groups_api_v1_admin_groups_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GroupRead"},"title":"Response Get Groups Api V1 Admin Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","groups"],"summary":"Create Group","operationId":"create_group_api_v1_admin_groups_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/groups/{group_id}":{"get":{"tags":["Admin APIs","groups"],"summary":"Get Group","operationId":"get_group_api_v1_admin_groups__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","groups"],"summary":"Update Group","operationId":"update_group_api_v1_admin_groups__group_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/groups/{group_id}/users":{"get":{"tags":["Admin APIs","groups"],"summary":"Get Group Users","description":"Get users in a group.","operationId":"get_group_users_api_v1_admin_groups__group_id__users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"},"title":"Response Get Group Users Api V1 Admin Groups  Group Id  Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/groups/{group_id}/users/{user_id}":{"post":{"tags":["Admin APIs","groups"],"summary":"Add Users To Group","description":"Add users to a group.","operationId":"add_users_to_group_api_v1_admin_groups__group_id__users__user_id__post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","groups"],"summary":"Remove User From Group","description":"Remove a user from a group","operationId":"remove_user_from_group_api_v1_admin_groups__group_id__users__user_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/groups/{group_id}/limits":{"get":{"tags":["Admin APIs","groups"],"summary":"Get Group Limits","description":"Get group limits","operationId":"get_group_limits_api_v1_admin_groups__group_id__limits_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/dashboard":{"get":{"tags":["Admin APIs","dashboard"],"summary":"Get Dashboard","operationId":"get_dashboard_api_v1_admin_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Dashboard Api V1 Admin Dashboard Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/search/":{"get":{"tags":["Admin APIs","search"],"summary":"Search","operationId":"search_api_v1_admin_search__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Api V1 Admin Search  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/auth/resource-hierarchy":{"get":{"tags":["Admin APIs","auth"],"summary":"Get Resource Hierarchy","description":"Return the permission resource hierarchy (parent -> children).\n\nStatic structural metadata defining the permission model.  This is the\nsingle source of truth for the hierarchy: the UI fetches it once at startup\ninstead of hardcoding its own copy.  Served with an ETag so clients\nrevalidate with a cheap 304 until the hierarchy actually changes.","operationId":"get_resource_hierarchy_api_v1_admin_auth_resource_hierarchy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Response Get Resource Hierarchy Api V1 Admin Auth Resource Hierarchy Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/auth/permissions":{"get":{"tags":["Admin APIs","auth"],"summary":"Get Permissions","operationId":"get_permissions_api_v1_admin_auth_permissions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Permissions Api V1 Admin Auth Permissions Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/auth/cookie/set":{"post":{"tags":["Admin APIs","auth"],"summary":"Set Auth Cookie","operationId":"set_auth_cookie_api_v1_admin_auth_cookie_set_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/auth/cookie/clear":{"post":{"tags":["Admin APIs","auth"],"summary":"Clear Auth Cookie","operationId":"clear_auth_cookie_api_v1_admin_auth_cookie_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/signup/ops/meta":{"get":{"tags":["Admin APIs","signup"],"summary":"Signup Ops Meta","description":"Expose PostgreSQL schema for signup tables so admin UI can build diagnostic SELECTs.","operationId":"signup_ops_meta_api_v1_admin_signup_ops_meta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupOpsMetaResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/signup/ops/analytics":{"get":{"tags":["Admin APIs","signup"],"summary":"Signup Ops Analytics","operationId":"signup_ops_analytics_api_v1_admin_signup_ops_analytics_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive start date (UTC). Omit for no lower bound on signup created_at.","title":"Date From"},"description":"Inclusive start date (UTC). Omit for no lower bound on signup created_at."},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Inclusive end calendar day (UTC). Omit to use current time as the upper bound.","title":"Date To"},"description":"Inclusive end calendar day (UTC). Omit to use current time as the upper bound."},{"name":"bucket","in":"query","required":false,"schema":{"type":"string","description":"day, week, or month","default":"day","title":"Bucket"},"description":"day, week, or month"},{"name":"statuses","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by one or more signup statuses","title":"Statuses"},"description":"Filter by one or more signup statuses"},{"name":"selected_plan_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by one or more plan ids","title":"Selected Plan Ids"},"description":"Filter by one or more plan ids"},{"name":"importances","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by one or more importance values","title":"Importances"},"description":"Filter by one or more importance values"},{"name":"tracking_statuses","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by one or more tracking statuses","title":"Tracking Statuses"},"description":"Filter by one or more tracking statuses"},{"name":"subscription_periods","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by one or more billing cycles","title":"Subscription Periods"},"description":"Filter by one or more billing cycles"},{"name":"plan_subscription_pairs","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by plan + billing cycle pairs (OR). Each value is plan_id:period (e.g. professional:monthly). When set, selected_plan_ids and subscription_periods are ignored.","title":"Plan Subscription Pairs"},"description":"Filter by plan + billing cycle pairs (OR). Each value is plan_id:period (e.g. professional:monthly). When set, selected_plan_ids and subscription_periods are ignored."},{"name":"verification_failure_any","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"If true, restrict to signups with at least one email_verification_failed event.","title":"Verification Failure Any"},"description":"If true, restrict to signups with at least one email_verification_failed event."},{"name":"verification_error_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Restrict to signups whose latest email_verification_failed error_code is one of these (OR). Repeat query param.","title":"Verification Error Codes"},"description":"Restrict to signups whose latest email_verification_failed error_code is one of these (OR). Repeat query param."},{"name":"incomplete_segments","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Restrict analytics to incomplete buckets matching the Signup Lifecycle chart: `users_stuck` (non-completed with verification/payment/provisioning failure events), `users_opted_out` (non-completed without those). Omit or pass both for all non-completed.","title":"Incomplete Segments"},"description":"Restrict analytics to incomplete buckets matching the Signup Lifecycle chart: `users_stuck` (non-completed with verification/payment/provisioning failure events), `users_opted_out` (non-completed without those). Omit or pass both for all non-completed."},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","description":"When true (default), omit signups whose email domain is in internal_email_domains or contains internal_email_domain_substring in the domain (see /signup/ops/meta).","default":true,"title":"Exclude Internal"},"description":"When true (default), omit signups whose email domain is in internal_email_domains or contains internal_email_domain_substring in the domain (see /signup/ops/meta)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupOpsAnalyticsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/ops/pending":{"get":{"tags":["Admin APIs","signup"],"summary":"Signup Ops Pending","operationId":"signup_ops_pending_api_v1_admin_signup_ops_pending_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","description":"When true (default), omit signups whose email domain is in internal_email_domains or contains internal_email_domain_substring in the domain (see /signup/ops/meta).","default":true,"title":"Exclude Internal"},"description":"When true (default), omit signups whose email domain is in internal_email_domains or contains internal_email_domain_substring in the domain (see /signup/ops/meta)."},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SignupOpsPendingRow"},"title":"Response Signup Ops Pending Api V1 Admin Signup Ops Pending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/ops/{session_id}/tracking":{"patch":{"tags":["Admin APIs","signup"],"summary":"Signup Ops Patch Tracking","operationId":"signup_ops_patch_tracking_api_v1_admin_signup_ops__session_id__tracking_patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInternalTrackingUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInternalTrackingRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/ops/{session_id}/tracking/audit":{"get":{"tags":["Admin APIs","signup"],"summary":"Signup Ops List Tracking Audit","operationId":"signup_ops_list_tracking_audit_api_v1_admin_signup_ops__session_id__tracking_audit_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInternalTrackingAuditListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/ops/{session_id}/notes":{"get":{"tags":["Admin APIs","signup"],"summary":"Signup Ops List Notes","operationId":"signup_ops_list_notes_api_v1_admin_signup_ops__session_id__notes_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInternalNoteListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","signup"],"summary":"Signup Ops Add Note","operationId":"signup_ops_add_note_api_v1_admin_signup_ops__session_id__notes_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInternalNoteCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInternalNoteRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/search":{"get":{"tags":["Admin APIs","signup"],"summary":"Search Signup Details","description":"Get comprehensive signup details for troubleshooting.\n\nSearch by either session_id or email. Exactly one must be provided.\n\nReturns:\n    - Signup basic information (email, name, status, plan)\n    - All events/transitions with timestamps\n    - All provisioning steps with status and errors\n    - Client and user IDs if signup is completed","operationId":"search_signup_details_api_v1_admin_signup_search_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"query","required":false,"schema":{"type":"string","description":"Search by session ID","title":"Session Id"},"description":"Search by session ID"},{"name":"email","in":"query","required":false,"schema":{"type":"string","description":"Search by email address","title":"Email"},"description":"Search by email address"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTroubleshootResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/{session_id}":{"get":{"tags":["Admin APIs","signup"],"summary":"Get Signup Details","description":"Get comprehensive signup details for troubleshooting by session ID.\n\nThis endpoint is kept for backward compatibility.\nUse /search endpoint for more flexible searching.\n\nReturns:\n    - Signup basic information (email, name, status, plan)\n    - All events/transitions with timestamps\n    - All provisioning steps with status and errors\n    - Client and user IDs if signup is completed","operationId":"get_signup_details_api_v1_admin_signup__session_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTroubleshootResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/{session_id}/retry-provisioning":{"post":{"tags":["Admin APIs","signup"],"summary":"Retry Signup Provisioning","description":"Retry provisioning for a signup session.\n\nRules:\n  - Only allowed if status == PROVISIONING_FAILED\n  - Resumes from the last successful step (tracked in signup_provisioning_steps)\n  - Emits provisioning_retry_started event","operationId":"retry_signup_provisioning_api_v1_admin_signup__session_id__retry_provisioning_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Retry Signup Provisioning Api V1 Admin Signup  Session Id  Retry Provisioning Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup/verification-attempts/reset":{"post":{"tags":["Admin APIs","signup"],"summary":"Reset Signup Verification Attempts","description":"Admin-only: reset verification attempts for an email (hard block is lifted).\n\nExactly one of `email` or `session_id` must be provided.\n\nRequires an existing `pending_signups` row for the given email or session_id.","operationId":"reset_signup_verification_attempts_api_v1_admin_signup_verification_attempts_reset_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string","description":"Reset attempts by email","title":"Email"},"description":"Reset attempts by email"},{"name":"session_id","in":"query","required":false,"schema":{"type":"string","description":"Reset the code-attempt counter by resolving the pending signup via session_id.","title":"Session Id"},"description":"Reset the code-attempt counter by resolving the pending signup via session_id."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reset Signup Verification Attempts Api V1 Admin Signup Verification Attempts Reset Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tokens/{token_id}":{"get":{"tags":["Admin APIs","tokens","tokens"],"summary":"Get Token","operationId":"get_token_api_v1_admin_tokens__token_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","tokens","tokens"],"summary":"Update Token","operationId":"update_token_api_v1_admin_tokens__token_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tokens":{"get":{"tags":["Admin APIs","tokens","tokens"],"summary":"Get Tokens","operationId":"get_tokens_api_v1_admin_tokens_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponse"},"title":"Response Get Tokens Api V1 Admin Tokens Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tokens/{token_id}/activate":{"post":{"tags":["Admin APIs","tokens","tokens"],"summary":"Activate Token","operationId":"activate_token_api_v1_admin_tokens__token_id__activate_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tokens/{token_id}/deactivate":{"post":{"tags":["Admin APIs","tokens","tokens"],"summary":"Deactivate Token","operationId":"deactivate_token_api_v1_admin_tokens__token_id__deactivate_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/accounts":{"get":{"tags":["Admin APIs","ledger"],"summary":"List Client Accounts","operationId":"list_client_accounts_api_v1_admin_ledger_accounts_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"name":"include_integration_tokens","in":"query","required":false,"schema":{"type":"boolean","description":"Include integration tokens (e.g. MCP/S3)","default":true,"title":"Include Integration Tokens"},"description":"Include integration tokens (e.g. MCP/S3)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerClientAccountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/transactions/created":{"get":{"tags":["Admin APIs","ledger"],"summary":"List Created Transactions","operationId":"list_created_transactions_api_v1_admin_ledger_transactions_created_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"usage_scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional usage_scope filter","title":"Usage Scope"},"description":"Optional usage_scope filter"},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional direction filter: credit|debit","title":"Direction"},"description":"Optional direction filter: credit|debit"},{"name":"transaction_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional transaction_type filter (e.g. purchase, consume, promotion, expiration, adjustment, marketplace)","title":"Transaction Type"},"description":"Optional transaction_type filter (e.g. purchase, consume, promotion, expiration, adjustment, marketplace)"},{"name":"sort_field","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Column to sort by (e.g. created_at, amount, usage_scope, transaction_type, balance_before, balance_after, direction)","title":"Sort Field"},"description":"Column to sort by (e.g. created_at, amount, usage_scope, transaction_type, balance_before, balance_after, direction)"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: ASC or DESC","title":"Sort Order"},"description":"Sort order: ASC or DESC"},{"name":"include_integration_tokens","in":"query","required":false,"schema":{"type":"boolean","description":"Include integration tokens (e.g. MCP)","default":true,"title":"Include Integration Tokens"},"description":"Include integration tokens (e.g. MCP)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerTransactionListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/transactions/created/count":{"get":{"tags":["Admin APIs","ledger"],"summary":"Count Created Transactions Last Hours","operationId":"count_created_transactions_last_hours_api_v1_admin_ledger_transactions_created_count_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Client ID (optional)","title":"Client Id"},"description":"Client ID (optional)"},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"description":"Lookback window in hours","default":24,"title":"Hours"},"description":"Lookback window in hours"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerTransactionsCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/transactions/created/{transaction_id}":{"get":{"tags":["Admin APIs","ledger"],"summary":"Get Created Transaction Detail","operationId":"get_created_transaction_detail_api_v1_admin_ledger_transactions_created__transaction_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"transaction_id","in":"path","required":true,"schema":{"type":"string","title":"Transaction Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerTransactionDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/transactions/upcoming":{"get":{"tags":["Admin APIs","ledger"],"summary":"List Upcoming Transactions","operationId":"list_upcoming_transactions_api_v1_admin_ledger_transactions_upcoming_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"usage_scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional usage_scope filter","title":"Usage Scope"},"description":"Optional usage_scope filter"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerUpcomingIssueListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/recurring":{"get":{"tags":["Admin APIs","ledger"],"summary":"List Recurring Actions","operationId":"list_recurring_actions_api_v1_admin_ledger_recurring_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ScheduledLedgerRecurringStatus"},{"type":"null"}],"title":"Status"}},{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},{"name":"token_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Id"}},{"name":"token_is_promotional","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by Token.is_promotional","title":"Token Is Promotional"},"description":"Filter by Token.is_promotional"},{"name":"exclude_token_usage_scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exclude tokens with this usage_scope","title":"Exclude Token Usage Scope"},"description":"Exclude tokens with this usage_scope"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScheduledLedgerRecurringActionResponse"},"title":"Response List Recurring Actions Api V1 Admin Ledger Recurring Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ledger/adjustments/credit":{"post":{"tags":["Admin APIs","ledger"],"summary":"Adjustment Credit","operationId":"adjustment_credit_api_v1_admin_ledger_adjustments_credit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueTokensOneTimeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/ledger/adjustments/credit/recurring":{"post":{"tags":["Admin APIs","ledger"],"summary":"Adjustment Credit Recurring","operationId":"adjustment_credit_recurring_api_v1_admin_ledger_adjustments_credit_recurring_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueTokensRecurringRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/ledger/adjustments/debit":{"post":{"tags":["Admin APIs","ledger"],"summary":"Adjustment Debit","operationId":"adjustment_debit_api_v1_admin_ledger_adjustments_debit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumeTokensRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/ledger/adjustments/credit/scheduled":{"post":{"tags":["Admin APIs","ledger"],"summary":"Adjustment Credit Scheduled","operationId":"adjustment_credit_scheduled_api_v1_admin_ledger_adjustments_credit_scheduled_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjustmentCreditScheduledRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/sync_okta_data":{"post":{"tags":["Admin APIs","admin-utils"],"summary":"Sync Okta Data","operationId":"sync_okta_data_api_v1_admin_admin_utils_sync_okta_data_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/sync_okta_data_background":{"post":{"tags":["Admin APIs","admin-utils"],"summary":"Sync Okta Data Background","operationId":"sync_okta_data_background_api_v1_admin_admin_utils_sync_okta_data_background_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/sync-element-data-sources":{"post":{"tags":["Admin APIs","admin-utils"],"summary":"Sync Element Data Sources","operationId":"sync_element_data_sources_api_v1_admin_admin_utils_sync_element_data_sources_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/fill-client-provider-accesses-table":{"post":{"tags":["Admin APIs","admin-utils"],"summary":"Fill Client Provider Accesses Table","operationId":"fill_client_provider_accesses_table_api_v1_admin_admin_utils_fill_client_provider_accesses_table_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/generate-api-tokens-for-users":{"get":{"tags":["Admin APIs","admin-utils"],"summary":"Generate Api Tokens For Users","description":"Trigger the generation of API keys for all users in the background.","operationId":"generate_api_tokens_for_users_api_v1_admin_admin_utils_generate_api_tokens_for_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/deactivate-api-tokens-and-keys-for-deactivated-users":{"get":{"tags":["Admin APIs","admin-utils"],"summary":"Deactivate Api Tokens And Keys For Deactivated Users","description":"Deactivate API keys and tokens for users that have been deactivated.","operationId":"deactivate_api_tokens_and_keys_for_deactivated_users_api_v1_admin_admin_utils_deactivate_api_tokens_and_keys_for_deactivated_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/sync-client-provider-access-locks":{"post":{"tags":["Admin APIs","admin-utils"],"summary":"Client Provider Access Locks","description":"Sync the locks for client provider access.","operationId":"client_provider_access_locks_api_v1_admin_admin_utils_sync_client_provider_access_locks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/admin-utils/clear-cache":{"post":{"tags":["Admin APIs","admin-utils"],"summary":"Clear Cache","operationId":"clear_cache_api_v1_admin_admin_utils_clear_cache_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/audit-logs":{"get":{"tags":["Admin APIs","audit-logs"],"summary":"List CAMS Audit Logs","description":"Retrieve admin request audit logs with filtering, sorting, and pagination.","operationId":"get_audit_logs_api_v1_admin_audit_logs_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/okta-events":{"get":{"tags":["Admin APIs","okta-events"],"summary":"List Okta Events","description":"Retrieve Okta events with filtering, sorting, and pagination.","operationId":"get_okta_events_api_v1_admin_okta_events_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reports/transactions/preview":{"get":{"tags":["Admin APIs","Admin - Reports"],"summary":"Preview Transactions","description":"Preview ledger transactions for admin tooling.\n\nThis replaces the legacy \"events\"-based detailed transactions preview.","operationId":"preview_transactions_api_v1_admin_reports_transactions_preview_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by client ID","title":"Client Id"},"description":"Filter by client ID"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by source","title":"Source"},"description":"Filter by source"},{"name":"token_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by token name","title":"Token Name"},"description":"Filter by token name"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date (YYYY-MM-DD)","title":"Start Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date (YYYY-MM-DD)","title":"End Date"},"description":"End date (YYYY-MM-DD)"},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by client sector","title":"Sector"},"description":"Filter by client sector"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":25,"title":"Per Page"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reports/transactions/export":{"post":{"tags":["Admin APIs","Admin - Reports"],"summary":"Export Transactions","description":"Export ledger transactions with breakdown:\nTransaction -> (frameworks x sources) -> token entries","operationId":"export_transactions_api_v1_admin_reports_transactions_export_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionExportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reports/promo-codes/export":{"post":{"tags":["Admin APIs","Admin - Reports"],"summary":"Export Promo Codes","description":"Export promo codes as CSV using the same filters as /promo-codes/preview.","operationId":"export_promo_codes_api_v1_admin_reports_promo_codes_export_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCodesExportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reports/promo-codes/preview":{"get":{"tags":["Admin APIs","Admin - Reports"],"summary":"Preview Promo Codes","description":"Preview promo code usage by customer + plan.\n\nSource of truth:\n- Local `plans` joined to local `stripe_subscriptions.raw`\n- If the subscription discount references a promotion code id, we retrieve the PromotionCode\n  from Stripe to get the *human* promo code string (e.g. \"SAVE20\").","operationId":"preview_promo_codes_api_v1_admin_reports_promo_codes_preview_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by client ID","title":"Client Id"},"description":"Filter by client ID"},{"name":"has_promo_code","in":"query","required":false,"schema":{"type":"string","description":"Filter by whether a promo code is applied: all|yes|no","default":"all","title":"Has Promo Code"},"description":"Filter by whether a promo code is applied: all|yes|no"},{"name":"promo_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by specific promo code (e.g. SAVE20)","title":"Promo Code"},"description":"Filter by specific promo code (e.g. SAVE20)"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date (YYYY-MM-DD)","title":"Start Date"},"description":"Start date (YYYY-MM-DD)"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date (YYYY-MM-DD)","title":"End Date"},"description":"End date (YYYY-MM-DD)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":25,"title":"Per Page"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCodesReportPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reports/deployment-report/options":{"get":{"tags":["Admin APIs","Admin - Reports"],"summary":"Deployment Report Options","operationId":"deployment_report_options_api_v1_admin_reports_deployment_report_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reports/deployment-report/export":{"get":{"tags":["Admin APIs","Admin - Reports"],"summary":"Export Deployment Report","operationId":"export_deployment_report_api_v1_admin_reports_deployment_report_export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"code_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Name"}},{"name":"client_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/exchange-activity/overview":{"get":{"tags":["Admin APIs","exchange-activity","Exchange Activity"],"summary":"Exchange Admin Overview","operationId":"exchange_admin_overview_api_v1_admin_exchange_activity_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/exchange-activity/listings":{"get":{"tags":["Admin APIs","exchange-activity","Exchange Activity"],"summary":"Exchange Admin Listings","operationId":"exchange_admin_listings_api_v1_admin_exchange_activity_listings_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"creator_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator Email"}},{"name":"creator_client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creator Client Id"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/exchange-activity/transactions":{"get":{"tags":["Admin APIs","exchange-activity","Exchange Activity"],"summary":"Exchange Admin Transactions","operationId":"exchange_admin_transactions_api_v1_admin_exchange_activity_transactions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"buyer_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer Email"}},{"name":"buyer_client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer Client Id"}},{"name":"signal_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Signal Id"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp/token-limits":{"get":{"tags":["Admin APIs","mcp-token-limits"],"summary":"Get Mcp Token Limit Mappings","description":"Get all MCP token limit mappings with pagination and filtering support.\n\nReturns a list of all Stripe Product Catalog to token limit mappings.","operationId":"get_mcp_token_limit_mappings_api_v1_admin_mcp_token_limits_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MCPTokenLimitMappingRead"},"title":"Response Get Mcp Token Limit Mappings Api V1 Admin Mcp Token Limits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","mcp-token-limits"],"summary":"Create Mcp Token Limit Mapping","description":"Create a new MCP token limit mapping.\n\nCreates a mapping between a Stripe Product Catalog item and daily token reset limits.\n\nArgs:\n    mapping_data: The mapping data including product ID, name, and token limit\n\nReturns:\n    The created MCP token limit mapping","operationId":"create_mcp_token_limit_mapping_api_v1_admin_mcp_token_limits_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPTokenLimitMappingCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPTokenLimitMappingRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp/token-limits/{mapping_id}":{"get":{"tags":["Admin APIs","mcp-token-limits"],"summary":"Get Mcp Token Limit Mapping","description":"Get a specific MCP token limit mapping by ID.\n\nArgs:\n    mapping_id: UUID of the mapping to retrieve\n\nReturns:\n    The MCP token limit mapping details","operationId":"get_mcp_token_limit_mapping_api_v1_admin_mcp_token_limits__mapping_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPTokenLimitMappingRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","mcp-token-limits"],"summary":"Update Mcp Token Limit Mapping","operationId":"update_mcp_token_limit_mapping_api_v1_admin_mcp_token_limits__mapping_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPTokenLimitMappingCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPTokenLimitMappingRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","mcp-token-limits"],"summary":"Delete Mcp Token Limit Mapping","operationId":"delete_mcp_token_limit_mapping_api_v1_admin_mcp_token_limits__mapping_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mapping Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Mcp Token Limit Mapping Api V1 Admin Mcp Token Limits  Mapping Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp/token-limits/product/{product_id}":{"get":{"tags":["Admin APIs","mcp-token-limits"],"summary":"Get Mcp Token Limit Mapping By Product Id","description":"Get MCP token limit mapping by Stripe product ID.\n\nArgs:\n    product_id: Stripe Product ID from the Product Catalog\n\nReturns:\n    The MCP token limit mapping for the specified product","operationId":"get_mcp_token_limit_mapping_by_product_id_api_v1_admin_mcp_token_limits_product__product_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPTokenLimitMappingRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp/m2m-access":{"get":{"tags":["Admin APIs","mcp-m2m-access"],"summary":"Get Mcp M2M Access","description":"List MCP M2M access with filtering, sorting, and pagination for React Admin","operationId":"get_mcp_m2m_access_api_v1_admin_mcp_m2m_access_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MCPM2MAccessRead"},"title":"Response Get Mcp M2M Access Api V1 Admin Mcp M2M Access Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","mcp-m2m-access"],"summary":"Create Mcp M2M Access","description":"Create a new MCP M2M access configuration.\n\nThis endpoint automatically provisions an Okta application for the selected client\nand creates a M2M access record linking the client to the Okta application.\n\nArgs:\n    mcp_m2m_access_data: The M2M access data including client_id\n\nReturns:\n    The created MCP M2M access configuration","operationId":"create_mcp_m2m_access_api_v1_admin_mcp_m2m_access_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPM2MAccessCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPM2MAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp/m2m-access/{mcp_m2m_access_id}":{"get":{"tags":["Admin APIs","mcp-m2m-access"],"summary":"Get Mcp M2M Access By Id","description":"Get a specific MCP M2M access configuration by ID.\n\nArgs:\n    mcp_m2m_access_id: UUID of the M2M access to retrieve\n\nReturns:\n    The MCP M2M access configuration details","operationId":"get_mcp_m2m_access_by_id_api_v1_admin_mcp_m2m_access__mcp_m2m_access_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"mcp_m2m_access_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mcp M2M Access Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPM2MAccessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/migrations/available-scripts":{"get":{"tags":["Admin APIs","migrations"],"summary":"Get Available Scripts","description":"Get list of available migration scripts.","operationId":"get_available_scripts_api_v1_admin_migrations_available_scripts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/migrations/run":{"post":{"tags":["Admin APIs","migrations"],"summary":"Run Migration","description":"Run a migration script by identifier.","operationId":"run_migration_api_v1_admin_migrations_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/migrations/run-sync":{"post":{"tags":["Admin APIs","migrations"],"summary":"Run Migration Sync","description":"Run a migration script synchronously (for testing or small migrations).","operationId":"run_migration_sync_api_v1_admin_migrations_run_sync_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/migrations/run-csv":{"post":{"tags":["Admin APIs","migrations"],"summary":"Run Migration From Csv","description":"Run a migration script for multiple clients specified in a CSV file.\n\nArgs:\n    csv_file: CSV file containing client IDs\n    script_identifier: The migration script to run\n    client_id_column: Name of the column containing client IDs (default: \"client_id\")\n    background_tasks: Background task handler\n    client_service: ClientService instance\n\nReturns:\n    CSVMigrationResponse with processing results","operationId":"run_migration_from_csv_api_v1_admin_migrations_run_csv_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"script_identifier","in":"query","required":false,"schema":{"type":"string","default":"add_wallets","title":"Script Identifier"}},{"name":"client_id_column","in":"query","required":false,"schema":{"type":"string","default":"client_id","title":"Client Id Column"}},{"name":"send_email_summary","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Send Email Summary"}},{"name":"email_recipients","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Recipients"}},{"name":"X-Confirm-Destructive","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Confirm-Destructive"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_run_migration_from_csv_api_v1_admin_migrations_run_csv_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CSVMigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/migrations/run-csv-sync":{"post":{"tags":["Admin APIs","migrations"],"summary":"Run Migration From Csv Sync","description":"Run a migration script synchronously for multiple clients specified in a CSV file path.\n\nArgs:\n    request: CSVFilePathMigrationRequest containing all parameters\n    client_service: ClientService instance\n\nReturns:\n    CSVMigrationResponse with processing results","operationId":"run_migration_from_csv_sync_api_v1_admin_migrations_run_csv_sync_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"X-Confirm-Destructive","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Confirm-Destructive"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CSVFilePathMigrationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CSVMigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/migrations/run-csv-async":{"post":{"tags":["Admin APIs","migrations"],"summary":"Run Migration From Csv Async","description":"Run a migration script asynchronously for multiple clients specified in a CSV file path.\nReturns immediately with a task ID that can be used to check status.\n\nArgs:\n    request: CSVFilePathMigrationRequest containing all parameters\n    background_tasks: FastAPI BackgroundTasks for async execution\n\nReturns:\n    AsyncMigrationResponse with task ID and initial status","operationId":"run_migration_from_csv_async_api_v1_admin_migrations_run_csv_async_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"X-Confirm-Destructive","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Confirm-Destructive"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CSVFilePathMigrationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncMigrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/migrations/task-status/{task_id}":{"get":{"tags":["Admin APIs","migrations"],"summary":"Get Task Status","description":"Get the status of an async migration task.\n\nArgs:\n    task_id: The task ID returned from run-csv-async, ledger-backfill, or ledger-validation\n\nReturns:\n    Task status and results","operationId":"get_task_status_api_v1_admin_migrations_task_status__task_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/migrations/backfill-sector":{"post":{"tags":["Admin APIs","migrations"],"summary":"Backfill Sector","description":"One-off backfill to split \"Internal & Partners\" into \"Internal\" / \"Partners\".\n\nBody example::\n\n    {\n        \"sector_assignments\": {\n            \"Internal\": [\"<client-id-1>\", \"<client-id-2>\"],\n            \"Partners\": [\"<client-id-3>\"]\n        },\n        \"apply\": true\n    }\n\nSet ``apply: false`` (the default) for a dry-run.","operationId":"backfill_sector_api_v1_admin_migrations_backfill_sector_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackfillSectorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/migrations/assign-feature-flags":{"post":{"tags":["Admin APIs","migrations"],"summary":"Assign Feature Flags To All Clients","description":"Idempotently assign the given feature flags with value=\"true\" to all active\nclients.  Clients that already have a flag correctly assigned are skipped.\n\nBody example::\n\n    {\n        \"feature_flag_ids\": [\"<uuid-1>\", \"<uuid-2>\"],\n        \"dry_run\": false\n    }\n\nSet ``dry_run: true`` to preview what would be changed without writing to\nthe database.","operationId":"assign_feature_flags_to_all_clients_api_v1_admin_migrations_assign_feature_flags_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"X-Confirm-Destructive","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Confirm-Destructive"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignFeatureFlagsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignFeatureFlagsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/polaris/clients/{client_id}/credentials":{"get":{"tags":["Admin APIs","polaris"],"summary":"Get Client Polaris Credentials","description":"Return the current Polaris-credential state for a client. Plaintext\n``polaris_client_secret`` is included so CAMS staff can copy it back to\nan enterprise admin if they lost it — same privilege as the customer\n\"Connect Your Query Engine\" modal, just operated by staff.","operationId":"get_client_polaris_credentials_api_v1_admin_polaris_clients__client_id__credentials_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPolarisCredentialsState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","polaris"],"summary":"Set Client Polaris Credentials","description":"Persist an externally-obtained Polaris client_id/secret pair.\n\nUse when the Polaris principal already exists with credentials CAMS\ndidn't mint (e.g. created by a non-internal-token flow), so the normal\nmint/rotate path is unavailable. The operator pastes the existing\npair — sourced from the customer's vault, the original onboarding\nticket, etc. — and CAMS stores them so the SQL editor's \"Connect\nYour Query Engine\" modal can surface them like any other client.\n\nDoes not call Polaris and does not validate the pair against Polaris.\nIf the values are wrong, the customer's SQL editor sessions will 401\nwhen they try to use them.\n\nAll three columns (principal_name, client_id, client_secret) are\nrequired on the request and written together — the row never carries\nclient_id/secret without a principal_name.","operationId":"set_client_polaris_credentials_api_v1_admin_polaris_clients__client_id__credentials_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetClientPolarisCredentialsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPolarisCredentialsState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","polaris"],"summary":"Mint Client Polaris Credentials","description":"Mint Polaris credentials for a client on demand. Idempotent — if\ncredentials already exist the existing values are returned unchanged.\nUsed by the Block section in CAMS Client Management.","operationId":"mint_client_polaris_credentials_api_v1_admin_polaris_clients__client_id__credentials_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPolarisCredentialsState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/polaris/clients/{client_id}/credentials/reset":{"post":{"tags":["Admin APIs","polaris"],"summary":"Reset Client Polaris Credentials","description":"Clear a partial Polaris credential state and mint a fresh principal.\n\nFor recovering a client stuck with some-but-not-all of the three\ncredential columns set — the normal mint refuses to operate on a partial\nrow. Clears the orphaned columns and mints via the client's key. A fully\nprovisioned client is returned unchanged.","operationId":"reset_client_polaris_credentials_api_v1_admin_polaris_clients__client_id__credentials_reset_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPolarisCredentialsState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets":{"get":{"tags":["Admin APIs","catalog-assets"],"summary":"List Catalog Assets","description":"List all IDO catalog assets (any status) with pagination and filtering.","operationId":"list_catalog_assets_api_v1_admin_catalog_assets_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalogAssetRead"},"title":"Response List Catalog Assets Api V1 Admin Catalog Assets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/bulk-status":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Bulk Status Change","description":"Apply publish, unpublish, or archive to multiple assets at once.","operationId":"bulk_status_change_api_v1_admin_catalog_assets_bulk_status_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStatusChangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStatusChangeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/catalog/assets/{asset_id}":{"get":{"tags":["Admin APIs","catalog-assets"],"summary":"Get Catalog Asset","description":"Get a single IDO catalog asset by ID.","operationId":"get_catalog_asset_api_v1_admin_catalog_assets__asset_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Update Catalog Asset","description":"Update title or is_new on a catalog asset.","operationId":"update_catalog_asset_api_v1_admin_catalog_assets__asset_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/publish":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Publish Catalog Asset","description":"Publish an asset (status=published, publish_date=now). Makes it visible in Power UI.","operationId":"publish_catalog_asset_api_v1_admin_catalog_assets__asset_id__publish_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/unpublish":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Unpublish Catalog Asset","description":"Unpublish an asset (status=draft, publish_date=null). Hides it from Power UI.","operationId":"unpublish_catalog_asset_api_v1_admin_catalog_assets__asset_id__unpublish_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/archive":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Archive Catalog Asset","description":"Archive an asset (status=archived). Hides it from Power UI.","operationId":"archive_catalog_asset_api_v1_admin_catalog_assets__asset_id__archive_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/flag-compliance":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Flag Catalog Asset For Compliance","description":"Flag an asset for compliance review (status=compliance_requested).","operationId":"flag_catalog_asset_for_compliance_api_v1_admin_catalog_assets__asset_id__flag_compliance_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/status":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Set Catalog Asset Status","description":"General status override. Validates against allowed values.","operationId":"set_catalog_asset_status_api_v1_admin_catalog_assets__asset_id__status_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/visibility":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Set Catalog Asset Visibility","description":"Set visibility on a catalog asset (public, gated, private).","operationId":"set_catalog_asset_visibility_api_v1_admin_catalog_assets__asset_id__visibility_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisibilityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/assets/{asset_id}/tier":{"put":{"tags":["Admin APIs","catalog-assets"],"summary":"Set Catalog Asset Tier","description":"Set compliance tier (1=Sourced, 2=Documented, 3=Verified, null=unrestricted).","operationId":"set_catalog_asset_tier_api_v1_admin_catalog_assets__asset_id__tier_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TierUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/clients":{"get":{"tags":["Admin APIs","catalog-clients"],"summary":"List Catalog Clients","description":"List all catalog clients with their plan_type access level.","operationId":"list_catalog_clients_api_v1_admin_catalog_clients_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalogClientRead"},"title":"Response List Catalog Clients Api V1 Admin Catalog Clients Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","catalog-clients"],"summary":"Create Catalog Client","description":"Create a new catalog client and set their plan_type access level.","operationId":"create_catalog_client_api_v1_admin_catalog_clients_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/catalog/clients/{client_id}":{"get":{"tags":["Admin APIs","catalog-clients"],"summary":"Get Catalog Client","description":"Get a single catalog client by ID.","operationId":"get_catalog_client_api_v1_admin_catalog_clients__client_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","catalog-clients"],"summary":"Update Catalog Client","description":"Update a catalog client's name or plan_type.","operationId":"update_catalog_client_api_v1_admin_catalog_clients__client_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","catalog-clients"],"summary":"Delete Catalog Client","description":"Remove a catalog client.","operationId":"delete_catalog_client_api_v1_admin_catalog_clients__client_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Catalog Client Api V1 Admin Catalog Clients  Client Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/transcripts":{"get":{"tags":["Admin APIs","transcripts"],"summary":"List Transcripts","description":"List all transcripts with pagination, search, and status filtering.","operationId":"list_transcripts_api_v1_admin_transcripts_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptRead"},"title":"Response List Transcripts Api V1 Admin Transcripts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/transcripts/bulk-status":{"put":{"tags":["Admin APIs","transcripts"],"summary":"Bulk Status Change","description":"Apply publish / hide / remove to multiple transcripts at once.","operationId":"bulk_status_change_api_v1_admin_transcripts_bulk_status_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkTranscriptStatusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkTranscriptStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/transcripts/{transcript_id}":{"get":{"tags":["Admin APIs","transcripts"],"summary":"Get Transcript","description":"Get a single transcript by ID.","operationId":"get_transcript_api_v1_admin_transcripts__transcript_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/transcripts/{transcript_id}/status":{"put":{"tags":["Admin APIs","transcripts"],"summary":"Set Transcript Status","description":"Set the visibility status of a single transcript.","operationId":"set_transcript_status_api_v1_admin_transcripts__transcript_id__status_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptStatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/portal-users/catalog-sources":{"get":{"tags":["Admin APIs","portal-users"],"summary":"List active catalog sources for the source_type dropdown","operationId":"list_portal_catalog_sources_api_v1_admin_portal_users_catalog_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Portal Catalog Sources Api V1 Admin Portal Users Catalog Sources Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/portal-users":{"get":{"tags":["Admin APIs","portal-users"],"summary":"List portal users","operationId":"list_portal_users_api_v1_admin_portal_users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PortalUserRead"},"title":"Response List Portal Users Api V1 Admin Portal Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","portal-users"],"summary":"Provision a new portal user","operationId":"create_portal_user_api_v1_admin_portal_users_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalUserCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalUserCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/portal-users/{portal_user_id}":{"get":{"tags":["Admin APIs","portal-users"],"summary":"Get a portal user","operationId":"get_portal_user_api_v1_admin_portal_users__portal_user_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"portal_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Portal User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin APIs","portal-users"],"summary":"Update a portal user","operationId":"update_portal_user_api_v1_admin_portal_users__portal_user_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"portal_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Portal User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalUserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","portal-users"],"summary":"Delete a portal user and remove their Okta portal group memberships","operationId":"delete_portal_user_api_v1_admin_portal_users__portal_user_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"portal_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Portal User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/portal-users/{portal_user_id}/activation-link":{"post":{"tags":["Admin APIs","portal-users"],"summary":"Regenerate an activation link for a pending portal user","operationId":"regenerate_activation_link_api_v1_admin_portal_users__portal_user_id__activation_link_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"portal_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Portal User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalActivationLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/portals":{"get":{"tags":["Admin APIs","portals"],"summary":"List portals","operationId":"list_portals_api_v1_admin_portals_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PortalRead"},"type":"array","title":"Response List Portals Api V1 Admin Portals Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/client-types":{"get":{"tags":["Admin APIs","client-types"],"summary":"Get Client Types","operationId":"get_client_types_api_v1_admin_client_types_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientTypeRead"},"title":"Response Get Client Types Api V1 Admin Client Types Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-types/{client_type_id}":{"get":{"tags":["Admin APIs","client-types"],"summary":"Get Client Type","operationId":"get_client_type_api_v1_admin_client_types__client_type_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_type_id","in":"path","required":true,"schema":{"type":"string","title":"Client Type Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTypeRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/client-types/":{"post":{"tags":["Admin APIs","client-types"],"summary":"Create Client Type","operationId":"create_client_type_api_v1_admin_client_types__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTypeCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/featured/items":{"get":{"tags":["Admin APIs","featured"],"summary":"Get Featured Items","description":"Get all featured entities and insights (active and inactive) for admin","operationId":"get_featured_items_api_v1_admin_featured_items_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedItemsResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/featured/entities":{"get":{"tags":["Admin APIs","featured"],"summary":"Get Featured Entities","description":"Get all featured entities (for admin UI)","operationId":"get_featured_entities_api_v1_admin_featured_entities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FeaturedEntityRead"},"type":"array","title":"Response Get Featured Entities Api V1 Admin Featured Entities Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/featured/insights":{"get":{"tags":["Admin APIs","featured"],"summary":"Get Featured Insights","description":"Get all featured insights (for admin UI)","operationId":"get_featured_insights_api_v1_admin_featured_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FeaturedInsightRead"},"type":"array","title":"Response Get Featured Insights Api V1 Admin Featured Insights Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/featured/bulk-replace/entities":{"post":{"tags":["Admin APIs","featured"],"summary":"Bulk Replace Featured Entities","description":"Replace all featured entities with data from CSV file.\nCSV format: entity_id,entity_name,representation","operationId":"bulk_replace_featured_entities_api_v1_admin_featured_bulk_replace_entities_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_bulk_replace_featured_entities_api_v1_admin_featured_bulk_replace_entities_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/featured/bulk-replace/insights":{"post":{"tags":["Admin APIs","featured"],"summary":"Bulk Replace Featured Insights","description":"Replace all featured insights with data from CSV file.\nCSV format: insight_id,dataset_id,subject,topic,insight_label","operationId":"bulk_replace_featured_insights_api_v1_admin_featured_bulk_replace_insights_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_bulk_replace_featured_insights_api_v1_admin_featured_bulk_replace_insights_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/stripe-subscriptions/products":{"get":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"List Stripe Products","description":"List active Stripe products with their default price.\n\nFilters to only enabled products when the visibility table has been configured.\nFalls back to all products if no visibility settings exist yet.","operationId":"list_stripe_products_api_v1_admin_stripe_subscriptions_products_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StripeProductRead"},"type":"array","title":"Response List Stripe Products Api V1 Admin Stripe Subscriptions Products Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/stripe-subscriptions/products/visibility":{"get":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"List Stripe Products Visibility","description":"List all active Stripe products with prices and their visibility toggle state.\n\nSuper Admin only. Used by the Stripe Products management tab in CAMS.","operationId":"list_stripe_products_visibility_api_v1_admin_stripe_subscriptions_products_visibility_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StripeProductWithVisibility"},"type":"array","title":"Response List Stripe Products Visibility Api V1 Admin Stripe Subscriptions Products Visibility Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"put":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"Update Stripe Products Visibility","description":"Bulk-update Stripe product visibility settings.\n\nSuper Admin only. Upserts all provided product toggles and returns the\nupdated full product list (same shape as GET /products/visibility).","operationId":"update_stripe_products_visibility_api_v1_admin_stripe_subscriptions_products_visibility_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeProductVisibilityBulkUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StripeProductWithVisibility"},"type":"array","title":"Response Update Stripe Products Visibility Api V1 Admin Stripe Subscriptions Products Visibility Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/stripe-subscriptions/products/{product_id}/prices":{"get":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"List Stripe Prices","description":"List active prices for a Stripe product.\n\nReturns 404 if the product is explicitly disabled in visibility settings.","operationId":"list_stripe_prices_api_v1_admin_stripe_subscriptions_products__product_id__prices_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripePriceRead"},"title":"Response List Stripe Prices Api V1 Admin Stripe Subscriptions Products  Product Id  Prices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/stripe-subscriptions/customers/{stripe_customer_id}/has-chargeable-payment-method":{"get":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"Check Chargeable Payment Method","description":"Return whether the Stripe customer has a payment method that supports automatic charging.","operationId":"check_chargeable_payment_method_api_v1_admin_stripe_subscriptions_customers__stripe_customer_id__has_chargeable_payment_method_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"stripe_customer_id","in":"path","required":true,"schema":{"type":"string","title":"Stripe Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChargeablePaymentMethodResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/stripe-subscriptions":{"get":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"List Plan Subscriptions","description":"List plan subscriptions enriched with Stripe data","operationId":"list_plan_subscriptions_api_v1_admin_stripe_subscriptions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripeSubscriptionRead"},"title":"Response List Plan Subscriptions Api V1 Admin Stripe Subscriptions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"Create Enterprise Subscription","description":"Create a Stripe subscription for enterprise client onboarding.\n\nSupports multiple line items, trial periods, and billing controls.\nAutomatically attaches client_id and product_id metadata.","operationId":"create_enterprise_subscription_api_v1_admin_stripe_subscriptions_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterpriseSubscriptionCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterpriseSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/stripe-subscriptions/{subscription_id}":{"get":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"Get Subscription","description":"Get a specific Stripe subscription by ID","operationId":"get_subscription_api_v1_admin_stripe_subscriptions__subscription_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeSubscriptionWithItems"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/stripe-subscriptions/{subscription_id}/cancel":{"post":{"tags":["Admin APIs","stripe-subscriptions"],"summary":"Cancel Subscription","description":"Cancel a Stripe subscription immediately, at period end, or on a custom date.\n\nOptionally issues a refund and converts the linked CAMS plan to a $0 plan.","operationId":"cancel_subscription_api_v1_admin_stripe_subscriptions__subscription_id__cancel_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelSubscriptionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/stripe-cancellations":{"get":{"tags":["Admin APIs","stripe-cancellations"],"summary":"List Stripe Cancellations","description":"List canceled Stripe subscriptions with cancellation reason details.","operationId":"list_stripe_cancellations_api_v1_admin_stripe_cancellations_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripeCancellationRead"},"title":"Response List Stripe Cancellations Api V1 Admin Stripe Cancellations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/plans":{"get":{"tags":["Admin APIs","plans"],"summary":"Get Plans","description":"Get all plans with filtering, sorting, and pagination.\n\nWhen a client_id filter is present, Stripe subscriptions that exist in\nStripe but have not yet been synced to the database are appended to the\nresponse with ``source=\"stripe\"`` so admins can see the full picture.","operationId":"get_plans_api_v1_admin_plans_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlanRead"},"title":"Response Get Plans Api V1 Admin Plans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","plans"],"summary":"Create Plan","description":"Create a new plan.\n\nValidates that there's no other active plan for the same client-product pair.","operationId":"create_plan_api_v1_admin_plans_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/plans/{plan_id}":{"get":{"tags":["Admin APIs","plans"],"summary":"Get Plan","description":"Get a plan by ID.\n\nAccepts either a database UUID or a Stripe subscription ID (``sub_xxx``).\nStripe subscription IDs are fetched directly from Stripe; all other values\nare treated as database UUIDs.","operationId":"get_plan_api_v1_admin_plans__plan_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","plans"],"summary":"Update Plan","description":"Update a plan.\n\nOnly allowed if the plan doesn't have an associated Stripe subscription.","operationId":"update_plan_api_v1_admin_plans__plan_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Plan Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","plans"],"summary":"Delete Plan","description":"Delete a plan.\n\nOnly allowed if the plan doesn't have an associated Stripe subscription.","operationId":"delete_plan_api_v1_admin_plans__plan_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"List Plan Configs","description":"List all signup plan configs (from DB).","operationId":"list_plan_configs_api_v1_admin_signup_plan_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SignupPlanConfigRead"},"type":"array","title":"Response List Plan Configs Api V1 Admin Signup Plan Config Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/signup-plan-config/plan-ids":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"List Plan Ids","description":"Return allowed plan IDs (for dropdown).","operationId":"list_plan_ids_api_v1_admin_signup_plan_config_plan_ids_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response List Plan Ids Api V1 Admin Signup Plan Config Plan Ids Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/signup-plan-config/overview/{plan_id}":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"Get Plan Overview","description":"Get overview for a plan: active users, last modified, etc.","operationId":"get_plan_overview_api_v1_admin_signup_plan_config_overview__plan_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanConfigOverview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config/{plan_id}/provider-channel-restrictions":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"Get Provider Channel Restrictions For Plan","description":"Per production provider signup-plan rules: which channels are denied for this plan.\nUsed by Automated Onboarding Provisioning to disable API/MCP checkboxes.","operationId":"get_provider_channel_restrictions_for_plan_api_v1_admin_signup_plan_config__plan_id__provider_channel_restrictions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"boolean"}},"title":"Response Get Provider Channel Restrictions For Plan Api V1 Admin Signup Plan Config  Plan Id  Provider Channel Restrictions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config/{plan_id}":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"Get Plan Config","description":"Get one plan config by plan_id.","operationId":"get_plan_config_api_v1_admin_signup_plan_config__plan_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupPlanConfigRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","signup-plan-config"],"summary":"Update Plan Config","description":"Create or update a plan config. Writes version and audit log, then enqueues sync of existing users.","operationId":"update_plan_config_api_v1_admin_signup_plan_config__plan_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupPlanConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupPlanConfigRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config/{plan_id}/versions":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"List Plan Config Versions","description":"List version history for a plan.","operationId":"list_plan_config_versions_api_v1_admin_signup_plan_config__plan_id__versions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlanConfigVersionRead"},"title":"Response List Plan Config Versions Api V1 Admin Signup Plan Config  Plan Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config/{plan_id}/versions/{version_id}":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"Get Plan Config By Version","description":"Get full config snapshot for a specific version (read-only).","operationId":"get_plan_config_by_version_api_v1_admin_signup_plan_config__plan_id__versions__version_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupPlanConfigRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config/{plan_id}/audit":{"get":{"tags":["Admin APIs","signup-plan-config"],"summary":"List Plan Config Audit","description":"List audit log for a plan.","operationId":"list_plan_config_audit_api_v1_admin_signup_plan_config__plan_id__audit_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlanConfigAuditRead"},"title":"Response List Plan Config Audit Api V1 Admin Signup Plan Config  Plan Id  Audit Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/signup-plan-config/seed-from-json":{"post":{"tags":["Admin APIs","signup-plan-config"],"summary":"Seed From Json","description":"One-time seed: upsert the given plan config into signup_plan_config.\nSend a JSON body with a \"plans\" key (same structure as former plans json).","operationId":"seed_from_json_api_v1_admin_signup_plan_config_seed_from_json_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"Plan config payload with 'plans' key, e.g. {\"plans\": {\"professional\": {...}, \"business\": {...}}}"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/system-settings/alert-settings":{"get":{"tags":["Admin APIs","system-settings"],"summary":"Get Alert Settings","description":"Return current internal signup alert tuning.","operationId":"get_alert_settings_api_v1_admin_system_settings_alert_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupAlertSettingsRead"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"patch":{"tags":["Admin APIs","system-settings"],"summary":"Update Alert Settings","description":"Update internal signup alert tuning. Only fields present in the body\nare written; omitted fields are left unchanged.","operationId":"update_alert_settings_api_v1_admin_system_settings_alert_settings_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupAlertSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupAlertSettingsRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/system-settings/in-progress-outreach-settings":{"get":{"tags":["Admin APIs","system-settings"],"summary":"Get In Progress Outreach Settings","description":"Return current customer outreach tuning for in-progress signups.","operationId":"get_in_progress_outreach_settings_api_v1_admin_system_settings_in_progress_outreach_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InProgressOutreachSettingsRead"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"patch":{"tags":["Admin APIs","system-settings"],"summary":"Update In Progress Outreach Settings","description":"Update customer outreach tuning. Only fields present in the body are\nwritten; omitted fields are left unchanged.","operationId":"update_in_progress_outreach_settings_api_v1_admin_system_settings_in_progress_outreach_settings_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InProgressOutreachSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InProgressOutreachSettingsRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/system-settings/block-data-settings":{"get":{"tags":["Admin APIs","system-settings"],"summary":"Get Block Data Settings","description":"Return Block Data feature settings.","operationId":"get_block_data_settings_api_v1_admin_system_settings_block_data_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDataSettingsRead"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"patch":{"tags":["Admin APIs","system-settings"],"summary":"Update Block Data Settings","operationId":"update_block_data_settings_api_v1_admin_system_settings_block_data_settings_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDataSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDataSettingsRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/block/requests":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"List All Block Requests","operationId":"list_all_block_requests_api_v1_admin_block_requests_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestAdminListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"Get Block Request Admin","operationId":"get_block_request_admin_api_v1_admin_block_requests__request_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/provisioning-errors":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"List Provisioning Errors","description":"Every currently-failed provisioning step across all requests. Powers\nthe CAMS \"Provisioning Errors\" table — each row shows which step broke,\nthe error code + message, and the owning request so ops can jump\nstraight to retrying it.","operationId":"list_provisioning_errors_api_v1_admin_block_provisioning_errors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockProvisioningErrorListResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/block/requests/{request_id}/provisioning-steps":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"Get Block Request Provisioning Timeline","description":"Per-request provisioning timeline. Powers the CAMS debugging panel\nthat shows each step's status / timestamps / error payload so an\noperator can tell exactly where Polaris (or a future step) failed.","operationId":"get_block_request_provisioning_timeline_api_v1_admin_block_requests__request_id__provisioning_steps_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockProvisioningTimelineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/timeline":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"Get Block Request Timeline","description":"Merged approval timeline (customer-side denormalized fields +\nadmin audit log) — powers the Approvals kanban modal.","operationId":"get_block_request_timeline_api_v1_admin_block_requests__request_id__timeline_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestTimelineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/internal-queue":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"List Internal Queue","operationId":"list_internal_queue_api_v1_admin_block_internal_queue_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestAdminListResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/block/requests/{request_id}/internal-approve/accounts":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Internal Approve Accounts","description":"Approve at the Accounts internal step.\n\nBody is optional — bare approval keeps the captured-at-creation\ntrial duration and annual price. Pass ``trial_duration_months``\nand/or ``annual_price`` with a ``custom_adjustment_rationale``\nto apply a custom adjustment before the queue advances to Legal.","operationId":"internal_approve_accounts_api_v1_admin_block_requests__request_id__internal_approve_accounts_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/BlockAccountsApprovalBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/internal-approve/legal":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Internal Approve Legal","operationId":"internal_approve_legal_api_v1_admin_block_requests__request_id__internal_approve_legal_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/internal-approve/engineering":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Internal Approve Engineering","operationId":"internal_approve_engineering_api_v1_admin_block_requests__request_id__internal_approve_engineering_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/reset-rejection":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Reset Rejection","description":"Reopen a rejected request back to the stage where it was denied.\n\nUseful when a Block Admin / Compliance / CarbonArc reviewer denied in\nerror and wants to let the approver reconsider without making the\ncustomer re-file a brand-new request.","operationId":"reset_rejection_api_v1_admin_block_requests__request_id__reset_rejection_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/retry-provisioning":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Retry Provisioning","description":"Unstick a ``provisioning_failed`` request. Re-runs the\nprovisioning pipeline (credentials lazy-mint + dataset grant via\npower-api) and cascades PROVISIONING_FAILED → PROVISIONING →\nINTAKE_PENDING on success, or back to PROVISIONING_FAILED on failure.","operationId":"retry_provisioning_api_v1_admin_block_requests__request_id__retry_provisioning_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/force-start-trial":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Force Start Trial","description":"Manually start the trial for an ``intake_pending`` row. Pulls\n``trial_start_date`` forward to now and runs the same cascade as the\nscheduled auto-start job (INTAKE_PENDING → TRIAL_PENDING →\nTRIAL_ACTIVE). Used when an admin wants to skip the wait for first\ningestion (or the 30-day fallback) — e.g. a customer is ready to\nintegrate today.","operationId":"force_start_trial_api_v1_admin_block_requests__request_id__force_start_trial_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/force-expire-trial":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Force Expire Trial","description":"Immediately convert a ``trial_active`` row to ``contracted`` and fire\nthe Cole/Finance subscription email.\n\nRuns the same conversion code path as the scheduled job, just without\nthe ``trial_end_date`` cutoff check — primarily a dev/QA lever to avoid\nwaiting out multi-month trial windows during testing, also useful in\nprod ops when a customer signs their contract early.","operationId":"force_expire_trial_api_v1_admin_block_requests__request_id__force_expire_trial_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/trial-window":{"put":{"tags":["Admin APIs","block-data-approvals"],"summary":"Shift Trial Window","description":"QA lever: time-warp a request's trial window so it ends N seconds\nfrom now, with ``trial_start_date`` derived from\n``trial_duration_months`` so the row stays internally consistent.\nDisabled in production.\n\nSeconds is the wire unit so callers can pick any granularity (days,\nhours, minutes, seconds). Useful for two test cases without waiting\nreal time:\n- \"Trial has X left\" — pass a small positive ``seconds_until_end``.\n- \"Trial starts in X\" (cancellation-cutoff UI) — pass\n  ``trial_duration_months * 30 * 86400 + X``.","operationId":"shift_trial_window_api_v1_admin_block_requests__request_id__trial_window_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_ShiftTrialWindowBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/internal-reject/accounts":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Internal Reject Accounts","description":"Reject while the request is on the Accounts internal step.","operationId":"internal_reject_accounts_api_v1_admin_block_requests__request_id__internal_reject_accounts_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/internal-reject/legal":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Internal Reject Legal","description":"Reject while the request is on the Legal internal step.","operationId":"internal_reject_legal_api_v1_admin_block_requests__request_id__internal_reject_legal_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/requests/{request_id}/internal-reject/engineering":{"post":{"tags":["Admin APIs","block-data-approvals"],"summary":"Internal Reject Engineering","description":"Reject while the request is on the Engineering internal step.","operationId":"internal_reject_engineering_api_v1_admin_block_requests__request_id__internal_reject_engineering_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/clients/{client_id}/workflow-settings":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"Get Client Workflow Settings","description":"CAMS-side read of another client's Block workflow settings. Distinct\nfrom ``user_routers/block.py`` which is always scoped to the caller's\nown client.","operationId":"get_client_workflow_settings_api_v1_admin_block_clients__client_id__workflow_settings_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockWorkflowSettingsRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","block-data-approvals"],"summary":"Update Client Workflow Settings","description":"CAMS override of any client's ``block_compliance`` setting. Emits an\naudit log entry (resource=``block_workflow_settings``) capturing the\nprevious and new values.","operationId":"update_client_workflow_settings_api_v1_admin_block_clients__client_id__workflow_settings_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockWorkflowSettingsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockWorkflowSettingsRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/clients/{client_id}/dataset-preapprovals":{"get":{"tags":["Admin APIs","block-data-approvals"],"summary":"List Client Dataset Preapprovals","operationId":"list_client_dataset_preapprovals_api_v1_admin_block_clients__client_id__dataset_preapprovals_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Client Dataset Preapprovals Api V1 Admin Block Clients  Client Id  Dataset Preapprovals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/clients/{client_id}/dataset-preapprovals/{dataset_id}":{"put":{"tags":["Admin APIs","block-data-approvals"],"summary":"Admin Add Dataset Preapproval","operationId":"admin_add_dataset_preapproval_api_v1_admin_block_clients__client_id__dataset_preapprovals__dataset_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Add Dataset Preapproval Api V1 Admin Block Clients  Client Id  Dataset Preapprovals  Dataset Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","block-data-approvals"],"summary":"Admin Remove Dataset Preapproval","operationId":"admin_remove_dataset_preapproval_api_v1_admin_block_clients__client_id__dataset_preapprovals__dataset_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Remove Dataset Preapproval Api V1 Admin Block Clients  Client Id  Dataset Preapprovals  Dataset Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/pricing":{"get":{"tags":["Admin APIs","block-pricing"],"summary":"List Active Pricing","description":"Flat list of active pricing rows; SchedulePriceChangeModal uses\nit to compute ``expected_row_version`` for OCC.","operationId":"list_active_pricing_api_v1_admin_block_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockPricingActiveListResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["Admin APIs","block-pricing"],"summary":"Schedule Price Change","operationId":"schedule_price_change_api_v1_admin_block_pricing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulePriceChangeBody"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockPricingRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/block/pricing/catalog":{"get":{"tags":["Admin APIs","block-pricing"],"summary":"List Pricing Catalog","operationId":"list_pricing_catalog_api_v1_admin_block_pricing_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockPricingCatalogResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/block/pricing/history":{"get":{"tags":["Admin APIs","block-pricing"],"summary":"Get Pricing History","operationId":"get_pricing_history_api_v1_admin_block_pricing_history_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}},{"name":"cut","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cut"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockPricingHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/pricing/import":{"post":{"tags":["Admin APIs","block-pricing"],"summary":"Import Pricing Csv","description":"CSV or XLSX upload from the Pricing admin UI. Format is detected\nfrom the file's leading bytes.","operationId":"import_pricing_csv_api_v1_admin_block_pricing_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_pricing_csv_api_v1_admin_block_pricing_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvImportResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/block/pricing/export":{"get":{"tags":["Admin APIs","block-pricing"],"summary":"Export Pricing","description":"Round-trippable CSV plus read-only XLSX / PDF / HTML mirrors.\nOnly ``format=csv`` round-trips through ``POST /import``.","operationId":"export_pricing_api_v1_admin_block_pricing_export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"csv","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/pricing/dataset-settings/{dataset_id}":{"put":{"tags":["Admin APIs","block-pricing"],"summary":"Update Dataset Setting","description":"Partial update of dataset-level CAMS levers. Each field is\nindependent — omit a key to leave it alone. ``status`` drives the\nsidebar segmented control and the customer \"Available\" rail (only\n``ready`` datasets are surfaced). ``trial_duration_months`` overrides\nthe global 1-month default for requests created against this dataset\n(existing requests are unaffected — they snapshot the duration at\ncreation).","operationId":"update_dataset_setting_api_v1_admin_block_pricing_dataset_settings__dataset_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_DatasetSettingUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Dataset Setting Api V1 Admin Block Pricing Dataset Settings  Dataset Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/pricing/dataset-fees/{dataset_id}":{"put":{"tags":["Admin APIs","block-pricing"],"summary":"Update Dataset Fees","description":"Inline-edit revenue share / deployment fee / monthly fee on every\nactive block_pricing row for a dataset. Distinct from\n``schedule_price_change`` (which is price-only and append-only) —\nfees are dataset config and shouldn't accrete history rows.","operationId":"update_dataset_fees_api_v1_admin_block_pricing_dataset_fees__dataset_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_DatasetFeesUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Dataset Fees Api V1 Admin Block Pricing Dataset Fees  Dataset Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/dataset-restrictions":{"get":{"tags":["Admin APIs","block-dataset-restrictions"],"summary":"List Restrictions","description":"List restrictions. Mode selected by query params:\n\n- ``client_id`` only ⇒ all rows for the client across every dataset\n  (client-side \"Block Restrictions\" section).\n- ``client_id`` + ``dataset_id`` ⇒ all cuts' rows for that\n  client+dataset (shared editor).\n- ``dataset_id`` + ``scope=dataset`` ⇒ all rows for the dataset across\n  every cut, with client info (dataset-side \"Manage access\" list).\n- ``dataset_id`` + ``cut`` ⇒ rows for that exact (dataset, cut), with\n  client info.\n\n``cut`` is ignored when ``scope=dataset`` or ``client_id`` is set.","operationId":"list_restrictions_api_v1_admin_block_dataset_restrictions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^CA\\d+[A-Z]*$"},{"type":"null"}],"title":"Dataset Id"}},{"name":"cut","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cut"}},{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(cut|dataset)$"},{"type":"null"}],"title":"Scope"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockClientDatasetRestrictionListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","block-dataset-restrictions"],"summary":"Set Restriction","description":"Upsert the served lag for ``(client_id, dataset_id, cut)``.\n\nOmit ``expected_row_version`` to create. Include it to update the\nexisting row under optimistic concurrency. ``served_lag=null`` records\n\"no access\"; clients should ``DELETE`` to clear the restriction\nentirely (back to unrestricted), since absence ⇒ open.","operationId":"set_restriction_api_v1_admin_block_dataset_restrictions_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockClientDatasetRestrictionSet"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockClientDatasetRestrictionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","block-dataset-restrictions"],"summary":"Clear Restriction","description":"Clear the restriction for ``(client_id, dataset_id, cut)`` — the\ncut returns to open (served the freshest lag). Idempotent.","operationId":"clear_restriction_api_v1_admin_block_dataset_restrictions_delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}},{"name":"cut","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cut"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/block/dataset-restrictions/{restriction_id}":{"delete":{"tags":["Admin APIs","block-dataset-restrictions"],"summary":"Delete Restriction By Id","description":"Delete by primary key — convenience for the dataset-side admin\nlist where the row was already located by id.","operationId":"delete_restriction_by_id_api_v1_admin_block_dataset_restrictions__restriction_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"restriction_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Restriction Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/datasets/audit":{"get":{"tags":["Admin APIs","dataset-audit"],"summary":"List All Dataset Audit","operationId":"list_all_dataset_audit_api_v1_admin_datasets_audit_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetAuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/datasets/{dataset_id}/audit":{"get":{"tags":["Admin APIs","dataset-audit"],"summary":"List Dataset Audit","operationId":"list_dataset_audit_api_v1_admin_datasets__dataset_id__audit_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetAuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/entities/types":{"get":{"tags":["Admin APIs","openbb-entities"],"summary":"List Entity Types","description":"List all OpenBB entity types.","operationId":"list_entity_types_api_v1_admin_openbb_entities_types_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":100,"title":"Size"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityTypeListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","openbb-entities"],"summary":"Create Entity Type","description":"Create a new OpenBB entity type.","operationId":"create_entity_type_api_v1_admin_openbb_entities_types_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityTypeCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/entities/{entity_uuid}/permission-map/{role}":{"get":{"tags":["Admin APIs","openbb-entities"],"summary":"Get Permission Map By Role","description":"Get permission map for an entity by role name.\n\nArgs:\n    entity_uuid: UUID of the entity.\n    role: Role name ('admin' or 'user', case-insensitive).\n\nReturns:\n    Permission map with UUID, name, and entity UUID.","operationId":"get_permission_map_by_role_api_v1_admin_openbb_entities__entity_uuid__permission_map__role__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","title":"Entity Uuid"}},{"name":"role","in":"path","required":true,"schema":{"type":"string","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBPermissionMapRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/entities/provision":{"post":{"tags":["Admin APIs","openbb-entities"],"summary":"Provision Entity With Users","description":"Provision a complete OpenBB entity with admins and users.\n\nThis is a convenience endpoint that:\n1. Creates the entity\n2. Sets up default entitlements\n3. Creates admin users\n4. Creates regular users\n\nAll users receive temporary passwords that should be changed on first login.","operationId":"provision_entity_with_users_api_v1_admin_openbb_entities_provision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBProvisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBProvisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/openbb/entities":{"get":{"tags":["Admin APIs","openbb-entities"],"summary":"List Entities","description":"List all OpenBB entities with pagination.","operationId":"list_entities_api_v1_admin_openbb_entities_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":100,"title":"Size"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","openbb-entities"],"summary":"Create Entity","description":"Create a new OpenBB entity.\n\nThis also sets up default entitlements for the entity.","operationId":"create_entity_api_v1_admin_openbb_entities_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/entities/{entity_uuid}":{"get":{"tags":["Admin APIs","openbb-entities"],"summary":"Get Entity","description":"Get a specific OpenBB entity by UUID.","operationId":"get_entity_api_v1_admin_openbb_entities__entity_uuid__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","title":"Entity Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","openbb-entities"],"summary":"Update Entity","description":"Update an existing OpenBB entity.","operationId":"update_entity_api_v1_admin_openbb_entities__entity_uuid__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","title":"Entity Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBEntityRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/users":{"get":{"tags":["Admin APIs","openbb-users"],"summary":"List Users","description":"List all OpenBB users with pagination.\n\nOptionally filter by exact email match.","operationId":"list_users_api_v1_admin_openbb_users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":100,"title":"Size"},"description":"Items per page"},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by email","title":"Email"},"description":"Filter by email"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/users/move":{"post":{"tags":["Admin APIs","openbb-users"],"summary":"Move User","description":"Move an OpenBB user to another entity.\n\nThis changes the user's entity membership and role without sending an invitation.","operationId":"move_user_api_v1_admin_openbb_users_move_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserMoveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/openbb/users/by-email/{email}":{"get":{"tags":["Admin APIs","openbb-users"],"summary":"Get User By Email","description":"Get a specific OpenBB user by email.","operationId":"get_user_by_email_api_v1_admin_openbb_users_by_email__email__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","openbb-users"],"summary":"Delete User By Email","description":"Delete an OpenBB user by email.","operationId":"delete_user_by_email_api_v1_admin_openbb_users_by_email__email__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/users/entity/{entity_uuid}":{"get":{"tags":["Admin APIs","openbb-users"],"summary":"List Entity Users","description":"List all users belonging to a specific entity.\n\nNote: This endpoint fetches all users from OpenBB Hub and filters by entity\nclient-side, as the OpenBB Hub API doesn't support direct entity-based\nuser filtering. All pages are fetched to ensure complete results.","operationId":"list_entity_users_api_v1_admin_openbb_users_entity__entity_uuid__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","title":"Entity Uuid"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":100,"title":"Size"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/users/{entity_uuid}":{"post":{"tags":["Admin APIs","openbb-users"],"summary":"Create User","description":"Create a new OpenBB user and assign to an entity.\n\nThe user will receive a temporary password that must be changed on first login.","operationId":"create_user_api_v1_admin_openbb_users__entity_uuid__post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","title":"Entity Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/users/{user_uuid}/entity":{"put":{"tags":["Admin APIs","openbb-users"],"summary":"Update User Entity","description":"Update a user's entity assignment (move user to a different entity).","operationId":"update_user_entity_api_v1_admin_openbb_users__user_uuid__entity_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserUpdateEntityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBBUserUpdateEntityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/openbb/users/{user_uuid}":{"delete":{"tags":["Admin APIs","openbb-users"],"summary":"Delete User","description":"Delete an OpenBB user by UUID.","operationId":"delete_user_api_v1_admin_openbb_users__user_uuid__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_uuid","in":"path","required":true,"schema":{"type":"string","title":"User Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/framework-carts/stats":{"get":{"tags":["Admin APIs","framework-carts"],"summary":"Get Cart Stats","description":"Compute aggregate statistics for abandoned carts.","operationId":"get_cart_stats_api_v1_admin_framework_carts_stats_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","description":"When true (default), omit carts whose user email domain is internal (CarbonArc and related domains).","default":true,"title":"Exclude Internal"},"description":"When true (default), omit carts whose user email domain is internal (CarbonArc and related domains)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/framework-carts":{"get":{"tags":["Admin APIs","framework-carts"],"summary":"Get Cart Statuses","description":"Get all cart status records with filtering, sorting, and pagination.","operationId":"get_cart_statuses_api_v1_admin_framework_carts_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","description":"When true (default), omit carts whose user email domain is internal (CarbonArc and related domains).","default":true,"title":"Exclude Internal"},"description":"When true (default), omit carts whose user email domain is internal (CarbonArc and related domains)."},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CartStatusRead"},"title":"Response Get Cart Statuses Api V1 Admin Framework Carts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/framework-carts/{id}":{"get":{"tags":["Admin APIs","framework-carts"],"summary":"Get Cart Status","description":"Get a single cart status record by ID.","operationId":"get_cart_status_api_v1_admin_framework_carts__id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartStatusRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/cache":{"delete":{"tags":["Admin APIs","Reporting"],"summary":"Clear Reporting Cache","description":"Clear all reporting caches. Super admin only. Requires X-Confirm-Destructive: true.","operationId":"clear_reporting_cache_api_v1_admin_reporting_cache_delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"X-Confirm-Destructive","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Confirm-Destructive"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/health":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Health","description":"Return the cached reporting health status. Accessible to all admins.","operationId":"get_health_api_v1_admin_reporting_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingHealthStatus"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reporting/health/override":{"post":{"tags":["Admin APIs","Reporting"],"summary":"Set Health Override","description":"Suppress the degraded health banner for the given number of hours. Super admin only.","operationId":"set_health_override_api_v1_admin_reporting_health_override_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"ttl_hours","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"default":2,"title":"Ttl Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","Reporting"],"summary":"Clear Health Override","description":"Remove the health override, restoring the real health status. Super admin only.","operationId":"clear_health_override_api_v1_admin_reporting_health_override_delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/reporting/filters":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Filters","operationId":"get_filters_api_v1_admin_reporting_filters_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiltersResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reporting/kpi-weekly/history":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Kpi Weekly History","operationId":"get_kpi_weekly_history_api_v1_admin_reporting_kpi_weekly_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KPIWeeklyHistoryResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reporting/kpi-weekly":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Kpi Weekly","operationId":"get_kpi_weekly_api_v1_admin_reporting_kpi_weekly_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KPIWeeklyResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/reporting/kpi-weekly/{week_ending}/drilldown":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Kpi Weekly Drilldown","operationId":"get_kpi_weekly_drilldown_api_v1_admin_reporting_kpi_weekly__week_ending__drilldown_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"week_ending","in":"path","required":true,"schema":{"type":"string","format":"date","title":"Week Ending"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KPIWeeklyDrilldownResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/kpi-weekly/backfill":{"post":{"tags":["Admin APIs","Reporting"],"summary":"Backfill Kpi Weekly","operationId":"backfill_kpi_weekly_api_v1_admin_reporting_kpi_weekly_backfill_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KPIWeeklyBackfillResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/snapshot/backfill":{"post":{"tags":["Admin APIs","Reporting"],"summary":"Backfill Snapshot Reporting","description":"Backfill snapshot_reporting tables for [start, end] (inclusive, max 30 days per call).\n\nAll saves are upserts — safe to re-run. ETL/ledger routing (cutover 2026-05-29)\nis handled automatically by the underlying data fetch.\nUse skip_existing=true to skip dates that already have a snapshot row.","operationId":"backfill_snapshot_reporting_api_v1_admin_reporting_snapshot_backfill_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End"}},{"name":"skip_existing","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Skip Existing"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/snapshot/export":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Export Snapshot Reporting","description":"Export snapshot data as a ZIP of 4 CSVs (overview, clients, users, suppliers)\nwithout writing to the database. Provide either start+end (range, max {_SNAPSHOT_EXPORT_MAX_DAYS} days)\nor dates (comma-separated list of specific dates). concurrency controls parallel day fetches.","operationId":"export_snapshot_reporting_api_v1_admin_reporting_snapshot_export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}},{"name":"dates","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated specific dates, e.g. 2025-11-07,2025-11-10","title":"Dates"},"description":"Comma-separated specific dates, e.g. 2025-11-07,2025-11-10"},{"name":"concurrency","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"default":3,"title":"Concurrency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/snapshot/export/suppliers":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Export Snapshot Suppliers","description":"Export suppliers-only data as a CSV for a date range.\n\nFetches only S3, Polaris, Consumption, and MCP data — skips platform/user fetches\nfor faster exports over large date ranges. Returns a single suppliers.csv.\nProvide either start+end (range, max 365 days) or dates (comma-separated list).","operationId":"export_snapshot_suppliers_api_v1_admin_reporting_snapshot_export_suppliers_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}},{"name":"dates","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated specific dates, e.g. 2025-11-07,2025-11-10","title":"Dates"},"description":"Comma-separated specific dates, e.g. 2025-11-07,2025-11-10"},{"name":"concurrency","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"default":3,"title":"Concurrency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/snapshot/import":{"post":{"tags":["Admin APIs","Reporting"],"summary":"Import Snapshot Reporting","description":"Import snapshot data from a directory of 4 CSVs into the snapshot tables.\n\nThe directory must contain: overview.csv, clients.csv, suppliers.csv, users.csv.\nAll inserts are upserts — safe to re-run. Use skip_existing=true to skip dates\nthat already have an overview row.","operationId":"import_snapshot_reporting_api_v1_admin_reporting_snapshot_import_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"directory","in":"query","required":true,"schema":{"type":"string","description":"Path to directory containing overview.csv, clients.csv, suppliers.csv, users.csv","title":"Directory"},"description":"Path to directory containing overview.csv, clients.csv, suppliers.csv, users.csv"},{"name":"skip_existing","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Skip Existing"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/snapshot/history":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Snapshot History","description":"Return daily overview snapshot rows for [start, end].\n\nIf start is omitted, returns all rows up to end.\nIncludes per-tier aggregates from reporting_snapshots_clients so the frontend\ncan render stacked breakdown charts.\nToday's data point uses the live engagement query (15-min cache) so it matches\nthe Overview widget; all prior dates come from snapshots.","operationId":"get_snapshot_history_api_v1_admin_reporting_snapshot_history_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/client-engagement":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Client Engagement","operationId":"get_client_engagement_api_v1_admin_reporting_client_engagement_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientEngagementResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/user-consumption":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get User Consumption","operationId":"get_user_consumption_api_v1_admin_reporting_user_consumption_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserConsumptionRow"},"title":"Response Get User Consumption Api V1 Admin Reporting User Consumption Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/user-access":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get User Access","operationId":"get_user_access_api_v1_admin_reporting_user_access_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserAccessRow"},"title":"Response Get User Access Api V1 Admin Reporting User Access Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/supplier-engagement":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Supplier Engagement","operationId":"get_supplier_engagement_api_v1_admin_reporting_supplier_engagement_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"data_source","in":"query","required":false,"schema":{"type":"string","default":"general_consumption","title":"Data Source"}},{"name":"metric","in":"query","required":false,"schema":{"type":"string","default":"tokens","title":"Metric"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierMatrixResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/supplier-combined":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Supplier Combined","operationId":"get_supplier_combined_api_v1_admin_reporting_supplier_combined_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}},{"name":"top_n","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Top N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierCombinedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/raw-export":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Raw Export","operationId":"raw_export_api_v1_admin_reporting_raw_export_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataframe","in":"query","required":true,"schema":{"type":"string","title":"Dataframe"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/client-rum-metrics":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Client Rum Metrics","operationId":"get_client_rum_metrics_api_v1_admin_reporting_client_rum_metrics_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientRumMetricsRow"},"title":"Response Get Client Rum Metrics Api V1 Admin Reporting Client Rum Metrics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/user-rum-metrics":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get User Rum Metrics","operationId":"get_user_rum_metrics_api_v1_admin_reporting_user_rum_metrics_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserRumMetricsRow"},"title":"Response Get User Rum Metrics Api V1 Admin Reporting User Rum Metrics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reporting/summary/pdf":{"get":{"tags":["Admin APIs","Reporting"],"summary":"Get Summary Pdf","operationId":"get_summary_pdf_api_v1_admin_reporting_summary_pdf_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"exclude_internal","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exclude Internal"}},{"name":"plan_tiers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tiers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/analytics/product-metrics":{"get":{"tags":["Admin APIs","Analytics"],"summary":"Get Product Metrics Endpoint","description":"Aggregate product-level RUM metrics: session length, frustration count,\nload time, and percentage of sessions with errors.","operationId":"get_product_metrics_endpoint_api_v1_admin_analytics_product_metrics_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter_from","in":"query","required":false,"schema":{"type":"string","description":"Start time, e.g. now-30d or ISO8601","default":"now-30d","title":"Filter From"},"description":"Start time, e.g. now-30d or ISO8601"},{"name":"filter_to","in":"query","required":false,"schema":{"type":"string","description":"End time, e.g. now or ISO8601","default":"now","title":"Filter To"},"description":"End time, e.g. now or ISO8601"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/analytics/user-tracking":{"get":{"tags":["Admin APIs","Analytics"],"summary":"Get User Tracking","operationId":"get_user_tracking_api_v1_admin_analytics_user_tracking_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","description":"User email address to look up","title":"Email"},"description":"User email address to look up"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Number of days to look back","default":30,"title":"Days"},"description":"Number of days to look back"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/analytics/rum/page-performance":{"get":{"tags":["Admin APIs","Analytics"],"summary":"Get Rum Page Performance Endpoint","description":"Page-performance summary for the CAMS Summary tab.\n\nAggregates view counts, avg loading time, and daily timeseries for the current\nand previous period. Used to power the treemap, total-views stat, area chart,\nand top-routes table — replacing previously hardcoded mock data.","operationId":"get_rum_page_performance_endpoint_api_v1_admin_analytics_rum_page_performance_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter_from","in":"query","required":false,"schema":{"type":"string","description":"Start time, e.g. now-7d or ISO8601","default":"now-7d","title":"Filter From"},"description":"Start time, e.g. now-7d or ISO8601"},{"name":"filter_to","in":"query","required":false,"schema":{"type":"string","description":"End time, e.g. now or ISO8601","default":"now","title":"Filter To"},"description":"End time, e.g. now or ISO8601"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/analytics/rum/events":{"get":{"tags":["Admin APIs","Analytics"],"summary":"Get Rum Events","description":"Proxy to Datadog GET /api/v2/rum/events.\n\nAll queries are automatically scoped to the configured application ID\nto prevent cross-application data access. Returns raw API response.","operationId":"get_rum_events_api_v1_admin_analytics_rum_events_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Minimum time, e.g. now-24h or ISO8601","title":"Filter From"},"description":"Minimum time, e.g. now-24h or ISO8601"},{"name":"filter_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Maximum time, e.g. now or ISO8601","title":"Filter To"},"description":"Maximum time, e.g. now or ISO8601"},{"name":"filter_query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Additional RUM search query (automatically scoped to app)","title":"Filter Query"},"description":"Additional RUM search query (automatically scoped to app)"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: timestamp or -timestamp","title":"Sort"},"description":"Sort: timestamp or -timestamp"},{"name":"page_cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from previous response","title":"Page Cursor"},"description":"Pagination cursor from previous response"},{"name":"page_limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Max events per page","default":100,"title":"Page Limit"},"description":"Max events per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/tools":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"List Tools","operationId":"list_tools_api_v1_admin_mcp_observability_tools_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response List Tools Api V1 Admin Mcp Observability Tools Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/mcp-observability/date-bounds":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Date Bounds","operationId":"date_bounds_api_v1_admin_mcp_observability_date_bounds_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DateBounds"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/mcp-observability/filter-clients":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Filter Clients","operationId":"filter_clients_api_v1_admin_mcp_observability_filter_clients_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Filter Clients Api V1 Admin Mcp Observability Filter Clients Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/summary":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Summary","operationId":"summary_api_v1_admin_mcp_observability_summary_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KpiSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/traces-by-tool":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Traces By Tool","operationId":"traces_by_tool_api_v1_admin_mcp_observability_traces_by_tool_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ToolMetric"},"title":"Response Traces By Tool Api V1 Admin Mcp Observability Traces By Tool Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/latency-by-tool":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Latency By Tool","operationId":"latency_by_tool_api_v1_admin_mcp_observability_latency_by_tool_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LatencyByTool"},"title":"Response Latency By Tool Api V1 Admin Mcp Observability Latency By Tool Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/traces-by-client":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Traces By Client","operationId":"traces_by_client_api_v1_admin_mcp_observability_traces_by_client_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientMetric"},"title":"Response Traces By Client Api V1 Admin Mcp Observability Traces By Client Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/error-codes":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Error Codes","operationId":"error_codes_api_v1_admin_mcp_observability_error_codes_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ErrorCodeRow"},"title":"Response Error Codes Api V1 Admin Mcp Observability Error Codes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/error-codes-heatmap":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Error Codes Heatmap","operationId":"error_codes_heatmap_api_v1_admin_mcp_observability_error_codes_heatmap_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ErrorCodeHeatmapCell"},"title":"Response Error Codes Heatmap Api V1 Admin Mcp Observability Error Codes Heatmap Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/tool-error-hierarchy":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Tool Error Hierarchy","operationId":"tool_error_hierarchy_api_v1_admin_mcp_observability_tool_error_hierarchy_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HierarchyNode"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/traces-by-dataset":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Traces By Dataset","operationId":"traces_by_dataset_api_v1_admin_mcp_observability_traces_by_dataset_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DatasetRow"},"title":"Response Traces By Dataset Api V1 Admin Mcp Observability Traces By Dataset Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/volume-over-time":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Volume Over Time","operationId":"volume_over_time_api_v1_admin_mcp_observability_volume_over_time_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"agg","in":"query","required":false,"schema":{"type":"string","default":"day","title":"Agg"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VolumePoint"},"title":"Response Volume Over Time Api V1 Admin Mcp Observability Volume Over Time Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/latency-over-time":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Latency Over Time","operationId":"latency_over_time_api_v1_admin_mcp_observability_latency_over_time_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"agg","in":"query","required":false,"schema":{"type":"string","default":"day","title":"Agg"}},{"name":"tool_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Filter"}},{"name":"split","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Split"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LatencyTimePoint"},"title":"Response Latency Over Time Api V1 Admin Mcp Observability Latency Over Time Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/latency-by-error-code":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Latency By Error Code","operationId":"latency_by_error_code_api_v1_admin_mcp_observability_latency_by_error_code_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LatencyByErrorCode"},"title":"Response Latency By Error Code Api V1 Admin Mcp Observability Latency By Error Code Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/insight-error-rate":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Insight Error Rate","operationId":"insight_error_rate_api_v1_admin_mcp_observability_insight_error_rate_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsightErrorRow"},"title":"Response Insight Error Rate Api V1 Admin Mcp Observability Insight Error Rate Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/trace-details":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Trace Details","operationId":"trace_details_api_v1_admin_mcp_observability_trace_details_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"outcome","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Outcome"}},{"name":"message_filter","in":"query","required":false,"schema":{"type":"string","default":"any","title":"Message Filter"}},{"name":"error_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Types"}},{"name":"trace_clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Trace Clients"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Page Size"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceDetailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/mcp-observability/trace-details/csv":{"get":{"tags":["Admin APIs","MCP Observability"],"summary":"Trace Details Csv","operationId":"trace_details_csv_api_v1_admin_mcp_observability_trace_details_csv_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"outcome","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Outcome"}},{"name":"message_filter","in":"query","required":false,"schema":{"type":"string","default":"any","title":"Message Filter"}},{"name":"error_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Types"}},{"name":"trace_clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Trace Clients"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start Date"}},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End Date"}},{"name":"tools","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tools"}},{"name":"environment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment"}},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"}},{"name":"clients","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Clients"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/eval-runs/config":{"get":{"tags":["Admin APIs","Eval Runs"],"summary":"Get Eval Config","operationId":"get_eval_config_api_v1_admin_eval_runs_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalConfig"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/eval-runs":{"get":{"tags":["Admin APIs","Eval Runs"],"summary":"List Eval Runs","operationId":"list_eval_runs_api_v1_admin_eval_runs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EvalJob"},"type":"array","title":"Response List Eval Runs Api V1 Admin Eval Runs Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["Admin APIs","Eval Runs"],"summary":"Create Eval Run","operationId":"create_eval_run_api_v1_admin_eval_runs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRunRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Eval Run Api V1 Admin Eval Runs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/eval-runs/{job_id}":{"get":{"tags":["Admin APIs","Eval Runs"],"summary":"Get Eval Run","operationId":"get_eval_run_api_v1_admin_eval_runs__job_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalJob"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/eval-runs/{job_id}/cancel":{"post":{"tags":["Admin APIs","Eval Runs"],"summary":"Cancel Eval Run","operationId":"cancel_eval_run_api_v1_admin_eval_runs__job_id__cancel_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalJob"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/historical-replay/config":{"get":{"tags":["Admin APIs","Historical Replay"],"summary":"Get Replay Config","operationId":"get_replay_config_api_v1_admin_historical_replay_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplayConfig"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/historical-replay":{"get":{"tags":["Admin APIs","Historical Replay"],"summary":"List Replay Runs","operationId":"list_replay_runs_api_v1_admin_historical_replay_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EvalJob"},"type":"array","title":"Response List Replay Runs Api V1 Admin Historical Replay Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["Admin APIs","Historical Replay"],"summary":"Create Replay Run","operationId":"create_replay_run_api_v1_admin_historical_replay_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplayRunRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Replay Run Api V1 Admin Historical Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/historical-replay/{job_id}":{"get":{"tags":["Admin APIs","Historical Replay"],"summary":"Get Replay Run","operationId":"get_replay_run_api_v1_admin_historical_replay__job_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalJob"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/historical-replay/{job_id}/cancel":{"post":{"tags":["Admin APIs","Historical Replay"],"summary":"Cancel Replay Run","operationId":"cancel_replay_run_api_v1_admin_historical_replay__job_id__cancel_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalJob"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/tous":{"get":{"tags":["Admin APIs","Legal"],"summary":"List Tou Versions","description":"List all TOU versions with filtering, sorting, and pagination.","operationId":"list_tou_versions_api_v1_admin_legal_tous_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SignupTOUVersionResponse"},"title":"Response List Tou Versions Api V1 Admin Legal Tous Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","Legal"],"summary":"Update Tou","description":"Update TOU content (creates new version).","operationId":"update_tou_api_v1_admin_legal_tous_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTOUUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTOUVersionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/tous/latest":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Latest Tou","description":"Get the latest published TOU version. Returns 404 if no TOU exists.","operationId":"get_latest_tou_api_v1_admin_legal_tous_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTOUVersionResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/legal/tous/{id}":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Tou Version","description":"Get a specific TOU version by ID.","operationId":"get_tou_version_api_v1_admin_legal_tous__id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTOUVersionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/tous/{id}/previous-revision":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Previous Tou Revision","description":"Get the previous revision of a TOU.","operationId":"get_previous_tou_revision_api_v1_admin_legal_tous__id__previous_revision_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SignupTOUVersionResponse"},{"type":"null"}],"title":"Response Get Previous Tou Revision Api V1 Admin Legal Tous  Id  Previous Revision Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/tou-acceptances":{"get":{"tags":["Admin APIs","Legal","Legal"],"summary":"List Pending Tou Users","description":"List users who haven't accepted the latest TOU version with filtering, sorting, and pagination.","operationId":"list_pending_tou_users_api_v1_admin_legal_tou_acceptances_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SignupTOUAcceptanceResponse"},"title":"Response List Pending Tou Users Api V1 Admin Legal Tou Acceptances Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/block-tous/{dataset_id}/latest":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Latest Block Dataset Tou","description":"Get the latest published TOU for a dataset. 404 if no TOU exists for\nthis dataset — that absence is meaningful and not an error.","operationId":"get_latest_block_dataset_tou_api_v1_admin_legal_block_tous__dataset_id__latest_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDatasetTOULatestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/block-tous/{dataset_id}/versions":{"get":{"tags":["Admin APIs","Legal"],"summary":"List Block Dataset Tou Versions","description":"List every published version of a dataset's TOU, newest first.","operationId":"list_block_dataset_tou_versions_api_v1_admin_legal_block_tous__dataset_id__versions_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlockDatasetTOUVersionResponse"},"title":"Response List Block Dataset Tou Versions Api V1 Admin Legal Block Tous  Dataset Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","Legal"],"summary":"Publish Block Dataset Tou","description":"Publish a new TOU version for ``dataset_id``.","operationId":"publish_block_dataset_tou_api_v1_admin_legal_block_tous__dataset_id__versions_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDatasetTOUUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDatasetTOUVersionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/block-tous/{dataset_id}":{"delete":{"tags":["Admin APIs","Legal"],"summary":"Clear Block Dataset Tou","description":"Hard-clear all TOU versions for a dataset, returning it to the\nno-TOU state (the public request modal will hide the acceptance\ncheckbox). Once cleared the version history is no longer legally\nmeaningful, so we don't soft-delete.","operationId":"clear_block_dataset_tou_api_v1_admin_legal_block_tous__dataset_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/privacy-policies":{"get":{"tags":["Admin APIs","Legal"],"summary":"List Privacy Policy Versions","description":"List all privacy policy versions with filtering, sorting, and pagination.","operationId":"list_privacy_policy_versions_api_v1_admin_legal_privacy_policies_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PrivacyPolicyVersionResponse"},"title":"Response List Privacy Policy Versions Api V1 Admin Legal Privacy Policies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","Legal"],"summary":"Create Privacy Policy Version","description":"Create a new privacy policy version.","operationId":"create_privacy_policy_version_api_v1_admin_legal_privacy_policies_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyPolicyCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyPolicyVersionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/privacy-policies/latest":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Latest Privacy Policy","description":"Get the latest published privacy policy version. Returns 404 if none exists.","operationId":"get_latest_privacy_policy_api_v1_admin_legal_privacy_policies_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyPolicyVersionResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/legal/privacy-policies/{id}":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Privacy Policy Version","description":"Get a specific privacy policy version by ID.","operationId":"get_privacy_policy_version_api_v1_admin_legal_privacy_policies__id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyPolicyVersionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/legal/privacy-policies/{id}/previous-revision":{"get":{"tags":["Admin APIs","Legal"],"summary":"Get Previous Privacy Policy Revision","description":"Get the previous revision of a privacy policy version.","operationId":"get_previous_privacy_policy_revision_api_v1_admin_legal_privacy_policies__id__previous_revision_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PrivacyPolicyVersionResponse"},{"type":"null"}],"title":"Response Get Previous Privacy Policy Revision Api V1 Admin Legal Privacy Policies  Id  Previous Revision Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tickers":{"get":{"tags":["Admin APIs","tickers"],"summary":"Get Tickers","operationId":"get_tickers_api_v1_admin_tickers_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TickerResponse"},"title":"Response Get Tickers Api V1 Admin Tickers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","tickers"],"summary":"Create Ticker","operationId":"create_ticker_api_v1_admin_tickers_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TickerCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TickerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/tickers/{ticker_id}":{"get":{"tags":["Admin APIs","tickers"],"summary":"Get Ticker","operationId":"get_ticker_api_v1_admin_tickers__ticker_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"ticker_id","in":"path","required":true,"schema":{"type":"string","title":"Ticker Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TickerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","tickers"],"summary":"Update Ticker","operationId":"update_ticker_api_v1_admin_tickers__ticker_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"ticker_id","in":"path","required":true,"schema":{"type":"string","title":"Ticker Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TickerUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TickerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","tickers"],"summary":"Delete Ticker","operationId":"delete_ticker_api_v1_admin_tickers__ticker_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"ticker_id","in":"path","required":true,"schema":{"type":"string","title":"Ticker Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups":{"get":{"tags":["Admin APIs","email-recipient-groups"],"summary":"List Email Recipient Groups","operationId":"list_email_recipient_groups_api_v1_admin_email_recipient_groups_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailRecipientGroupRead"},"title":"Response List Email Recipient Groups Api V1 Admin Email Recipient Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Create Email Recipient Group","operationId":"create_email_recipient_group_api_v1_admin_email_recipient_groups_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups/cams-groups":{"get":{"tags":["Admin APIs","email-recipient-groups"],"summary":"List Cams Groups","operationId":"list_cams_groups_api_v1_admin_email_recipient_groups_cams_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CamsGroupRead"},"type":"array","title":"Response List Cams Groups Api V1 Admin Email Recipient Groups Cams Groups Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/email-recipient-groups/{group_id}":{"get":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Get Email Recipient Group","operationId":"get_email_recipient_group_api_v1_admin_email_recipient_groups__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Update Email Recipient Group","operationId":"update_email_recipient_group_api_v1_admin_email_recipient_groups__group_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Delete Email Recipient Group","operationId":"delete_email_recipient_group_api_v1_admin_email_recipient_groups__group_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups/{group_id}/effective-members":{"get":{"tags":["Admin APIs","email-recipient-groups"],"summary":"List Effective Members","description":"Return all recipients — manual members and users from linked CAMS groups.","operationId":"list_effective_members_api_v1_admin_email_recipient_groups__group_id__effective_members_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EffectiveMemberRead"},"title":"Response List Effective Members Api V1 Admin Email Recipient Groups  Group Id  Effective Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups/{group_id}/members":{"get":{"tags":["Admin APIs","email-recipient-groups"],"summary":"List Email Recipient Group Members","operationId":"list_email_recipient_group_members_api_v1_admin_email_recipient_groups__group_id__members_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailRecipientGroupMemberRead"},"title":"Response List Email Recipient Group Members Api V1 Admin Email Recipient Groups  Group Id  Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Add Email Recipient Group Member","operationId":"add_email_recipient_group_member_api_v1_admin_email_recipient_groups__group_id__members_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupMemberCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailRecipientGroupMemberRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups/{group_id}/members/{member_id}":{"delete":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Remove Email Recipient Group Member","operationId":"remove_email_recipient_group_member_api_v1_admin_email_recipient_groups__group_id__members__member_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}},{"name":"member_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Member Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups/{group_id}/linked-groups":{"get":{"tags":["Admin APIs","email-recipient-groups"],"summary":"List Linked Cams Groups","operationId":"list_linked_cams_groups_api_v1_admin_email_recipient_groups__group_id__linked_groups_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LinkedCamsGroupRead"},"title":"Response List Linked Cams Groups Api V1 Admin Email Recipient Groups  Group Id  Linked Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Add Linked Cams Group","operationId":"add_linked_cams_group_api_v1_admin_email_recipient_groups__group_id__linked_groups_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddLinkedCamsGroupRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedCamsGroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-recipient-groups/{group_id}/linked-groups/{link_id}":{"delete":{"tags":["Admin APIs","email-recipient-groups"],"summary":"Remove Linked Cams Group","operationId":"remove_linked_cams_group_api_v1_admin_email_recipient_groups__group_id__linked_groups__link_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}},{"name":"link_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Link Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-triggers":{"get":{"tags":["Admin APIs","email-triggers"],"summary":"List Email Triggers","operationId":"list_email_triggers_api_v1_admin_email_triggers_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailTriggerRead"},"title":"Response List Email Triggers Api V1 Admin Email Triggers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","email-triggers"],"summary":"Create Email Trigger","operationId":"create_email_trigger_api_v1_admin_email_triggers_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriggerCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriggerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-triggers/{trigger_id}":{"get":{"tags":["Admin APIs","email-triggers"],"summary":"Get Email Trigger","operationId":"get_email_trigger_api_v1_admin_email_triggers__trigger_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriggerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","email-triggers"],"summary":"Update Email Trigger","operationId":"update_email_trigger_api_v1_admin_email_triggers__trigger_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriggerUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriggerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","email-triggers"],"summary":"Delete Email Trigger","operationId":"delete_email_trigger_api_v1_admin_email_triggers__trigger_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-triggers/{trigger_id}/groups":{"get":{"tags":["Admin APIs","email-triggers"],"summary":"List Email Trigger Groups","operationId":"list_email_trigger_groups_api_v1_admin_email_triggers__trigger_id__groups_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailRecipientGroupRead"},"title":"Response List Email Trigger Groups Api V1 Admin Email Triggers  Trigger Id  Groups Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-triggers/{trigger_id}/groups/{group_id}":{"post":{"tags":["Admin APIs","email-triggers"],"summary":"Assign Group To Trigger","operationId":"assign_group_to_trigger_api_v1_admin_email_triggers__trigger_id__groups__group_id__post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","email-triggers"],"summary":"Unassign Group From Trigger","operationId":"unassign_group_from_trigger_api_v1_admin_email_triggers__trigger_id__groups__group_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-triggers/{trigger_id}/emails":{"get":{"tags":["Admin APIs","email-triggers"],"summary":"Get Trigger Emails","operationId":"get_trigger_emails_api_v1_admin_email_triggers__trigger_id__emails_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriggerEmailsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-notifications":{"get":{"tags":["Admin APIs","email-notifications"],"summary":"List Email Notifications","operationId":"list_email_notifications_api_v1_admin_email_notifications_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"range","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailNotificationResponse"},"title":"Response List Email Notifications Api V1 Admin Email Notifications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin APIs","email-notifications"],"summary":"Create Email Notification","operationId":"create_email_notification_api_v1_admin_email_notifications_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailNotificationCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailNotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-notifications/preview-audience":{"post":{"tags":["Admin APIs","email-notifications"],"summary":"Preview Email Notification Audience","operationId":"preview_email_notification_audience_api_v1_admin_email_notifications_preview_audience_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudiencePreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudiencePreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/email-notifications/preview-audience-users":{"post":{"tags":["Admin APIs","email-notifications"],"summary":"Preview Email Notification Audience Users","operationId":"preview_email_notification_audience_users_api_v1_admin_email_notifications_preview_audience_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudiencePreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AudienceUserItem"},"type":"array","title":"Response Preview Email Notification Audience Users Api V1 Admin Email Notifications Preview Audience Users Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/email-notifications/{notification_id}":{"get":{"tags":["Admin APIs","email-notifications"],"summary":"Get Email Notification","operationId":"get_email_notification_api_v1_admin_email_notifications__notification_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailNotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin APIs","email-notifications"],"summary":"Update Email Notification","operationId":"update_email_notification_api_v1_admin_email_notifications__notification_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailNotificationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailNotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin APIs","email-notifications"],"summary":"Delete Email Notification","operationId":"delete_email_notification_api_v1_admin_email_notifications__notification_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-notifications/{notification_id}/send":{"post":{"tags":["Admin APIs","email-notifications"],"summary":"Send Email Notification","operationId":"send_email_notification_api_v1_admin_email_notifications__notification_id__send_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendNotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-notifications/{notification_id}/resend-failed":{"post":{"tags":["Admin APIs","email-notifications"],"summary":"Resend Failed Email Notification","operationId":"resend_failed_email_notification_api_v1_admin_email_notifications__notification_id__resend_failed_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendNotificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/email-notifications/{notification_id}/recipients":{"get":{"tags":["Admin APIs","email-notifications"],"summary":"List Email Notification Recipients","operationId":"list_email_notification_recipients_api_v1_admin_email_notifications__notification_id__recipients_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailNotificationRecipientResponse"},"title":"Response List Email Notification Recipients Api V1 Admin Email Notifications  Notification Id  Recipients Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/onboarding":{"get":{"tags":["Admin APIs","enterprise-onboarding"],"summary":"Get Client Onboarding","operationId":"get_client_onboarding_api_v1_admin_clients__client_id__onboarding_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientOnboardingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/clients/{client_id}/onboarding/steps/{step_number}/complete":{"post":{"tags":["Admin APIs","enterprise-onboarding"],"summary":"Complete Onboarding Step","operationId":"complete_onboarding_step_api_v1_admin_clients__client_id__onboarding_steps__step_number__complete_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"step_number","in":"path","required":true,"schema":{"type":"integer","title":"Step Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientOnboardingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ontology/csv-drafter/parse":{"post":{"tags":["Admin APIs","ontology-csv-drafter"],"summary":"Parse Csv","description":"Parse and validate a CSV file for the ontology CSV drafter.","operationId":"parse_csv_api_v1_admin_ontology_csv_drafter_parse_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_parse_csv_api_v1_admin_ontology_csv_drafter_parse_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/load-test/health":{"get":{"tags":["Super Admin APIs","load-testing"],"summary":"Load Test Health","operationId":"load_test_health_api_v1_admin_load_test_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/load-test/enqueue-task":{"post":{"tags":["Super Admin APIs","load-testing"],"summary":"Enqueue Task","description":"Enqueue a Celery task by name. Returns the async task_id for polling.","operationId":"enqueue_task_api_v1_admin_load_test_enqueue_task_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnqueueRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnqueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/load-test/task-status/{task_id}":{"get":{"tags":["Super Admin APIs","load-testing"],"summary":"Get Task Status","description":"Poll Celery task status by task_id.","operationId":"get_task_status_api_v1_admin_load_test_task_status__task_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/load-test/signup-provisioning/seed":{"post":{"tags":["Super Admin APIs","load-testing"],"summary":"Seed Signup Provisioning","description":"Insert a **PAID** ``pending_signups`` row plus Stripe-shaped ``stripe_subscription_data``,\noptionally synthetic events and an async ``task_signup_provisioning`` run.\n\nRequires Stripe test credentials and signup plan config that match ``selected_plan_id`` so\nprovisioning can call Stripe (e.g. ``Price.retrieve``, ``upsert_plan_from_strip_subscription``).","operationId":"seed_signup_provisioning_api_v1_admin_load_test_signup_provisioning_seed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSignupProvisioningFixtureRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSignupProvisioningFixtureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/admin/load-test/signup-provisioning/status":{"get":{"tags":["Super Admin APIs","load-testing"],"summary":"Get Signup Provisioning Status","description":"Resolve a signup by **exactly one** of ``session_id`` or ``email`` and return status plus\na compact provisioning timeline derived from events and step rows.\n\nCelery retry counts are not stored on the signup; use admin retry events and\n``/load-test/task-status/{task_id}`` when you enqueue with a returned task id.","operationId":"get_signup_provisioning_status_api_v1_admin_load_test_signup_provisioning_status_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},{"name":"include_events","in":"query","required":false,"schema":{"type":"boolean","description":"Include full pending_signup_events list","default":false,"title":"Include Events"},"description":"Include full pending_signup_events list"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTestSignupProvisioningStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/maintenance":{"put":{"tags":["Super Admin APIs","maintenance"],"summary":"Set Platform Maintenance Mode","description":"Enable or disable platform maintenance mode.\n\nWhen enabled, power-ui shows the maintenance screen to all visitors.\nRestricted to super admins only.","operationId":"set_platform_maintenance_mode_api_v1_admin_maintenance_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformMaintenanceModeUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformMaintenanceModeRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/portal/transcripts-upload/transcripts":{"get":{"tags":["Portal APIs","portal-transcripts-upload"],"summary":"List own submissions","description":"Return transcripts submitted by the current portal user.\n\nAdmin users see all transcripts; portal users see only their own.","operationId":"list_own_transcripts_api_v1_portal_transcripts_upload_transcripts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PortalTranscriptListItem"},"type":"array","title":"Response List Own Transcripts Api V1 Portal Transcripts Upload Transcripts Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["Portal APIs","portal-transcripts-upload"],"summary":"Upload a transcript draft","description":"Accept a .txt transcript upload from a portal user and create a Draft.","operationId":"upload_transcript_api_v1_portal_transcripts_upload_transcripts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalTranscriptUploadRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalTranscriptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/portal/transcripts-upload/entities":{"get":{"tags":["Portal APIs","portal-transcripts-upload"],"summary":"Search ontology entities","description":"Return ontology entities matching the search query (combobox data source).","operationId":"search_entities_api_v1_portal_transcripts_upload_entities_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","default":"","title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Search Entities Api V1 Portal Transcripts Upload Entities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/portal/transcripts-upload/regions":{"get":{"tags":["Portal APIs","portal-transcripts-upload"],"summary":"List valid regions","description":"Return the allowed region values for the upload form dropdown.","operationId":"list_regions_api_v1_portal_transcripts_upload_regions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response List Regions Api V1 Portal Transcripts Upload Regions Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/system/maintenance":{"get":{"tags":["System"],"summary":"Get Platform Maintenance Mode","description":"Return the current platform maintenance mode status.\n\nThis endpoint requires no authentication so that power-ui can check\nmaintenance state before any user session is established.","operationId":"get_platform_maintenance_mode_api_v1_system_maintenance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformMaintenanceModeRead"}}}}}}},"/api/v1/auth/suspension-status":{"get":{"tags":["User APIs","auth"],"summary":"Get Suspension Status","description":"Check if the current user's client is suspended.\n\nCall this on first app load so the frontend can show a suspended state\nwithout waiting for a 403 on other APIs. This endpoint is not blocked\nfor suspended users (unlike protected user APIs).","operationId":"get_suspension_status_api_v1_auth_suspension_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspensionStatusResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/auth/products/{product_id}/authorize":{"post":{"tags":["User APIs","auth"],"summary":"Authorize Product User","operationId":"authorize_product_user_api_v1_auth_products__product_id__authorize_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizeProductUserRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizedUser"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/authorize":{"post":{"tags":["User APIs","auth"],"summary":"Authorize","operationId":"authorize_api_v1_auth_authorize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizedUser"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]},{"Client Id":[]}]}},"/api/v1/auth/cookie/set":{"post":{"tags":["User APIs","auth"],"summary":"Set Auth Cookie","operationId":"set_auth_cookie_api_v1_auth_cookie_set_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/auth/cookie/clear":{"post":{"tags":["User APIs","auth"],"summary":"Clear Auth Cookie","operationId":"clear_auth_cookie_api_v1_auth_cookie_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/auth/signup/initiate":{"post":{"tags":["User APIs","auth"],"summary":"Initiate Signup","description":"Start a new signup session.\n\n- Validates password / plan / subscription_period at the schema layer\n- Rejects emails already registered as real users\n- Stages an Okta user (activate=false) so Okta's password-policy checks\n  surface synchronously\n- Creates a PendingSignup in DRAFT with the staged okta_user_id, issues a\n  verification code, sends the verification email, and transitions to\n  EMAIL_VERIFICATION_IN_PROGRESS.","operationId":"initiate_signup_api_v1_auth_signup_initiate_post","parameters":[{"name":"x-captcha-token","in":"header","required":true,"schema":{"type":"string","title":"X-Captcha-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInitiateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInitiateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/signup/{session_id}/email-verification/verify":{"post":{"tags":["User APIs","auth"],"summary":"Verify Email Code","description":"Verify an email verification code submitted by the user in the onboarding UI.\nOn success transitions the signup to EMAIL_VERIFICATION_VERIFIED so payment\ncan begin.","operationId":"verify_email_code_api_v1_auth_signup__session_id__email_verification_verify_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailVerificationVerifyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailVerificationVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/signup/{session_id}/email-verification/resend":{"post":{"tags":["User APIs","auth"],"summary":"Resend Email Verification","description":"Generate a fresh code and re-send the verification email.","operationId":"resend_email_verification_api_v1_auth_signup__session_id__email_verification_resend_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailVerificationResendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/signup/{session_id}/checkout/create":{"post":{"tags":["User APIs","auth"],"summary":"Create Checkout Session","description":"Create Stripe Checkout session.\n\nValidates:\n- Status is EMAIL_VERIFICATION_VERIFIED or PAYMENT_FAILED (allows retry)\n- Creates Stripe Checkout session for subscription","operationId":"create_checkout_session_api_v1_auth_signup__session_id__checkout_create_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CheckoutInitiateData"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCheckoutCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/signup/{session_id}/billing-portal":{"post":{"tags":["User APIs","auth"],"summary":"Create Signup Billing Portal","description":"Create a Stripe Billing Portal session for a signup in payment_failed state.\nThe frontend should pass return_url that includes the signup session_id so\nwhen the user returns from the portal they can poll GET /signup/{session_id}/status.","operationId":"create_signup_billing_portal_api_v1_auth_signup__session_id__billing_portal_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupBillingPortalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupBillingPortalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/signup/{session_id}/status":{"get":{"tags":["User APIs","auth"],"summary":"Get Signup Status","description":"Get signup status by session_id.\n\nOptimized for long polling - uses minimal database query\n\nReturns 404 if signup not found.","operationId":"get_signup_status_api_v1_auth_signup__session_id__status_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/signup/{session_id}/is-complete":{"get":{"tags":["User APIs","auth"],"summary":"Is Signup Complete","description":"Check if signup is complete by checking if a signup_completed event exists.","operationId":"is_signup_complete_api_v1_auth_signup__session_id__is_complete_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/me/customer-portal":{"get":{"tags":["User APIs","payments"],"summary":"Get Customer Portal Url","operationId":"get_customer_portal_url_api_v1_payments_me_customer_portal_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"enum":["payment_method_update","subscription_cancel","subscription_update","billing_update"],"type":"string","description":"Type of customer portal session","title":"Type"},"description":"Type of customer portal session"},{"name":"return_url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to redirect to after the customer portal session","title":"Return Url"},"description":"URL to redirect to after the customer portal session"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerPortalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/plans/available":{"get":{"tags":["User APIs","payments"],"summary":"Get Available Plans","description":"Return plan tiers available for subscription / reactivation.","operationId":"get_available_plans_api_v1_payments_plans_available_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailablePlansResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/payments/me/reactivate":{"post":{"tags":["User APIs","payments"],"summary":"Reactivate Subscription","description":"Create a Stripe Checkout Session for subscription reactivation.\n\nThe user picks a plan tier and billing period; this endpoint resolves the\nStripe price, creates a hosted Checkout Session (pre-filling saved payment\nmethods when possible), and returns the redirect URL.","operationId":"reactivate_subscription_api_v1_payments_me_reactivate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivationCheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/legal/tou/latest":{"get":{"tags":["User APIs","Legal"],"summary":"Get Latest Tou","description":"Get the latest published TOU version. Returns null if no TOU exists.","operationId":"get_latest_tou_api_v1_legal_tou_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LatestSignupTOUVersionResponse"},{"type":"null"}],"title":"Response Get Latest Tou Api V1 Legal Tou Latest Get"}}}}}}},"/api/v1/legal/tou/accept":{"post":{"tags":["User APIs","Legal"],"summary":"Accept Tou","description":"Accept a specific TOU version. Creates or updates the user's acceptance record.","operationId":"accept_tou_api_v1_legal_tou_accept_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupTOUAcceptanceRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/legal/tou/report-load-failure":{"post":{"tags":["User APIs","Legal"],"summary":"Report Tou Load Failure","operationId":"report_tou_load_failure_api_v1_legal_tou_report_load_failure_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/legal/privacy-policy/latest":{"get":{"tags":["User APIs","Legal"],"summary":"Get Latest Privacy Policy","description":"Get the latest published privacy policy version. Returns null if none exists.","operationId":"get_latest_privacy_policy_api_v1_legal_privacy_policy_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LatestPrivacyPolicyVersionResponse"},{"type":"null"}],"title":"Response Get Latest Privacy Policy Api V1 Legal Privacy Policy Latest Get"}}}}}}},"/api/v1/featured/featured-items":{"get":{"tags":["User APIs","featured"],"summary":"Get Featured Items","description":"Get IDs of all active featured entities and insights for user portal","operationId":"get_featured_items_api_v1_featured_featured_items_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedItemsResponse"}}}}}}},"/api/v1/featured/entities":{"get":{"tags":["User APIs","featured"],"summary":"Get Featured Entities","description":"Get all featured entities for user portal","operationId":"get_featured_entities_api_v1_featured_entities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FeaturedEntityRead"},"type":"array","title":"Response Get Featured Entities Api V1 Featured Entities Get"}}}}}}},"/api/v1/featured/insights":{"get":{"tags":["User APIs","featured"],"summary":"Get Featured Insights","description":"Get all featured insights for user portal","operationId":"get_featured_insights_api_v1_featured_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"integer"},"type":"array","title":"Response Get Featured Insights Api V1 Featured Insights Get"}}}}}}},"/api/v1/tags":{"get":{"tags":["User APIs","tags"],"summary":"Get Tags","operationId":"get_tags_api_v1_tags_get","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","description":"Filter by type","title":"Type"},"description":"Filter by type"},{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Filter by category","title":"Category"},"description":"Filter by category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mcp/me/m2m/client-info":{"get":{"tags":["User APIs","mcp"],"summary":"Get Client Info","description":"Get the user info for a given product. This API is used for API token validation in products like Platform, MCP, etc.\nUser info includes feature flags, providers access, unmetered providers, role with permissions, and features.","operationId":"get_client_info_api_v1_mcp_me_m2m_client_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInfoResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/me/profile":{"get":{"tags":["User APIs","users"],"summary":"Get User Profile","operationId":"get_user_profile_api_v1_users_me_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/me/products/{product_id}/feature-access":{"get":{"tags":["User APIs","users"],"summary":"Get User Features Access","operationId":"get_user_features_access_api_v1_users_me_products__product_id__feature_access_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Get User Features Access Api V1 Users Me Products  Product Id  Feature Access Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/features/{feature_key}/element-access":{"get":{"tags":["User APIs","users"],"summary":"Get User Feature Elements Access","operationId":"get_user_feature_elements_access_api_v1_users_me_features__feature_key__element_access_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_key","in":"path","required":true,"schema":{"type":"string","title":"Feature Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response Get User Feature Elements Access Api V1 Users Me Features  Feature Key  Element Access Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/provider-accesses":{"get":{"tags":["User APIs","users"],"summary":"Get User Provider Accesses","operationId":"get_user_provider_accesses_api_v1_users_me_provider_accesses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get User Provider Accesses Api V1 Users Me Provider Accesses Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/me/track-action":{"post":{"tags":["User APIs","users"],"summary":"Track User Action","operationId":"track_user_action_api_v1_users_me_track_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserActionLogCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/me/products/{product_id}/team":{"get":{"tags":["User APIs","users"],"summary":"Get User Team","operationId":"get_user_team_api_v1_users_me_products__product_id__team_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/products/{product_id}/user-info":{"get":{"tags":["User APIs","users"],"summary":"Get User Info","description":"Get the user info for a given product. This API is used for API token validation in products like Platform, MCP, etc.\nUser info includes feature flags, providers access, unmetered providers, role with permissions, and features.","operationId":"get_user_info_api_v1_users_me_products__product_id__user_info_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/products/{product_id}/user-info-from-id-token":{"get":{"tags":["User APIs","users"],"summary":"Get User Info From Id Token Endpoint","description":"Get the user info for a given product using an Okta ID token.\n\nThis endpoint is designed for OpenBB workspace integration where the ID token\nis passed in the Authorization Bearer header.\n\nArgs:\n    product_id: The product UUID\n    Authorization: Bearer {id_token} header (handled by get_user_from_id_token dependency)\n\nReturns:\n    UserInfoResponse with full user details including feature flags, permissions, etc.","operationId":"get_user_info_from_id_token_endpoint_api_v1_users_me_products__product_id__user_info_from_id_token_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/self/client/users-from-id-token":{"get":{"tags":["User APIs","users"],"summary":"Get Client Users From Id Token","description":"Return paginated users for the caller's client, authenticated via Okta ID token.\n\nAccepts the Okta ID token in the Authorization Bearer header, allowing\nintegrations such as OpenBB workspace widgets to retrieve team members\nwithout requiring a regular API key / Bearer token.\n\nNote: require_permissions cannot be used here as a route dependency because\nit internally calls get_user_from_token (regular JWT Bearer), which rejects\nOkta ID tokens. The same permission gate is applied inline instead.","operationId":"get_client_users_from_id_token_api_v1_users_self_client_users_from_id_token_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedUsersRoleOnlyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/self/info":{"patch":{"tags":["User APIs","users"],"summary":"Update User Info","operationId":"update_user_info_api_v1_users_self_info_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserInfo"}}},"required":true},"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"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/data-collection-consent":{"patch":{"tags":["User APIs","users"],"summary":"Update Data Collection Consent","operationId":"update_data_collection_consent_api_v1_users_self_data_collection_consent_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataCollectionConsent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataCollectionConsentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/sample-catalog-disclaimer/accept":{"post":{"tags":["User APIs","users"],"summary":"Accept Sample Catalog Disclaimer","operationId":"accept_sample_catalog_disclaimer_api_v1_users_self_sample_catalog_disclaimer_accept_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleCatalogDisclaimerResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/marketing-preferences":{"get":{"tags":["User APIs","users"],"summary":"Get Marketing Preferences","operationId":"get_marketing_preferences_api_v1_users_self_marketing_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingPreferencesRead"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"put":{"tags":["User APIs","users"],"summary":"Update Marketing Preferences","operationId":"update_marketing_preferences_api_v1_users_self_marketing_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingPreferencesUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingPreferencesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/role":{"get":{"tags":["User APIs","users"],"summary":"Get User Role","operationId":"get_user_role_api_v1_users_self_role_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get User Role Api V1 Users Self Role Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/role-from-id-token":{"get":{"tags":["User APIs","users"],"summary":"Get User Role From Id Token","description":"Return the role for the authenticated user using an Okta ID token.\n\nAccepts the Okta ID token in the Authorization Bearer header.  Mirrors\n/self/role but uses the Okta ID token issuer so that integrations such\nas OpenBB workspace widgets can check the caller's role without a\nregular API Bearer token.\n\nNote: require_permissions cannot be used here as a route dependency\nbecause it internally calls get_user_from_token (regular JWT Bearer),\nwhich rejects Okta ID tokens.  The role response is inherently tied to\nthe authenticated user, so no additional permission gate is needed.","operationId":"get_user_role_from_id_token_api_v1_users_self_role_from_id_token_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get User Role From Id Token Api V1 Users Self Role From Id Token Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/{user_id}/role":{"put":{"tags":["User APIs","users"],"summary":"Update User Role","operationId":"update_user_role_api_v1_users__user_id__role_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/block-role":{"put":{"tags":["User APIs","users"],"summary":"Update User Block Role","description":"Set or clear the additive Block role (block_user / block_admin) on\na user. ``block_role = null`` unsets it. The enum type on the DB\ncolumn rejects any value outside the two valid enum members, so no\nextra application-level validation is needed.","operationId":"update_user_block_role_api_v1_users__user_id__block_role_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBlockRoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/self/interests":{"get":{"tags":["User APIs","users"],"summary":"Get User Interests","operationId":"get_user_interests_api_v1_users_self_interests_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserInterestRead"},"type":"array","title":"Response Get User Interests Api V1 Users Self Interests Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"patch":{"tags":["User APIs","users"],"summary":"Update User Interests","operationId":"update_user_interests_api_v1_users_self_interests_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterestsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/api-tokens/regenerate":{"post":{"tags":["User APIs","users"],"summary":"Regenerate User Api Tokens","operationId":"regenerate_user_api_tokens_api_v1_users_self_api_tokens_regenerate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/reset-password":{"post":{"tags":["User APIs","users"],"summary":"Reset My Password","description":"Trigger a password reset email for the currently authenticated user.\nRate-limited to prevent abuse.","operationId":"reset_my_password_api_v1_users_self_reset_password_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/me/reset-password":{"post":{"tags":["User APIs","users"],"summary":"Reset My Password","description":"Trigger a password reset email for the currently authenticated user.\nRate-limited to prevent abuse.","operationId":"reset_my_password_api_v1_users_me_reset_password_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/{user_id}/transaction-limit/{transaction_limit}":{"patch":{"tags":["User APIs","users"],"summary":"Update User Transaction Limit","description":"Update user transaction limit","operationId":"update_user_transaction_limit_api_v1_users__user_id__transaction_limit__transaction_limit__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"transaction_limit","in":"path","required":true,"schema":{"type":"string","title":"Transaction Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/total-consumption-limit/{allocated_amount}":{"patch":{"tags":["User APIs","users"],"summary":"Update User Allocated Amount","description":"Update user wallet allocation","operationId":"update_user_allocated_amount_api_v1_users__user_id__total_consumption_limit__allocated_amount__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"allocated_amount","in":"path","required":true,"schema":{"type":"string","title":"Allocated Amount"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/mcp-daily-limit/{mcp_daily_limit}":{"patch":{"tags":["User APIs","users"],"summary":"Update User Mcp Daily Limit","description":"Update user MCP daily token limit.\n\nAccepts a float value or the string \"null\" to remove the limit.\nThe new limit cannot exceed the group's mcp_period_limit if one is set.","operationId":"update_user_mcp_daily_limit_api_v1_users__user_id__mcp_daily_limit__mcp_daily_limit__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"mcp_daily_limit","in":"path","required":true,"schema":{"type":"string","title":"Mcp Daily Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/bulk/mcp-daily-limit":{"post":{"tags":["User APIs","users"],"summary":"Bulk Update Mcp Daily Limit","description":"Bulk-set the MCP daily limit for multiple users.\n\nSkips users whose new limit would exceed their group's mcp_period_limit.\nReturns a summary with updated count and skipped users with reasons.","operationId":"bulk_update_mcp_daily_limit_api_v1_users_bulk_mcp_daily_limit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkMcpDailyLimitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/{user_id}/consumption/reset":{"post":{"tags":["User APIs","users"],"summary":"Reset User Consumption","description":"Close the user's ongoing consumption cycle and open a new one (reset to 0).","operationId":"reset_user_consumption_api_v1_users__user_id__consumption_reset_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/consumption/cycles":{"get":{"tags":["User APIs","users"],"summary":"Get User Consumption Cycles","description":"Return all consumption reset cycles for a user, newest first.","operationId":"get_user_consumption_cycles_api_v1_users__user_id__consumption_cycles_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumptionCyclesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/group/{group_id}":{"patch":{"tags":["User APIs","users"],"summary":"Update User Group","description":"Update user group","operationId":"update_user_group_api_v1_users__user_id__group__group_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/self/onboarding/{status}":{"patch":{"tags":["User APIs","users"],"summary":"Update User Onboarding","description":"Update user onboarding status","operationId":"update_user_onboarding_api_v1_users_self_onboarding__status__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"status","in":"path","required":true,"schema":{"enum":["started","completed"],"type":"string","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/self/client/feature-flags/{feature_flag_name}":{"patch":{"tags":["User APIs","users"],"summary":"Update Self Client Feature Flag","description":"Update a feature flag for the current user's client.\nCurrently only supports 'enable_signal_sharing'.","operationId":"update_self_client_feature_flag_api_v1_users_self_client_feature_flags__feature_flag_name__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"feature_flag_name","in":"path","required":true,"schema":{"type":"string","title":"Feature Flag Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFeatureFlagResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/self/profile":{"patch":{"tags":["User APIs","users"],"summary":"Update User Profile","operationId":"update_user_profile_api_v1_users_self_profile_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/add-user":{"post":{"tags":["User APIs","users"],"summary":"Add User","operationId":"add_user_api_v1_users_self_add_user_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddUser"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/users/self/add-users":{"post":{"tags":["User APIs","users"],"summary":"Add Users","description":"Add multiple users to the team","operationId":"add_users_api_v1_users_self_add_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAddUsers"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/self/users":{"get":{"tags":["User APIs","clients"],"summary":"Get Client Users","operationId":"get_client_users_api_v1_clients_self_users_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":10000,"title":"Size"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(asc|desc)$"},{"type":"null"}],"default":"desc","title":"Sort Order"}},{"name":"filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"{}","title":"Filters"}},{"name":"pre_load","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":["role","client","group","current_consumption"],"title":"Pre Load"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/self/users/{user_id}":{"put":{"tags":["User APIs","clients"],"summary":"Update User","operationId":"update_user_api_v1_clients_self_users__user_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserActiveUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfoWithRoleStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/self/users/{user_id}/deactivate":{"put":{"tags":["User APIs","clients"],"summary":"Deactivate User","operationId":"deactivate_user_api_v1_clients_self_users__user_id__deactivate_put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserActiveUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfoWithRoleStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/self/delta-sharing":{"get":{"tags":["User APIs","clients"],"summary":"Get Delta Sharing","operationId":"get_delta_sharing_api_v1_clients_self_delta_sharing_get","responses":{"200":{"description":"Json file","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/self/provider-accesses":{"get":{"tags":["User APIs","clients"],"summary":"Get Client Provider Accesses","operationId":"get_client_provider_accesses_api_v1_clients_self_provider_accesses_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":10,"title":"Size"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(asc|desc)$"},{"type":"null"}],"default":"desc","title":"Sort Order"}},{"name":"filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"{}","title":"Filters"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedClientProviderAccess"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/self/provider-accesses/{provider_id}":{"put":{"tags":["User APIs","clients"],"summary":"Update Client Provider Access","operationId":"update_client_provider_access_api_v1_clients_self_provider_accesses__provider_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProviderAccessUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/clients/self/day-lag":{"get":{"tags":["User APIs","clients"],"summary":"Get Client Day Lag","operationId":"get_client_day_lag_api_v1_clients_self_day_lag_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["User APIs","clients"],"summary":"Update Client Day Lag","operationId":"update_client_day_lag_api_v1_clients_self_day_lag_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientProviderDayLagUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/self/row-limit":{"get":{"tags":["User APIs","clients"],"summary":"Get Row Limit","operationId":"get_row_limit_api_v1_clients_self_row_limit_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowLimitResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/unmetered-sources":{"get":{"tags":["User APIs","clients"],"summary":"Get Client Unmetered Sources","operationId":"get_client_unmetered_sources_api_v1_clients_unmetered_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Client Unmetered Sources Api V1 Clients Unmetered Sources Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/self/invoices":{"get":{"tags":["User APIs","clients"],"summary":"Get Client Invoices","description":"Get all Stripe invoices for the authenticated client.\nReturns invoice details including status, amount, token information, and payment URLs.\n\nThis endpoint uses StripeInvoiceService to retrieve invoices from the database\nthat were created through the Stripe payment gateway.","operationId":"get_client_invoices_api_v1_clients_self_invoices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoicesResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/self/recurring-token-grant-schedules":{"get":{"tags":["User APIs","clients"],"summary":"Get Recurring Token Grant Schedules","operationId":"get_recurring_token_grant_schedules_api_v1_clients_self_recurring_token_grant_schedules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RecurringGrantScheduleResponse"},"type":"array","title":"Response Get Recurring Token Grant Schedules Api V1 Clients Self Recurring Token Grant Schedules Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/clients/self/scheduled-transactions":{"get":{"tags":["User APIs","clients"],"summary":"Get Scheduled Transactions","description":"Get scheduled transactions for the authenticated client.\n\nIncludes recurring token grant schedules and one-time future-effective grants.","operationId":"get_scheduled_transactions_api_v1_clients_self_scheduled_transactions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ScheduledTransactionResponse"},"type":"array","title":"Response Get Scheduled Transactions Api V1 Clients Self Scheduled Transactions Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/roles":{"get":{"tags":["User APIs","roles"],"summary":"Get Roles","operationId":"get_roles_api_v1_roles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RolePreview"},"type":"array","title":"Response Get Roles Api V1 Roles Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/groups/groups-by-client":{"get":{"tags":["User APIs","groups"],"summary":"Get Client Groups","description":"Get client groups with pagination, sorting and filtering.\n\nOmit ``size`` to return all groups without pagination.","operationId":"get_client_groups_api_v1_groups_groups_by_client_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"{}","title":"Filters"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Size"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(asc|desc)$"},{"type":"null"}],"default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedGroupsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}":{"get":{"tags":["User APIs","groups"],"summary":"Get Group","description":"Get a single group with full computed MCP fields (consumption, next reset date).","operationId":"get_group_api_v1_groups__group_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["User APIs","groups"],"summary":"Delete Group","description":"Delete a group\n\nNote:\n- Default groups cannot be deleted to prevent issues with new user assignments.\n  If you need to delete a default group, first set another group as default.\n- Groups with users assigned cannot be deleted. Please reassign or remove all users first.","operationId":"delete_group_api_v1_groups__group_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/set-default":{"patch":{"tags":["User APIs","groups"],"summary":"Set Default Group","description":"Set group as default","operationId":"set_default_group_api_v1_groups__group_id__set_default_patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/transaction-limit/{transaction_limit}":{"patch":{"tags":["User APIs","groups"],"summary":"Update Group Transaction Limit","description":"Update group transaction limit","operationId":"update_group_transaction_limit_api_v1_groups__group_id__transaction_limit__transaction_limit__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}},{"name":"transaction_limit","in":"path","required":true,"schema":{"type":"string","title":"Transaction Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/allocated-amount/{allocated_amount}":{"patch":{"tags":["User APIs","groups"],"summary":"Update Group Allocated Amount","description":"Update group wallet allocation","operationId":"update_group_allocated_amount_api_v1_groups__group_id__allocated_amount__allocated_amount__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}},{"name":"allocated_amount","in":"path","required":true,"schema":{"type":"string","title":"Allocated Amount"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/mcp-period-limit/{mcp_period_limit}":{"patch":{"tags":["User APIs","groups"],"summary":"Update Group Mcp Period Limit","description":"Update group MCP collective period limit.\n\nAccepts a float value or \"null\" to remove the limit.\n\nCycle rules:\n- First time a limit is set: mcp_period_start_date = now, mcp_period_reset_date = now + 30 days.\n- Updating an existing limit: preserves cycle dates (no restart).\n- Removing the limit (\"null\"): clears both cycle dates.","operationId":"update_group_mcp_period_limit_api_v1_groups__group_id__mcp_period_limit__mcp_period_limit__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}},{"name":"mcp_period_limit","in":"path","required":true,"schema":{"type":"string","title":"Mcp Period Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/":{"post":{"tags":["User APIs","groups"],"summary":"Create Group","description":"Create new group","operationId":"create_group_api_v1_groups__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/groups/{group_id}/block-role":{"patch":{"tags":["User APIs","groups"],"summary":"Update Group Block Role","description":"Set or clear a group's additive Block role (block_user / block_admin).\n\nReuses the ``UserBlockRoleUpdate`` schema because the shape is\nidentical — both set ``block_role`` on their entity. The Postgres enum\nrejects unknown values, so no extra validation is needed.","operationId":"update_group_block_role_api_v1_groups__group_id__block_role_patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBlockRoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/me/balance":{"get":{"tags":["User APIs","payments"],"summary":"Get Client Balance","description":"Get client balance with wallet details (from ledger).","operationId":"get_client_balance_api_v1_payments_me_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBalanceResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/payments/balance-summary":{"get":{"tags":["User APIs","payments"],"summary":"Get Expiry Schedule With Balance","description":"Get token expiry schedule (excluding MCP tokens) with balance summary (from ledger).","operationId":"get_expiry_schedule_with_balance_api_v1_payments_balance_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenExpiryScheduleWithBalanceResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/ledger/transactions/platform":{"get":{"tags":["User APIs","ledger-platform"],"summary":"List Platform Transactions","description":"List ledger transactions for the authenticated client — platform scope.\n\nExcludes rows with future effective_at (only currently effective transactions).","operationId":"list_platform_transactions_api_v1_ledger_transactions_platform_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of records to skip","default":0,"title":"Skip"},"description":"Number of records to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of records to return","default":100,"title":"Limit"},"description":"Number of records to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedCreditEventsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ledger/transactions/mcp":{"get":{"tags":["User APIs","ledger-platform"],"summary":"List Mcp Transactions","description":"List MCP integration ledger transactions for the authenticated client.","operationId":"list_mcp_transactions_api_v1_ledger_transactions_mcp_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of records to skip","default":0,"title":"Skip"},"description":"Number of records to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of records to return","default":100,"title":"Limit"},"description":"Number of records to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedCreditEventsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ledger/wallet-summary":{"get":{"tags":["User APIs","ledger-platform"],"summary":"Get Wallet Summary","description":"Get wallet summary for the authenticated client (ledger-native shape).","operationId":"get_wallet_summary_api_v1_ledger_wallet_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerWalletSummaryResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/ledger/mcp/daily-window":{"get":{"tags":["User APIs","ledger-platform"],"summary":"Get Mcp Daily Window","description":"MCP daily issuance cap, balance, and today's activity (MCP timezone window).","operationId":"get_mcp_daily_window_api_v1_ledger_mcp_daily_window_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpDailyWindowResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/purchases/token-grants":{"post":{"tags":["User APIs","purchases"],"summary":"Purchase Token Grants","description":"Create a token purchase for the client with comprehensive validation and error handling.\n\nThis endpoint provides a production-ready token purchase flow supporting:\n- Credit card payments via Stripe PaymentIntent\n- ACH payments via Stripe PaymentIntent\n- Invoice payments for eligible plans\n\nThe endpoint implements proper:\n- Input validation and sanitization\n- User permission checks\n- Business rule enforcement\n- Comprehensive error handling\n- Audit logging\n\nArgs:\n    request: Purchase request with token_amount, payment_method, and optional fields\n    user: Authenticated user making the request\n    token_purchase_service: Service handling the token purchase logic\n\nReturns:\n    Dict containing purchase details:\n    - payment_method: The payment method used\n    - payment_id: Internal payment tracking ID\n    - token_amount: Number of tokens purchased\n    - total_amount: Total cost in USD\n    - For Card/ACH: PaymentIntent with client_secret for frontend processing\n    - For Invoice: Invoice details with hosted_invoice_url\n\nRaises:\n    400: Invalid input parameters or business rule violations\n    401: User not authenticated\n    403: User lacks permission for this client\n    404: Client plan or tokens not found\n    422: Business logic violations\n    500: System errors\n    502: External service (Stripe) errors","operationId":"purchase_token_grants_api_v1_purchases_token_grants_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyTokensRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/subscriptions/plan":{"get":{"tags":["User APIs","subscriptions"],"summary":"Get User Plan","description":"Get all active subscription plans for the current user's client.\n\nReturns all subscriptions with active status (active/trialing/past_due).\nIf no active subscriptions exist, returns an empty list.\n\nAll data is sourced from:\n- StripeSubscription model columns\n- meta_data field (custom Stripe metadata)\n- raw field (full Stripe subscription object)\n- daily_token_limit column\n\nReturns:\n    List[ClientPlanDetails]: List of all active subscription plans for the client","operationId":"get_user_plan_api_v1_subscriptions_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientPlanDetails"},"type":"array","title":"Response Get User Plan Api V1 Subscriptions Plan Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/plans":{"get":{"tags":["User APIs","plans"],"summary":"Get User Plans","description":"Get all active subscription plans for the current user's client.\n\nReturns the active plan (status: active/trialing) with full details.\nIf the plan has a Stripe subscription, all Stripe subscription fields\nare included in the stripe_subscription field. If the plan doesn't have a Stripe subscription,\nthis should be beacuse it's an Enterprise plan.\n\nThis is the new version of the plans endpoint. The /subscriptions/plan\nendpoint is kept for backward compatibility.\n\nReturns:\n    PlanFullResponse: Active plan with full details","operationId":"get_user_plans_api_v1_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanFullResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/stripe-invoices/create":{"post":{"tags":["User APIs","stripe-invoices","stripe-invoices"],"summary":"Create Invoice","description":"Create a Stripe invoice for token purchase\n\nThis endpoint implements the complete invoice flow:\n1. Creates Stripe Invoice (open) with line item amount\n2. Metadata: client_id, user_id, token_amount\n3. Create local Payment record (status=PENDING, link to Invoice id)\n4. Optionally emails hosted invoice URL to customer's billing email\n\nThe token granting happens automatically via webhook when the invoice is paid.","operationId":"create_invoice_api_v1_stripe_invoices_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/stripe-invoices/customers/invoices":{"get":{"tags":["User APIs","stripe-invoices","stripe-invoices"],"summary":"Get Customer Invoices","operationId":"get_customer_invoices_api_v1_stripe_invoices_customers_invoices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeCustomerInvoiceListResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/stripe-invoices/failed":{"get":{"tags":["User APIs","stripe-invoices","stripe-invoices"],"summary":"Get Failed Invoices","description":"Get all failed invoices for the user","operationId":"get_failed_invoices_api_v1_stripe_invoices_failed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Failed Invoices Api V1 Stripe Invoices Failed Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/stripe-invoices/{invoice_id}":{"get":{"tags":["User APIs","stripe-invoices","stripe-invoices"],"summary":"Get Invoice","description":"Get invoice details by ID","operationId":"get_invoice_api_v1_stripe_invoices__invoice_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Invoice Api V1 Stripe Invoices  Invoice Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stripe-invoices/{invoice_id}/send-email":{"post":{"tags":["User APIs","stripe-invoices","stripe-invoices"],"summary":"Send Invoice Email","description":"Send an existing invoice via email to the customer's billing email\n\nThis uses Stripe's send_invoice API to email the hosted invoice URL\nto the customer's billing email address.","operationId":"send_invoice_email_api_v1_stripe_invoices__invoice_id__send_email_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Send Invoice Email Api V1 Stripe Invoices  Invoice Id  Send Email Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stripe-invoices/{invoice_id}/retry-payment":{"post":{"tags":["User APIs","stripe-invoices","stripe-invoices"],"summary":"Retry Failed Payment","description":"Retry a failed invoice payment by creating a new payment intent\n\nThis endpoint allows users to retry payment for a failed invoice.\nIt creates a new payment intent for the same amount and tokens.","operationId":"retry_failed_payment_api_v1_stripe_invoices__invoice_id__retry_payment_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Retry Failed Payment Api V1 Stripe Invoices  Invoice Id  Retry Payment Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/builder-favorites":{"get":{"tags":["User APIs","builder-favorites"],"summary":"Get User Builder Favorites","description":"Get all builder favorites for the current user","operationId":"get_user_builder_favorites_api_v1_builder_favorites_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBuilderFiltersFavoritesReadList"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["User APIs","builder-favorites"],"summary":"Create Builder Favorite","description":"Create a new builder favorite","operationId":"create_builder_favorite_api_v1_builder_favorites_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBuilderFiltersFavoritesCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBuilderFiltersFavoritesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/builder-favorites/{favorite_id}":{"put":{"tags":["User APIs","builder-favorites"],"summary":"Update Builder Favorite","description":"Update an existing builder favorite","operationId":"update_builder_favorite_api_v1_builder_favorites__favorite_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"favorite_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Favorite Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBuilderFiltersFavoritesUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBuilderFiltersFavoritesRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["User APIs","builder-favorites"],"summary":"Delete Builder Favorite","description":"Delete a builder favorite","operationId":"delete_builder_favorite_api_v1_builder_favorites__favorite_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"favorite_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Favorite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tickers":{"get":{"tags":["User APIs","tickers"],"summary":"Get Tickers","description":"Get active tickers for authenticated users based on client assignments.\n\nAuthenticated users see tickers assigned to their client OR tickers with no assignments.","operationId":"get_tickers_api_v1_tickers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PublicTickerResponse"},"type":"array","title":"Response Get Tickers Api V1 Tickers Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/cart-status":{"post":{"tags":["User APIs","cart-status"],"summary":"Create Cart Status","description":"Create a new cart status record for abandoned framework configuration.\n\nThe user_email and client_id are automatically populated from the authenticated user's session.\nThe status defaults to 'abandoned' if not provided.","operationId":"create_cart_status_api_v1_cart_status_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartStatusCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Cart Status Api V1 Cart Status Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/cart-status/{id}":{"put":{"tags":["User APIs","cart-status"],"summary":"Update Cart Status","description":"Update price and/or status for a cart status record.","operationId":"update_cart_status_api_v1_cart_status__id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartStatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartStatusRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notifications":{"get":{"tags":["User APIs","notifications"],"summary":"Get Notifications","description":"Get notifications for the current user.\n\n- **status**: Filter by notification status (unread, read, archived)\n- **limit**: Maximum number of notifications to return (default: 50)\n- **offset**: Number of notifications to skip for pagination (default: 0)","operationId":"get_notifications_api_v1_notifications_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/NotificationStatus"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of notifications to return","default":50,"title":"Limit"},"description":"Maximum number of notifications to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of notifications to skip for pagination","default":0,"title":"Offset"},"description":"Number of notifications to skip for pagination"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notifications/unread-count":{"get":{"tags":["User APIs","notifications"],"summary":"Get Unread Count","description":"Get the count of unread notifications for the current user.","operationId":"get_unread_count_api_v1_notifications_unread_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Unread Count Api V1 Notifications Unread Count Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/notifications/{notification_id}":{"get":{"tags":["User APIs","notifications"],"summary":"Get Notification","description":"Get a specific notification by ID.","operationId":"get_notification_api_v1_notifications__notification_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["User APIs","notifications"],"summary":"Update Notification Status","description":"Update the status of a notification.\n\n- **notification_id**: The ID of the notification to update\n- **status**: The new status (read or archived)","operationId":"update_notification_status_api_v1_notifications__notification_id__patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notifications/{notification_id}/read":{"post":{"tags":["User APIs","notifications"],"summary":"Mark Notification As Read","description":"Mark a notification as read.","operationId":"mark_notification_as_read_api_v1_notifications__notification_id__read_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notifications/{notification_id}/archive":{"post":{"tags":["User APIs","notifications"],"summary":"Archive Notification","description":"Archive a notification.","operationId":"archive_notification_api_v1_notifications__notification_id__archive_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/datasets":{"get":{"tags":["User APIs","block-data"],"summary":"List Block Datasets","description":"Customer-facing Block catalog. Source of truth is the CAMS\n``block_pricing`` table for prices + neo4j ``TearSheet`` for\nlabel/description/use-cases. One entry per ``dataset_id`` with the\ncuts that have an active priced row; each cut surfaces the offered\naccess type's annual price and the lag list filtered against the\ncaller's ``block_client_dataset_restriction`` entries.\n\nRequires a Block role — browsing the catalog is itself a Block\nfeature. The power-ui Block experience is already gated client-side\nby the same condition (``hasAnyBlockAccess``); this guard closes the\nsame hole for API-key / SDK callers that bypass the frontend.","operationId":"list_block_datasets_api_v1_block_datasets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Block Datasets Api V1 Block Datasets Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/datasets/{dataset_id}/compliance-tear-sheet":{"get":{"tags":["User APIs","block-data"],"summary":"Download Compliance Tear Sheet","description":"Stream the legal & compliance tear-sheet PDF for a dataset.\n\nOpen to any Block-role user — the sheets aren't sensitive, and the\ncatalog response advertises their availability to every (Block-role)\ncaller. The Content-Disposition uses the user-facing dataset_id\nrather than the on-disk filename so the internal numbering never\nleaks. Successful downloads are recorded to the ``block.audit`` logger.","operationId":"download_compliance_tear_sheet_api_v1_block_datasets__dataset_id__compliance_tear_sheet_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/credentials":{"get":{"tags":["User APIs","block-data"],"summary":"Get Block Query Engine Credentials","description":"Per-client Polaris credentials for the \"Connect Your Query Engine\" modal.\n\nLazy-mints when the client has no Polaris credentials yet — the SQL\neditor calls this on load, before a Block request has ever run the\nprovisioning step. Eligibility (Enterprise plan + Block role) is\nalready enforced above, so a missing-creds call here is a legitimate\nfirst-time mint, not a leaked admin path.","operationId":"get_block_query_engine_credentials_api_v1_block_credentials_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockQueryEngineCredentials"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/polaris/rotate-credentials":{"post":{"tags":["User APIs","block-data"],"summary":"Rotate Block Polaris Credentials","description":"Rotate the caller's Polaris client credentials.\n\nMints a fresh client_id/secret for the client's existing Polaris\nprincipal, persists it (the secret lands in the encrypted column), and\nreturns the new pair. The previous credentials are invalidated\nserver-side, so this is the caller's only chance to capture the new\nsecret. Exposed to the carbonarc SDK as\n``client.block.rotate_polaris_credentials``.\n\nGated like the \"Connect Your Query Engine\" credential read (Enterprise +\nany Block role). The rotation is stamped on the client row (attributed to\nthe caller) so it surfaces in the CAMS Client Management Block section.","operationId":"rotate_block_polaris_credentials_api_v1_block_polaris_rotate_credentials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRotatedCredentials"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/arns/sample":{"post":{"tags":["User APIs","block-data"],"summary":"Register Sample Arns","description":"Register sample-scoped IAM ARN(s) — grants access to ALL sample datasets\nthe client is entitled to (present + future). Enqueues a sample fan-out per\nnewly-active ARN.","operationId":"register_sample_arns_api_v1_block_arns_sample_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleArnRegisterBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArnRegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/arns/block":{"post":{"tags":["User APIs","block-data"],"summary":"Register Block Arns","description":"Register block-scoped IAM ARN(s) for exactly one resolved SKU bucket.\n422s if the (dataset_id, lag, cut) SKU has no bucket. Enqueues a\nsingle-bucket grant per newly-active ARN.","operationId":"register_block_arns_api_v1_block_arns_block_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockArnRegisterBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArnRegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/arns":{"get":{"tags":["User APIs","block-data"],"summary":"List Arns","description":"List the caller's active registered ARNs (both scopes).","operationId":"list_arns_api_v1_block_arns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArnListResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/arns/bucket-path":{"get":{"tags":["User APIs","block-data"],"summary":"Get Bucket Path","description":"The S3 bucket to surface in the \"you'll have access to <bucket>\" hint, or\nnull if none is provisioned yet. Bucket identity is not client-specific, so\nthis is gated only by Enterprise + Block role (not client-scoped).\n\n``catalog`` selects both the row to match and how: a dataset can have rows in\nboth catalogs, so it must be an explicit input rather than inferred.\n\n- Bulk flow (default, ``catalog=bulk``): exact SKU match on (dataset_id, lag,\n  cut) within the bulk catalog.\n- Sample flow (``catalog=sample``): sample access is lag-agnostic, so resolve\n  the dataset's sample bucket rather than an exact SKU.","operationId":"get_bucket_path_api_v1_block_arns_bucket_path_get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"query","required":true,"schema":{"type":"string","title":"Dataset Id"}},{"name":"lag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"}},{"name":"cut","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"}},{"name":"catalog","in":"query","required":false,"schema":{"type":"string","default":"bulk","title":"Catalog"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPathResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/arns/{arn_id}":{"delete":{"tags":["User APIs","block-data"],"summary":"Deregister Arn","description":"Deregister a registered ARN: soft-delete the row (status='revoked') and\nenqueue the matching S3 revoke. A sample ARN is stripped from every entitled\nsample bucket; a block ARN from its one resolved SKU bucket (mirrors how each\nwas granted). Unconditional — this is a deliberate client removal, not the\nlegacy-backfill restriction hook, so it is not gated by any enforcement flag.","operationId":"deregister_arn_api_v1_block_arns__arn_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"arn_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Arn Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Deregister Arn Api V1 Block Arns  Arn Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests":{"get":{"tags":["User APIs","block-data"],"summary":"List Block Requests","operationId":"list_block_requests_api_v1_block_requests_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestListResponse"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"post":{"tags":["User APIs","block-data"],"summary":"Create Block Request","operationId":"create_block_request_api_v1_block_requests_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/block-admins":{"get":{"tags":["User APIs","block-data"],"summary":"List Client Block Admins","description":"Return the names / emails of users in the caller's client who can\napprove Block Data requests as Block Admin — i.e. anyone with\n``block_role = Block Admin`` (which by migration / role-change hook\nalso covers Super Admin users).\n\nPowers the \"Your Block Admin(s)\" tooltip in power-ui's request modal.","operationId":"list_client_block_admins_api_v1_block_block_admins_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Client Block Admins Api V1 Block Block Admins Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/dataset-preapprovals":{"get":{"tags":["User APIs","block-data"],"summary":"List Dataset Preapprovals","description":"List dataset IDs preapproved for the caller's client.","operationId":"list_dataset_preapprovals_api_v1_block_dataset_preapprovals_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Dataset Preapprovals Api V1 Block Dataset Preapprovals Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/dataset-preapprovals/{dataset_id}":{"put":{"tags":["User APIs","block-data"],"summary":"Add Dataset Preapproval","description":"Mark a dataset as preapproved for the caller's client. Compliance\nAdmin only — preapproval bypasses the Legal & Compliance review step,\nso the lever belongs to compliance, not to Block Admins. Idempotent.","operationId":"add_dataset_preapproval_api_v1_block_dataset_preapprovals__dataset_id__put","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Dataset Preapproval Api V1 Block Dataset Preapprovals  Dataset Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["User APIs","block-data"],"summary":"Remove Dataset Preapproval","description":"Un-preapprove a dataset for the caller's client. Compliance Admin\nonly. Idempotent (no-op if the row doesn't exist).","operationId":"remove_dataset_preapproval_api_v1_block_dataset_preapprovals__dataset_id__delete","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Dataset Preapproval Api V1 Block Dataset Preapprovals  Dataset Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/compliance-admins":{"get":{"tags":["User APIs","block-data"],"summary":"List Client Compliance Admins","description":"Mirror of ``list_client_block_admins`` for Compliance Admins. Powers\nthe \"Your Compliance Admin(s)\" tooltip in power-ui.\n\nCompliance Admin is a PRIMARY role (``users.role_id``), not an additive\nblock role. Super Admin is NOT included here — the per-client compliance\nnotification path only fires to explicit Compliance Admins (matches\n``_list_compliance_admin_emails`` in block_notifications).","operationId":"list_client_compliance_admins_api_v1_block_compliance_admins_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Client Compliance Admins Api V1 Block Compliance Admins Get"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/block/requests/{request_id}":{"get":{"tags":["User APIs","block-data"],"summary":"Get Block Request","operationId":"get_block_request_api_v1_block_requests__request_id__get","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/cancel":{"post":{"tags":["User APIs","block-data"],"summary":"Cancel Block Request","description":"Direct cancellation — Block Admins only. Regular users must go\nthrough the two-step ``request-cancellation`` → admin-approve flow.","operationId":"cancel_block_request_api_v1_block_requests__request_id__cancel_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/recipients":{"patch":{"tags":["User APIs","block-data"],"summary":"Update Block Request Recipients","description":"Replace ``additional_email_recipients`` on an existing request.\n\nAuth mirrors the cancellation-request endpoint: the requestor edits\ntheir own row, a Block Admin can edit anyone in the client. No status\ntransition — recipients are metadata on the row, so the state machine\nis bypassed and we just write through.","operationId":"update_block_request_recipients_api_v1_block_requests__request_id__recipients_patch","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRecipientsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/request-cancellation":{"post":{"tags":["User APIs","block-data"],"summary":"Request Block Request Cancellation","description":"User-initiated cancellation request. Any Block-role user can submit\na cancellation ask on their OWN request; a Block Admin must then\napprove or reject it via the two sibling endpoints.","operationId":"request_block_request_cancellation_api_v1_block_requests__request_id__request_cancellation_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockCancellationRequestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/approve-cancellation":{"post":{"tags":["User APIs","block-data"],"summary":"Approve Block Request Cancellation","description":"Block Admin approves a pending cancellation request — kicks off the\nterminal transition via the shared ``cancel()`` path.","operationId":"approve_block_request_cancellation_api_v1_block_requests__request_id__approve_cancellation_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/reject-cancellation":{"post":{"tags":["User APIs","block-data"],"summary":"Reject Block Request Cancellation","description":"Block Admin declines a pending cancellation request. ``reason`` is\nrequired so the requestor sees why.","operationId":"reject_block_request_cancellation_api_v1_block_requests__request_id__reject_cancellation_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockCancellationRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/approve":{"post":{"tags":["User APIs","block-data"],"summary":"Approve Block Request","description":"Client-side Block Admin approves a pending_block_admin request.\n\nRouting is driven by two per-client signals:\n  - ``clients.block_compliance`` (managed / notified / disabled)\n  - whether the dataset is preapproved for this client (``block_dataset_preapprovals``)\n\nManaged + NOT preapproved → ``pending_compliance``; otherwise →\n``pending_internal`` with ``internal_queue_step=accounts``.","operationId":"approve_block_request_api_v1_block_requests__request_id__approve_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/reject":{"post":{"tags":["User APIs","block-data"],"summary":"Reject Block Request","description":"Client-side Block Admin rejects a request.","operationId":"reject_block_request_api_v1_block_requests__request_id__reject_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/compliance-approve":{"post":{"tags":["User APIs","block-data"],"summary":"Compliance Approve Block Request","description":"Client-side Compliance Admin approves a pending_compliance request.","operationId":"compliance_approve_block_request_api_v1_block_requests__request_id__compliance_approve_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/requests/{request_id}/compliance-reject":{"post":{"tags":["User APIs","block-data"],"summary":"Compliance Reject Block Request","description":"Client-side Compliance Admin rejects a pending_compliance request.","operationId":"compliance_reject_block_request_api_v1_block_requests__request_id__compliance_reject_post","security":[{"OAuth2AuthorizationCodeBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockRequestCustomerRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/block/settings":{"get":{"tags":["User APIs","block-data"],"summary":"Get Block Settings","description":"Anyone with Block access can read their client's workflow settings (so\nthe UI can render the right approval flow preview).","operationId":"get_block_settings_api_v1_block_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockWorkflowSettingsRead"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]},"put":{"tags":["User APIs","block-data"],"summary":"Update Block Settings","description":"Only Block Admin (or Super Admin) can mutate workflow settings.","operationId":"update_block_settings_api_v1_block_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockWorkflowSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockWorkflowSettingsRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2AuthorizationCodeBearer":[]}]}},"/api/v1/okta/okta-sync-webhook":{"get":{"tags":["Okta Event Hook"],"summary":"Okta Event Hook Verify","operationId":"okta_event_hook_verify_api_v1_okta_okta_sync_webhook_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Okta Event Hook Verify Api V1 Okta Okta Sync Webhook Get"}}}}}},"post":{"tags":["Okta Event Hook"],"summary":"Okta Event Hook","operationId":"okta_event_hook_api_v1_okta_okta_sync_webhook_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OktaEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Okta Event Hook Api V1 Okta Okta Sync Webhook Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"Token":[]}]}},"/api/v1/integration/users/{user_email}/interests":{"get":{"tags":["Integration APIs"],"summary":"Get User Interests","operationId":"get_user_interests_api_v1_integration_users__user_email__interests_get","security":[{"API Key":[]}],"parameters":[{"name":"user_email","in":"path","required":true,"schema":{"type":"string","title":"User Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserInterestRead"},"title":"Response Get User Interests Api V1 Integration Users  User Email  Interests Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/users/{user_email}/provider-accesses":{"get":{"tags":["Integration APIs"],"summary":"Get User Provider Accesses","operationId":"get_user_provider_accesses_api_v1_integration_users__user_email__provider_accesses_get","security":[{"API Key":[]}],"parameters":[{"name":"user_email","in":"path","required":true,"schema":{"type":"string","title":"User Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Provider Accesses Api V1 Integration Users  User Email  Provider Accesses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/users/mcp/feature-flags":{"get":{"tags":["Integration APIs"],"summary":"Get User Or Client Feature Flags","operationId":"get_user_or_client_feature_flags_api_v1_integration_users_mcp_feature_flags_get","security":[{"API Key":[]}],"parameters":[{"name":"user_email","in":"query","required":false,"schema":{"type":"string","description":"User email","title":"User Email"},"description":"User email"},{"name":"client_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Client ID","title":"Client Id"},"description":"Client ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Or Client Feature Flags Api V1 Integration Users Mcp Feature Flags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/users/resolve-client-ids":{"post":{"tags":["Integration APIs"],"summary":"Resolve Client Ids","description":"Resolve client IDs for a list of user emails.","operationId":"resolve_client_ids_api_v1_integration_users_resolve_client_ids_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientResolutionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientResolutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/metering/ensure_sufficient":{"post":{"tags":["Integration APIs"],"summary":"Ensure Sufficient Metering","operationId":"ensure_sufficient_metering_api_v1_integration_metering_ensure_sufficient_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureSufficientRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ensure Sufficient Metering Api V1 Integration Metering Ensure Sufficient Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/metering/deduct_tokens":{"post":{"tags":["Integration APIs"],"summary":"Deduct Tokens","operationId":"deduct_tokens_api_v1_integration_metering_deduct_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeductTokensRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Deduct Tokens Api V1 Integration Metering Deduct Tokens Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/metering/mcp/balance":{"get":{"tags":["Integration APIs"],"summary":"Get Client Mcp Balance","operationId":"get_client_mcp_balance_api_v1_integration_metering_mcp_balance_get","security":[{"API Key":[]}],"parameters":[{"name":"client_id","in":"query","required":false,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"name":"user_id","in":"query","required":false,"schema":{"type":"string","description":"User ID","title":"User Id"},"description":"User ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Client Mcp Balance Api V1 Integration Metering Mcp Balance Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/metering/mcp/consume":{"post":{"tags":["Integration APIs"],"summary":"Consume Client Mcp Tokens","operationId":"consume_client_mcp_tokens_api_v1_integration_metering_mcp_consume_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumeMcpRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Consume Client Mcp Tokens Api V1 Integration Metering Mcp Consume Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/metering/marketplace_order":{"post":{"tags":["Integration APIs"],"summary":"Marketplace Order","operationId":"marketplace_order_api_v1_integration_metering_marketplace_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Marketplace Order Api V1 Integration Metering Marketplace Order Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/metering/mcp/check-admin-limits":{"get":{"tags":["Integration APIs"],"summary":"Check Mcp Admin Limits","description":"Check whether a user is blocked by their personal MCP daily limit or their\ngroup's MCP period limit.  Called by power-api before forwarding chat to the\nMCP service for power-ui (bypass_subscription) sessions.","operationId":"check_mcp_admin_limits_api_v1_integration_metering_mcp_check_admin_limits_get","security":[{"API Key":[]}],"parameters":[{"name":"user_email","in":"query","required":true,"schema":{"type":"string","description":"Email of the user to check","title":"User Email"},"description":"Email of the user to check"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpAdminLimitsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/metering/agent/consume":{"post":{"tags":["Integration APIs"],"summary":"Consume Agent Tokens","operationId":"consume_agent_tokens_api_v1_integration_metering_agent_consume_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumeAgentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Consume Agent Tokens Api V1 Integration Metering Agent Consume Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/metering/agent/balance":{"get":{"tags":["Integration APIs"],"summary":"Get Agent Balance","operationId":"get_agent_balance_api_v1_integration_metering_agent_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Agent Balance Api V1 Integration Metering Agent Balance Get"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/okta/sso-events":{"get":{"tags":["Integration APIs"],"summary":"List Sso Events","description":"List paginated Okta SSO login events.\n\nSupports:\n- Pagination (page, size)\n- Sorting (sort_by, sort_order)\n- Filtering (JSON filter string)","operationId":"list_sso_events_api_v1_integration_okta_sso_events_get","security":[{"API Key":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":20,"title":"Size"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"published_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}},{"name":"filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON string or empty {}","default":"{}","title":"Filters"},"description":"JSON string or empty {}"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/ask-ai-logs":{"post":{"tags":["Integration APIs","ask-ai-logs"],"summary":"Create Ask AI Log (Deprecated)","description":"Deprecated: ask_ai_logs table has been dropped. Accepts and discards the payload.","operationId":"create_ask_ai_log_api_v1_integration_ask_ai_logs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_AskAiLogCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/_AskAiLogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/lenses-artifact-events":{"post":{"tags":["Integration APIs","lenses-artifact-events"],"summary":"Record Lenses Artifact Event","description":"Receive and store Lenses artifact pin/unpin events from the power-api service.","operationId":"create_artifact_event_api_v1_integration_lenses_artifact_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LensesArtifactEventCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LensesArtifactEventResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/lenses-judge-verdicts":{"post":{"tags":["Integration APIs","lenses-judge-verdicts"],"summary":"Record Lenses Answer-Judge Verdict","description":"Receive a runtime answer-judge verdict from power-api and upsert it into Pancake tracking.llm_judge_results, keyed by trace_id, for use as the historical-replay prod baseline.","operationId":"create_judge_verdict_api_v1_integration_lenses_judge_verdicts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LensesJudgeVerdictCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LensesJudgeVerdictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/integration/agent/{external_agent_id}/provider-access":{"get":{"tags":["Integration APIs"],"summary":"Get Agent Provider Access","description":"Return the MCP-channel blocked provider list for the agent's owning client.\n\nUsed by mcp-service to enforce per-client data source restrictions on x402\nagent tool calls.  Returns only ``mcp_blocked`` — the minimal slice needed by\nthe caller — to avoid over-sharing internal access configuration.","operationId":"get_agent_provider_access_api_v1_integration_agent__external_agent_id__provider_access_get","security":[{"API Key":[]}],"parameters":[{"name":"external_agent_id","in":"path","required":true,"schema":{"type":"string","title":"External Agent Id"}},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"Agent source (default: x402)","default":"x402","title":"Source"},"description":"Agent source (default: x402)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Agent Provider Access Api V1 Integration Agent  External Agent Id  Provider Access Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/integration/agent/register":{"post":{"tags":["Integration APIs"],"summary":"Register Agent","operationId":"register_agent_api_v1_integration_agent_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAgentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Register Agent Api V1 Integration Agent Register Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"API Key":[]}]}},"/api/v1/billing/webhooks/stripe":{"post":{"tags":["Billing Webhooks","webhooks"],"summary":"Stripe Webhook","description":"Stripe webhook endpoint.\n\nValidates the Stripe-Signature header before processing. Returns HTTP 400\nfor missing or invalid signatures so Stripe can retry delivery.","operationId":"stripe_webhook_api_v1_billing_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health":{"get":{"summary":"Perform Healthcheck","description":"Simple route for the GitHub Actions to healthcheck on.","operationId":"perform_healthcheck_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Perform Healthcheck","description":"Simple route for the GitHub Actions to healthcheck on.","operationId":"perform_healthcheck_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Perform Healthcheck","description":"Simple route for the GitHub Actions to healthcheck on.","operationId":"perform_healthcheck__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"APITokenRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"token":{"type":"string","title":"Token"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","token","user_id","created_at","updated_at","expires_at","active"],"title":"APITokenRead"},"APITokenUpdate":{"properties":{"active":{"type":"boolean","title":"Active"}},"type":"object","required":["active"],"title":"APITokenUpdate"},"AddLinkedCamsGroupRequest":{"properties":{"admin_group_id":{"type":"string","format":"uuid","title":"Admin Group Id"}},"type":"object","required":["admin_group_id"],"title":"AddLinkedCamsGroupRequest"},"AddUser":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"extra_profile_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Profile Data"},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id","default":"d13eac8f-8f95-46c0-9954-a05d31f8d443"},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"transaction_limit":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Allocated Amount"},"group_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Group Id"}},"type":"object","required":["email","first_name","last_name"],"title":"AddUser"},"AdjustmentCreditScheduledRequest":{"properties":{"token_id":{"type":"string","title":"Token Id"},"client_id":{"type":"string","title":"Client Id"},"amount":{"anyOf":[{"type":"number","maximum":1000000.0,"minimum":0.0},{"type":"string"}],"title":"Amount"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"token_expires_days":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Token Expires Days"},"reason":{"type":"string","title":"Reason"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["token_id","client_id","amount","effective_at","reason"],"title":"AdjustmentCreditScheduledRequest"},"AdminGroupCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Permission Ids","default":[]}},"type":"object","required":["name"],"title":"AdminGroupCreate"},"AdminGroupRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"type":"string","format":"uuid4","title":"Id"},"permissions":{"items":{"$ref":"#/components/schemas/AdminPermissionSummaryRead"},"type":"array","title":"Permissions"}},"type":"object","required":["name","id","permissions"],"title":"AdminGroupRead"},"AdminGroupSummaryRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","name"],"title":"AdminGroupSummaryRead"},"AdminGroupUpdate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Permission Ids"}},"type":"object","required":["name"],"title":"AdminGroupUpdate"},"AdminPermissionCreate":{"properties":{"name":{"type":"string","title":"Name"},"resource":{"type":"string","title":"Resource"},"action":{"items":{"type":"string"},"type":"array","title":"Action"},"extra_fields":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Fields","default":{}}},"type":"object","required":["name","resource","action"],"title":"AdminPermissionCreate"},"AdminPermissionRead":{"properties":{"name":{"type":"string","title":"Name"},"resource":{"type":"string","title":"Resource"},"action":{"items":{"type":"string"},"type":"array","title":"Action"},"extra_fields":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Fields","default":{}},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["name","resource","action","id"],"title":"AdminPermissionRead"},"AdminPermissionSummaryRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"resource":{"type":"string","title":"Resource"},"action":{"items":{"type":"string"},"type":"array","title":"Action"}},"type":"object","required":["id","name","resource","action"],"title":"AdminPermissionSummaryRead"},"AdminPermissionUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"},"action":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Action"},"extra_fields":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Fields"}},"type":"object","title":"AdminPermissionUpdate"},"AdminRoleCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Permission Ids","default":[]}},"type":"object","required":["name"],"title":"AdminRoleCreate"},"AdminRoleRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"type":"string","format":"uuid4","title":"Id"},"permissions":{"items":{"$ref":"#/components/schemas/AdminPermissionSummaryRead"},"type":"array","title":"Permissions"}},"type":"object","required":["name","id","permissions"],"title":"AdminRoleRead"},"AdminRoleUpdate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Permission Ids"}},"type":"object","required":["name"],"title":"AdminRoleUpdate"},"AdminUserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id"},"is_super_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Super Admin","default":false},"group_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Group Id"},"direct_permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Direct Permission Ids","default":[]}},"type":"object","required":["email","first_name","last_name"],"title":"AdminUserCreate"},"AdminUserRead":{"properties":{"user_id":{"type":"string","format":"uuid4","title":"User Id"},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id"},"id":{"type":"string","format":"uuid4","title":"Id"},"is_super_admin":{"type":"boolean","title":"Is Super Admin"},"group":{"anyOf":[{"$ref":"#/components/schemas/AdminGroupSummaryRead"},{"type":"null"}]},"direct_permissions":{"items":{"$ref":"#/components/schemas/AdminPermissionSummaryRead"},"type":"array","title":"Direct Permissions","default":[]}},"type":"object","required":["user_id","id","is_super_admin"],"title":"AdminUserRead"},"AdminUserUpdate":{"properties":{"user_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"User Id"},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id"},"is_super_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Super Admin"},"group_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Group Id"},"direct_permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Direct Permission Ids"}},"type":"object","title":"AdminUserUpdate"},"ApiKeyRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"key":{"type":"string","title":"Key"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","key","user_id","created_at","updated_at","expires_at","active"],"title":"ApiKeyRead"},"ArnListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ArnRow"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ArnListResponse"},"ArnRegisterResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/ArnRegisterResult"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"ArnRegisterResponse"},"ArnRegisterResult":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"arn":{"type":"string","title":"Arn"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","arn","status"],"title":"ArnRegisterResult","description":"Per-ARN outcome of a register call."},"ArnRow":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"aws_arn":{"type":"string","title":"Aws Arn"},"scope":{"type":"string","title":"Scope"},"catalog":{"type":"string","title":"Catalog"},"dataset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Id"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","aws_arn","scope","catalog","status","created_at"],"title":"ArnRow","description":"One active registered ARN row (GET /block/arns)."},"AssignFeatureFlagsRequest":{"properties":{"feature_flag_ids":{"items":{"type":"string"},"type":"array","title":"Feature Flag Ids"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["feature_flag_ids"],"title":"AssignFeatureFlagsRequest","description":"Assign a list of feature flags (value='true') to every active client."},"AssignFeatureFlagsResponse":{"properties":{"status":{"type":"string","title":"Status"},"total_clients":{"type":"integer","title":"Total Clients"},"successful":{"type":"integer","title":"Successful"},"skipped":{"type":"integer","title":"Skipped"},"failed":{"type":"integer","title":"Failed"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors","default":[]},"dry_run":{"type":"boolean","title":"Dry Run"}},"type":"object","required":["status","total_clients","successful","skipped","failed","dry_run"],"title":"AssignFeatureFlagsResponse"},"AsyncMigrationResponse":{"properties":{"task_id":{"type":"string","title":"Task Id"},"message":{"type":"string","title":"Message"},"script_identifier":{"type":"string","title":"Script Identifier"},"status":{"type":"string","title":"Status","default":"submitted"},"csv_file_path":{"type":"string","title":"Csv File Path"},"total_clients":{"type":"integer","title":"Total Clients"},"submitted_at":{"type":"string","title":"Submitted At"}},"type":"object","required":["task_id","message","script_identifier","csv_file_path","total_clients","submitted_at"],"title":"AsyncMigrationResponse"},"AudienceFilter":{"properties":{"mode":{"type":"string","enum":["all","plan-tier","clients","dataset-access","users"],"title":"Mode"},"plan_tiers":{"anyOf":[{"items":{"type":"string","enum":["professional","business","enterprise"]},"type":"array"},{"type":"null"}],"title":"Plan Tiers"},"client_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Client Ids"},"asset_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Asset Ids"},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids"}},"type":"object","required":["mode"],"title":"AudienceFilter","description":"Audience filter as sent by the UI and stored (denormalised) on the\n``email_notifications`` row. Validator guarantees the selector fields\nmatch ``mode`` so the resolver doesn't have to second-guess the input."},"AudiencePreviewRequest":{"properties":{"audience":{"$ref":"#/components/schemas/AudienceFilter"}},"type":"object","required":["audience"],"title":"AudiencePreviewRequest","description":"Payload for ``POST /email-notifications/preview-audience``."},"AudiencePreviewResponse":{"properties":{"recipient_count":{"type":"integer","title":"Recipient Count"},"client_count":{"type":"integer","title":"Client Count"}},"type":"object","required":["recipient_count","client_count"],"title":"AudiencePreviewResponse"},"AudienceUserItem":{"properties":{"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"}},"type":"object","required":["email","first_name","last_name"],"title":"AudienceUserItem"},"AuthorizeProductUserRequest":{"properties":{"include_info":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Include Info","example":["feature_flags","feature_access","providers_access","role"]}},"type":"object","title":"AuthorizeProductUserRequest"},"AuthorizeRequest":{"properties":{"product_id":{"type":"string","format":"uuid4","title":"Product Id"},"include_info":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Include Info","example":["feature_flags","feature_access","providers_access","role"]}},"type":"object","required":["product_id"],"title":"AuthorizeRequest"},"AuthorizedUser":{"properties":{"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"feature_flags":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Feature Flags"},"providers_access":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Providers Access"}},"type":"object","required":["email","first_name","last_name"],"title":"AuthorizedUser"},"AvailablePlan":{"properties":{"plan_id":{"type":"string","title":"Plan Id","description":"Plan tier key, e.g. 'professional'"},"display_name":{"type":"string","title":"Display Name","description":"Human-readable plan name"},"has_monthly":{"type":"boolean","title":"Has Monthly","description":"Whether a monthly billing option exists"},"has_annual":{"type":"boolean","title":"Has Annual","description":"Whether an annual billing option exists"}},"type":"object","required":["plan_id","display_name","has_monthly","has_annual"],"title":"AvailablePlan","description":"A plan tier available for subscription."},"AvailablePlansResponse":{"properties":{"plans":{"items":{"$ref":"#/components/schemas/AvailablePlan"},"type":"array","title":"Plans"}},"type":"object","required":["plans"],"title":"AvailablePlansResponse","description":"Response listing plans a user can subscribe to."},"BackfillSectorRequest":{"properties":{"sector_assignments":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Sector Assignments"},"apply":{"type":"boolean","title":"Apply","default":false}},"type":"object","required":["sector_assignments"],"title":"BackfillSectorRequest","description":"Map each new sector value to the client IDs that should receive it."},"BlockAccountsApprovalBody":{"properties":{"trial_duration_months":{"anyOf":[{"type":"integer","maximum":12.0,"minimum":0.0},{"type":"null"}],"title":"Trial Duration Months"},"annual_price":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"},{"type":"null"}],"title":"Annual Price"},"custom_adjustment_rationale":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Custom Adjustment Rationale"}},"type":"object","title":"BlockAccountsApprovalBody","description":"Body for ``POST /block/requests/{id}/internal-approve/accounts``.\n\nAll three fields optional — a bare approval (no body, or empty body)\naccepts the captured-at-creation trial duration + annual price.\nSupplying ``trial_duration_months`` OR ``annual_price`` (to override\nthe catalog/dataset snapshot) requires ``custom_adjustment_rationale``\nso the adjustment lands with a CarbonArc-authored audit string. 0 is\na valid trial value and bypasses the trial/intake phases entirely\n(provisioning success transitions straight to ``contracted``)."},"BlockArnRegisterBody":{"properties":{"dataset_id":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"arns":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Arns"}},"type":"object","required":["dataset_id","arns"],"title":"BlockArnRegisterBody","description":"``POST /block/arns/block`` — register block-scoped ARN(s) for one SKU."},"BlockCancellationRejectBody":{"properties":{"reason":{"type":"string","maxLength":2000,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"BlockCancellationRejectBody","description":"Body for ``POST /block/requests/{id}/reject-cancellation`` — Block\nAdmin's reason is required so the requestor sees why their cancellation\nask was denied."},"BlockCancellationRequestBody":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reason"}},"type":"object","title":"BlockCancellationRequestBody","description":"Body for ``POST /block/requests/{id}/request-cancellation``.\n\nReason is optional — the UI encourages it but the server doesn't gate\non it so a user who just wants out can still submit."},"BlockClientDatasetRestrictionListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlockClientDatasetRestrictionRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BlockClientDatasetRestrictionListResponse"},"BlockClientDatasetRestrictionRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"client_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client External Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"served_lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Served Lag"},"served_lag_is_stale":{"type":"boolean","title":"Served Lag Is Stale","default":false},"row_version":{"type":"integer","title":"Row Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["id","client_id","dataset_id","row_version","created_at","updated_at"],"title":"BlockClientDatasetRestrictionRead"},"BlockClientDatasetRestrictionSet":{"properties":{"client_id":{"type":"string","format":"uuid","title":"Client Id"},"dataset_id":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"},"cut":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cut"},"served_lag":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Served Lag"},"expected_row_version":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Expected Row Version"}},"type":"object","required":["client_id","dataset_id"],"title":"BlockClientDatasetRestrictionSet","description":"Upsert body for ``PUT /block/dataset-restrictions``.\n\n``expected_row_version`` is required to update an existing row\n(optimistic concurrency); omit it to create. ``served_lag = None``\nrecords \"no access\". To clear the restriction (back to unrestricted),\nuse ``DELETE``."},"BlockComplianceTearSheetMeta":{"properties":{"available":{"type":"boolean","title":"Available"},"size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Bytes"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"}},"type":"object","required":["available"],"title":"BlockComplianceTearSheetMeta","description":"Per-dataset compliance tear sheet metadata. Mirrors the\n``ComplianceTearSheetMeta`` TypedDict in\n``app.services.compliance_tear_sheet`` so the same dict shape can be\nmodel_validate'd onto a pydantic schema."},"BlockDataSettingsRead":{"properties":{"notifications_enabled":{"$ref":"#/components/schemas/SettingField_bool_"},"trial_end_recipient_email":{"$ref":"#/components/schemas/SettingField_str_"}},"type":"object","required":["notifications_enabled","trial_end_recipient_email"],"title":"BlockDataSettingsRead","description":"Block Data feature-level settings surfaced on the System Settings page."},"BlockDataSettingsUpdate":{"properties":{"notifications_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Notifications Enabled"},"trial_end_recipient_email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Trial End Recipient Email"},"rationale":{"type":"string","maxLength":500,"title":"Rationale","description":"Required. Why this change is being made (min 3 characters, trimmed)."}},"type":"object","required":["rationale"],"title":"BlockDataSettingsUpdate","description":"Payload to update Block Data settings. Omitted fields are left untouched.\n``rationale`` is always required."},"BlockDatasetStatus":{"type":"string","enum":["hidden","coming_soon","ready"],"title":"BlockDatasetStatus"},"BlockDatasetTOULatestResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"content":{"type":"string","title":"Content"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"version_num":{"type":"integer","title":"Version Num"}},"type":"object","required":["id","dataset_id","content","effective_at","version_num"],"title":"BlockDatasetTOULatestResponse","description":"Lightweight latest-version view, used by request modal."},"BlockDatasetTOUUpdateRequest":{"properties":{"content":{"type":"string","title":"Content"},"change_type":{"type":"string","enum":["substantive","typo_formatting"],"title":"Change Type"},"change_reason":{"type":"string","minLength":1,"title":"Change Reason","description":"Required reason for change"},"effective_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective At","description":"Effective date/time for this TOU version. Defaults to published_at if not provided."},"base_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Base Version Id","description":"Optimistic concurrency check. The block-dataset TOU version id the user based their edit on. If the latest published version for this dataset has a different id, the update is rejected and the user should reload."}},"type":"object","required":["content","change_type","change_reason"],"title":"BlockDatasetTOUUpdateRequest","description":"Publish a new version of a dataset's TOU.\n\nMirrors ``SignupTOUUpdateRequest`` but is scoped per\n``dataset_id`` (which comes from the URL path, not the body)."},"BlockDatasetTOUVersionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"version_num":{"type":"integer","title":"Version Num"},"content":{"type":"string","title":"Content"},"checksum":{"type":"string","title":"Checksum"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"requires_reacceptance":{"type":"boolean","title":"Requires Reacceptance"},"change_reason":{"type":"string","title":"Change Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","dataset_id","version_num","content","checksum","published_at","effective_at","requires_reacceptance","change_reason","created_at"],"title":"BlockDatasetTOUVersionResponse","description":"A single published version of a dataset's TOU."},"BlockPricingAccessTypeOut":{"type":"string","enum":["Forward Feed","Historic"],"title":"BlockPricingAccessTypeOut"},"BlockPricingActiveListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlockPricingRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BlockPricingActiveListResponse"},"BlockPricingBulkRowStatusOut":{"type":"string","enum":["AVAILABLE","IN_PROCESS","COMING_SOON"],"title":"BlockPricingBulkRowStatusOut"},"BlockPricingCatalogCut":{"properties":{"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"lags":{"items":{"type":"string"},"type":"array","title":"Lags","default":[]},"pricing":{"additionalProperties":{"$ref":"#/components/schemas/BlockPricingRead"},"propertyNames":{"$ref":"#/components/schemas/BlockPricingAccessTypeOut"},"type":"object","title":"Pricing","default":{}},"scheduled":{"additionalProperties":{"$ref":"#/components/schemas/BlockPricingScheduledChange"},"propertyNames":{"$ref":"#/components/schemas/BlockPricingAccessTypeOut"},"type":"object","title":"Scheduled","default":{}}},"type":"object","required":["cut"],"title":"BlockPricingCatalogCut"},"BlockPricingCatalogEntry":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"internal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Name"},"core_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Core Source"},"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"bulk_row_status":{"anyOf":[{"$ref":"#/components/schemas/BlockPricingBulkRowStatusOut"},{"type":"null"}]},"primary_access_type":{"$ref":"#/components/schemas/BlockPricingAccessTypeOut","default":"Forward Feed"},"revenue_share_pct":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revenue Share Pct"},"deployment_fee":{"type":"boolean","title":"Deployment Fee","default":false},"monthly_fee":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monthly Fee"},"terms_of_use_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Of Use Html"},"terms_of_use_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Terms Of Use Version Id"},"status":{"type":"string","enum":["hidden","coming_soon","ready"],"title":"Status","default":"hidden"},"trial_duration_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trial Duration Months"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"notes_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Notes Updated At"},"notes_updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes Updated By"},"cuts":{"items":{"$ref":"#/components/schemas/BlockPricingCatalogCut"},"type":"array","title":"Cuts","default":[]}},"type":"object","required":["dataset_id"],"title":"BlockPricingCatalogEntry"},"BlockPricingCatalogResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlockPricingCatalogEntry"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BlockPricingCatalogResponse"},"BlockPricingHistoryResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"history":{"additionalProperties":{"items":{"$ref":"#/components/schemas/BlockPricingRead"},"type":"array"},"propertyNames":{"$ref":"#/components/schemas/BlockPricingAccessTypeOut"},"type":"object","title":"History"}},"type":"object","required":["dataset_id","history"],"title":"BlockPricingHistoryResponse","description":"Full effective-date timeline grouped by access_type for one (dataset_id, cut) SKU."},"BlockPricingRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"access_type":{"$ref":"#/components/schemas/BlockPricingAccessTypeOut"},"effective_date":{"type":"string","format":"date","title":"Effective Date"},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price"},"revenue_share_pct":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revenue Share Pct"},"deployment_fee":{"type":"boolean","title":"Deployment Fee","default":false},"monthly_fee":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monthly Fee"},"bulk_row_status":{"$ref":"#/components/schemas/BlockPricingBulkRowStatusOut"},"internal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Name"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"},"row_version":{"type":"integer","title":"Row Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["id","dataset_id","access_type","effective_date","price","revenue_share_pct","monthly_fee","bulk_row_status","row_version","created_at","updated_at"],"title":"BlockPricingRead"},"BlockPricingScheduledChange":{"properties":{"effective_date":{"type":"string","format":"date","title":"Effective Date"},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"}},"type":"object","required":["effective_date","price","updated_at"],"title":"BlockPricingScheduledChange","description":"A future-dated row that hasn't activated yet.\n\nSurfaced on top of the active price so the UI can flag a pending\nchange (when it will take effect, who scheduled it, what the new\nprice is). Distinct from ``BlockPricingRead`` because it carries\nonly the fields the tooltip needs and avoids implying that the row\nis currently active."},"BlockProvisioningErrorListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlockProvisioningErrorRow"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BlockProvisioningErrorListResponse"},"BlockProvisioningErrorRow":{"properties":{"request_id":{"type":"string","format":"uuid","title":"Request Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"internal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Name"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"requestor_email":{"type":"string","title":"Requestor Email"},"request_status":{"$ref":"#/components/schemas/BlockRequestStatus"},"step_name":{"type":"string","title":"Step Name"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"failed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Failed At"}},"type":"object","required":["request_id","dataset_id","client_id","requestor_email","request_status","step_name"],"title":"BlockProvisioningErrorRow","description":"One row of the CAMS \"Provisioning Errors\" table: the failed step\nsurfaced with enough parent-request context to render without a\nper-row lookup."},"BlockProvisioningStepRead":{"properties":{"step_name":{"type":"string","title":"Step Name"},"status":{"$ref":"#/components/schemas/BlockProvisioningStepStatus"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"failed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Failed At"},"error":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Error"}},"type":"object","required":["step_name","status","started_at"],"title":"BlockProvisioningStepRead","description":"One row of the per-Block-request provisioning timeline shown in CAMS.\n\n``error`` carries the JSONB payload recorded on failure (typically\n``{error_code, message}``); null for in-flight or successful steps."},"BlockProvisioningStepStatus":{"type":"string","enum":["started","completed","failed"],"title":"BlockProvisioningStepStatus"},"BlockProvisioningTimelineResponse":{"properties":{"request_id":{"type":"string","format":"uuid","title":"Request Id"},"request_status":{"$ref":"#/components/schemas/BlockRequestStatus"},"steps":{"items":{"$ref":"#/components/schemas/BlockProvisioningStepRead"},"type":"array","title":"Steps"}},"type":"object","required":["request_id","request_status","steps"],"title":"BlockProvisioningTimelineResponse"},"BlockQueryEngineCredentials":{"properties":{"client_id":{"type":"string","title":"Client Id"},"client_secret":{"type":"string","title":"Client Secret"},"catalog_uri":{"type":"string","title":"Catalog Uri"},"warehouse":{"type":"string","title":"Warehouse"}},"type":"object","required":["client_id","client_secret","catalog_uri","warehouse"],"title":"BlockQueryEngineCredentials","description":"Per-client Polaris (Iceberg REST catalog) connection details for the\n\"Connect Your Query Engine\" modal. ``client_secret`` is the raw plaintext\nsecret — sensitive, only returned to the client's own users over HTTPS."},"BlockRequestAdminListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlockRequestRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BlockRequestAdminListResponse","description":"Admin-side list shell. Uses unfiltered ``BlockRequestRead`` so internal\nfields stripped from ``BlockRequestCustomerRead`` (notably\n``accounts_extension_rationale``, which carries CarbonArc-authored audit\ntext and is hidden from customers via ``exclude=True``) survive\nserialization on admin endpoints. The customer list endpoint deliberately\nkeeps using ``BlockRequestListResponse`` so the same field stays out of\ncustomer-visible JSON."},"BlockRequestCreate":{"properties":{"dataset_id":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"},"lag":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cut"},"additional_email_recipients":{"items":{"type":"string"},"type":"array","title":"Additional Email Recipients"},"accepted_block_tou_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Accepted Block Tou Version Id"},"use_case":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Use Case"}},"type":"object","required":["dataset_id"],"title":"BlockRequestCreate"},"BlockRequestCustomerRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"internal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Name"},"core_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Core Source"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"client_polaris_principal_missing":{"type":"boolean","title":"Client Polaris Principal Missing","default":false},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"requestor_email":{"type":"string","title":"Requestor Email"},"status":{"$ref":"#/components/schemas/BlockRequestStatus"},"internal_queue_step":{"anyOf":[{"$ref":"#/components/schemas/InternalQueueStep"},{"type":"null"}]},"rejection_source":{"anyOf":[{"$ref":"#/components/schemas/RejectionSource"},{"type":"null"}]},"rejection_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Message"},"rejected_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected By"},"trial_duration_months":{"type":"integer","title":"Trial Duration Months"},"annual_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Price"},"original_trial_duration_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Original Trial Duration Months"},"original_annual_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Annual Price"},"additional_email_recipients":{"items":{"type":"string"},"type":"array","title":"Additional Email Recipients"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"trial_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Start Date"},"trial_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End Date"},"original_trial_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Original Trial Start Date"},"original_trial_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Original Trial End Date"},"first_ingestion_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Ingestion At"},"trial_start_trigger":{"anyOf":[{"$ref":"#/components/schemas/TrialStartTrigger"},{"type":"null"}]},"approved_by_block_admin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By Block Admin"},"approved_by_compliance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By Compliance"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"cancellation_requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancellation Requested At"},"cancellation_requested_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Requested By"},"cancellation_request_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Request Reason"},"compliance_tear_sheet":{"anyOf":[{"$ref":"#/components/schemas/BlockComplianceTearSheetMeta"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","dataset_id","client_id","requestor_email","status","trial_duration_months","created_at","updated_at"],"title":"BlockRequestCustomerRead","description":"Customer-facing variant of ``BlockRequestRead``. Collapses\n``provisioning_failed`` → ``provisioning`` in the serialized output so\nrequestors see a stuck attempt as still in-flight (\"access provisioning\")\nrather than a failure they can't act on. The failure remains visible to\nCAMS admins via the underlying status + the per-step audit table.\n\n``custom_adjustment_rationale`` is internal — overriding the field with\n``exclude=True`` drops it from the serialized response so customers\nnever see the CarbonArc-authored note."},"BlockRequestListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BlockRequestCustomerRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"users_by_email":{"additionalProperties":{"$ref":"#/components/schemas/BlockRequestUserRef"},"type":"object","title":"Users By Email"}},"type":"object","required":["items","total"],"title":"BlockRequestListResponse"},"BlockRequestRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"internal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Name"},"core_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Core Source"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"client_polaris_principal_missing":{"type":"boolean","title":"Client Polaris Principal Missing","default":false},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"requestor_email":{"type":"string","title":"Requestor Email"},"status":{"$ref":"#/components/schemas/BlockRequestStatus"},"internal_queue_step":{"anyOf":[{"$ref":"#/components/schemas/InternalQueueStep"},{"type":"null"}]},"rejection_source":{"anyOf":[{"$ref":"#/components/schemas/RejectionSource"},{"type":"null"}]},"rejection_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Message"},"rejected_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected By"},"trial_duration_months":{"type":"integer","title":"Trial Duration Months"},"annual_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Price"},"original_trial_duration_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Original Trial Duration Months"},"original_annual_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Annual Price"},"custom_adjustment_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Adjustment Rationale"},"additional_email_recipients":{"items":{"type":"string"},"type":"array","title":"Additional Email Recipients"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"trial_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Start Date"},"trial_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End Date"},"original_trial_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Original Trial Start Date"},"original_trial_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Original Trial End Date"},"first_ingestion_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Ingestion At"},"trial_start_trigger":{"anyOf":[{"$ref":"#/components/schemas/TrialStartTrigger"},{"type":"null"}]},"approved_by_block_admin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By Block Admin"},"approved_by_compliance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By Compliance"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"cancellation_requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancellation Requested At"},"cancellation_requested_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Requested By"},"cancellation_request_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Request Reason"},"compliance_tear_sheet":{"anyOf":[{"$ref":"#/components/schemas/BlockComplianceTearSheetMeta"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","dataset_id","client_id","requestor_email","status","trial_duration_months","created_at","updated_at"],"title":"BlockRequestRead"},"BlockRequestRecipientsUpdate":{"properties":{"additional_email_recipients":{"items":{"type":"string"},"type":"array","title":"Additional Email Recipients"}},"type":"object","title":"BlockRequestRecipientsUpdate","description":"Body for ``PATCH /block/requests/{id}/recipients``.\n\nReplaces ``additional_email_recipients`` wholesale — the UI ships the\nfull list each time, mirroring how it's edited on the request-creation\nform. Server-side validation matches the client regex; addresses are\nnormalized to lower-case before storing so set-based dedupe is stable\nacross casings the user typed."},"BlockRequestRejectBody":{"properties":{"message":{"type":"string","maxLength":2000,"minLength":1,"title":"Message"}},"type":"object","required":["message"],"title":"BlockRequestRejectBody"},"BlockRequestStatus":{"type":"string","enum":["pending_block_admin","pending_compliance","pending_internal","approved","intake_pending","provisioning","provisioning_failed","trial_pending","trial_active","contracted","contract_expired","request_cancelled","trial_cancelled","contract_cancelled","block_cancelled","rejected"],"title":"BlockRequestStatus"},"BlockRequestTimelineEvent":{"properties":{"kind":{"$ref":"#/components/schemas/BlockRequestTimelineEventKind"},"stage":{"anyOf":[{"$ref":"#/components/schemas/InternalQueueStep"},{"type":"null"}]},"actor_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Email"},"at":{"type":"string","format":"date-time","title":"At"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["kind","at"],"title":"BlockRequestTimelineEvent"},"BlockRequestTimelineEventKind":{"type":"string","enum":["submitted","block_admin_approve","block_admin_reject","compliance_approve","compliance_reject","compliance_skipped","internal_approve","internal_reject","reset_rejection","provisioning_failed","provisioning_retried","trial_started","trial_expired","cancellation_requested","cancellation_approved","cancellation_rejected","cancelled_direct"],"title":"BlockRequestTimelineEventKind","description":"Discrete event types surfaced in the per-request timeline.\n\n``submitted`` / ``block_admin_*`` / ``compliance_*`` are derived from\ndenormalized columns on ``block_requests`` (power-ui actions don't\nwrite to the admin audit log). Internal-stage events come from\n``admin_requests_audit_logs`` entries written by the admin audit\nmiddleware. ``compliance_skipped`` fires when the workflow setting\nor preapproval bypassed the compliance step entirely."},"BlockRequestTimelineResponse":{"properties":{"request_id":{"type":"string","format":"uuid","title":"Request Id"},"events":{"items":{"$ref":"#/components/schemas/BlockRequestTimelineEvent"},"type":"array","title":"Events"}},"type":"object","required":["request_id","events"],"title":"BlockRequestTimelineResponse"},"BlockRequestUserRef":{"properties":{"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"}},"type":"object","required":["email"],"title":"BlockRequestUserRef","description":"Lightweight name lookup for an email present on a Block request row\n(``requestor_email``, ``approved_by_block_admin``, ``approved_by_compliance``).\nSurfaced on the list response so the admin dashboard can render the\nrequestor / approver as \"First Last\" instead of the raw email."},"BlockRoleName":{"type":"string","enum":["block_user","block_admin"],"title":"BlockRoleName","description":"Additive Block role values stored directly on ``users.block_role``\nand ``groups.block_role`` (``block_role_enum`` Postgres enum). Matches\nthe snake_case value set used elsewhere in the Block domain."},"BlockRotatedCredentials":{"properties":{"principal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Principal Name"},"client_id":{"type":"string","title":"Client Id"},"client_secret":{"type":"string","title":"Client Secret"}},"type":"object","required":["client_id","client_secret"],"title":"BlockRotatedCredentials","description":"Freshly-rotated Polaris client credentials returned to the carbonarc\nSDK's ``block.rotate_polaris_credentials``. The previous pair is invalid\nserver-side the moment this returns, so the plaintext ``client_secret``\nis the caller's only chance to capture the new value."},"BlockWorkflowSettingsRead":{"properties":{"block_compliance":{"$ref":"#/components/schemas/ComplianceMode"}},"type":"object","required":["block_compliance"],"title":"BlockWorkflowSettingsRead"},"BlockWorkflowSettingsUpdate":{"properties":{"block_compliance":{"$ref":"#/components/schemas/ComplianceMode"}},"type":"object","required":["block_compliance"],"title":"BlockWorkflowSettingsUpdate"},"Body_bulk_replace_featured_entities_api_v1_admin_featured_bulk_replace_entities_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File"}},"type":"object","required":["csv_file"],"title":"Body_bulk_replace_featured_entities_api_v1_admin_featured_bulk_replace_entities_post"},"Body_bulk_replace_featured_insights_api_v1_admin_featured_bulk_replace_insights_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File"}},"type":"object","required":["csv_file"],"title":"Body_bulk_replace_featured_insights_api_v1_admin_featured_bulk_replace_insights_post"},"Body_delete_client_api_v1_admin_clients__client_id__delete":{"properties":{"reason":{"type":"string","title":"Reason"}},"type":"object","required":["reason"],"title":"Body_delete_client_api_v1_admin_clients__client_id__delete"},"Body_delete_user_api_v1_admin_users__user_id__delete":{"properties":{"reason":{"type":"string","title":"Reason"}},"type":"object","required":["reason"],"title":"Body_delete_user_api_v1_admin_users__user_id__delete"},"Body_import_pricing_csv_api_v1_admin_block_pricing_import_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_import_pricing_csv_api_v1_admin_block_pricing_import_post"},"Body_parse_csv_api_v1_admin_ontology_csv_drafter_parse_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File"}},"type":"object","required":["csv_file"],"title":"Body_parse_csv_api_v1_admin_ontology_csv_drafter_parse_post"},"Body_run_migration_from_csv_api_v1_admin_migrations_run_csv_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File"}},"type":"object","required":["csv_file"],"title":"Body_run_migration_from_csv_api_v1_admin_migrations_run_csv_post"},"BucketPathResponse":{"properties":{"bucket_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Path"}},"type":"object","title":"BucketPathResponse","description":"``GET /block/arns/bucket-path`` — the provisioned S3 bucket for a SKU.\n\n``bucket_path`` is ``None`` when no bucket has been provisioned for the\n(dataset_id, lag, cut) yet (the UI then shows a \"not provisioned\" hint)."},"BulkAddUsers":{"properties":{"users":{"items":{"$ref":"#/components/schemas/AddUser"},"type":"array","minItems":1,"title":"Users","description":"List of users to add"}},"type":"object","required":["users"],"title":"BulkAddUsers"},"BulkMcpDailyLimitRequest":{"properties":{"user_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"User Ids"},"mcp_daily_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Daily Limit"}},"type":"object","required":["user_ids"],"title":"BulkMcpDailyLimitRequest"},"BulkStatusChangeRequest":{"properties":{"asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":200,"minItems":1,"title":"Asset Ids"},"action":{"type":"string","enum":["publish","unpublish","archive"],"title":"Action"}},"type":"object","required":["asset_ids","action"],"title":"BulkStatusChangeRequest"},"BulkStatusChangeResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/BulkStatusChangeResult"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total"},"succeeded":{"type":"integer","title":"Succeeded"},"failed":{"type":"integer","title":"Failed"}},"type":"object","required":["results","total","succeeded","failed"],"title":"BulkStatusChangeResponse"},"BulkStatusChangeResult":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"success":{"type":"boolean","title":"Success"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","success"],"title":"BulkStatusChangeResult"},"BulkTagCreate":{"additionalProperties":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object"},"type":"object","title":"BulkTagCreate"},"BulkTranscriptStatusRequest":{"properties":{"transcript_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":200,"minItems":1,"title":"Transcript Ids"},"action":{"type":"string","enum":["publish","hide","remove"],"title":"Action"},"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reason"}},"type":"object","required":["transcript_ids","action"],"title":"BulkTranscriptStatusRequest"},"BulkTranscriptStatusResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/BulkTranscriptStatusResult"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total"},"succeeded":{"type":"integer","title":"Succeeded"},"failed":{"type":"integer","title":"Failed"}},"type":"object","required":["results","total","succeeded","failed"],"title":"BulkTranscriptStatusResponse"},"BulkTranscriptStatusResult":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"success":{"type":"boolean","title":"Success"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","success"],"title":"BulkTranscriptStatusResult"},"BuyTokensRequest":{"properties":{"token_amount":{"type":"number","title":"Token Amount"},"payment_method":{"type":"string","title":"Payment Method"},"is_recurring":{"type":"boolean","title":"Is Recurring","default":false},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url","default":""},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url","default":""},"token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Token Id","description":"Optional token ID to use for purchase. If not provided, the primary active token will be used."},"token_purchase_type":{"anyOf":[{"type":"string","enum":["primary","mcp","mcp_primary"]},{"type":"null"}],"title":"Token Purchase Type","description":"Optional token purchase type. If 'mcp_primary' (or legacy 'mcp') is provided and token_id is not set, the backend will use the MCP Primary token id from environment configuration."}},"type":"object","required":["token_amount","payment_method"],"title":"BuyTokensRequest"},"CSVFilePathMigrationRequest":{"properties":{"csv_file_path":{"type":"string","title":"Csv File Path"},"script_identifier":{"type":"string","title":"Script Identifier","default":"add_wallets"},"client_id_column":{"type":"string","title":"Client Id Column","default":"client_id"},"send_email_summary":{"type":"boolean","title":"Send Email Summary","default":false},"email_recipients":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Email Recipients"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","default":{}}},"type":"object","required":["csv_file_path"],"title":"CSVFilePathMigrationRequest"},"CSVMigrationResponse":{"properties":{"message":{"type":"string","title":"Message"},"script_identifier":{"type":"string","title":"Script Identifier"},"status":{"type":"string","title":"Status"},"total_clients":{"type":"integer","title":"Total Clients"},"processed_clients":{"type":"integer","title":"Processed Clients","default":0},"successful_migrations":{"type":"integer","title":"Successful Migrations","default":0},"failed_migrations":{"type":"integer","title":"Failed Migrations","default":0},"skipped_migrations":{"type":"integer","title":"Skipped Migrations","default":0},"errors":{"items":{"type":"string"},"type":"array","title":"Errors","default":[]},"email_sent":{"type":"boolean","title":"Email Sent","default":false},"email_recipients":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Email Recipients"}},"type":"object","required":["message","script_identifier","status","total_clients"],"title":"CSVMigrationResponse"},"CamsGroupRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"member_count":{"type":"integer","title":"Member Count"}},"type":"object","required":["id","name","description","member_count"],"title":"CamsGroupRead","description":"Lightweight admin group record for the linked-group combobox."},"CancelSubscriptionRequest":{"properties":{"cancel_when":{"type":"string","enum":["immediately","end_of_period","custom_date"],"title":"Cancel When"},"cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel At"},"refund":{"type":"string","enum":["none","last_payment","prorated"],"title":"Refund","default":"none"},"mode":{"type":"string","enum":["cancel_only","cancel_and_convert"],"title":"Mode","default":"cancel_only"},"convert_starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Convert Starts At"}},"type":"object","required":["cancel_when"],"title":"CancelSubscriptionRequest"},"CancelSubscriptionResponse":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status"},"cancel_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cancel At"},"canceled_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Canceled At"},"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"},"refund_status":{"type":"string","enum":["not_requested","succeeded","failed","no_payment_intent"],"title":"Refund Status","default":"not_requested"},"refund_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refund Error"},"plan_conversion_status":{"type":"string","enum":["not_applicable","succeeded","failed"],"title":"Plan Conversion Status","default":"not_applicable"},"plan_conversion_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Conversion Error"}},"type":"object","required":["id","status"],"title":"CancelSubscriptionResponse"},"CartStatusCreate":{"properties":{"framework":{"additionalProperties":true,"type":"object","title":"Framework","description":"Framework configuration data and identifier"},"price":{"type":"number","minimum":0.0,"title":"Price"},"status":{"anyOf":[{"$ref":"#/components/schemas/CartStatusEnum"},{"type":"null"}],"description":"Status of the cart - 'bought' or 'abandoned'. Defaults to 'abandoned' if not provided."}},"type":"object","required":["framework","price"],"title":"CartStatusCreate","description":"Schema for creating a new cart status record"},"CartStatusEnum":{"type":"string","enum":["bought","abandoned"],"title":"CartStatusEnum"},"CartStatusRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"framework":{"additionalProperties":true,"type":"object","title":"Framework"},"user_email":{"type":"string","format":"email","title":"User Email"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"price":{"type":"number","title":"Price"},"status":{"anyOf":[{"$ref":"#/components/schemas/CartStatusEnum"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["id","framework","user_email","client_id","price","created_at","updated_at"],"title":"CartStatusRead","description":"Schema for reading a cart status record"},"CartStatusUpdate":{"properties":{"framework":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Framework","description":"Framework configuration data and identifier"},"price":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Price"},"status":{"anyOf":[{"$ref":"#/components/schemas/CartStatusEnum"},{"type":"null"}],"description":"Status of the cart - 'bought' or 'abandoned'"}},"type":"object","title":"CartStatusUpdate","description":"Schema for updating a cart status record"},"CatalogAssetRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"source_id":{"type":"string","format":"uuid","title":"Source Id"},"provider_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Provider Id"},"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibility"},"tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tier"},"is_new":{"type":"boolean","title":"Is New","default":false},"is_premium":{"type":"boolean","title":"Is Premium","default":false},"publish_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish Date"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"vote_count":{"type":"integer","title":"Vote Count","default":0}},"type":"object","required":["id","source_id","external_id","title","status","created_at","updated_at"],"title":"CatalogAssetRead"},"CatalogAssetUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"is_new":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is New"}},"type":"object","title":"CatalogAssetUpdate","description":"General field update — title, flags only. Status/tier have dedicated endpoints."},"CatalogClientCreate":{"properties":{"name":{"type":"string","title":"Name"},"plan_type":{"type":"string","enum":["standard","library_only","enterprise","ido_premium"],"title":"Plan Type","default":"standard"}},"type":"object","required":["name"],"title":"CatalogClientCreate"},"CatalogClientRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"plan_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","plan_type","created_at","updated_at"],"title":"CatalogClientRead"},"CatalogClientUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"plan_type":{"anyOf":[{"type":"string","enum":["standard","library_only","enterprise","ido_premium"]},{"type":"null"}],"title":"Plan Type"}},"type":"object","title":"CatalogClientUpdate"},"ChargeablePaymentMethodResponse":{"properties":{"has_chargeable_payment_method":{"type":"boolean","title":"Has Chargeable Payment Method"}},"type":"object","required":["has_chargeable_payment_method"],"title":"ChargeablePaymentMethodResponse"},"CheckoutInitiateData":{"properties":{"fbp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fbp","description":"Meta _fbp browser cookie"},"fbc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fbc","description":"Meta _fbc click ID cookie"},"promo_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Promo Code","description":"Curated ad-attribution promo slug (e.g. utm_campaign when utm_source='promo'); resolved server-side to a Stripe promotion code."}},"type":"object","title":"CheckoutInitiateData"},"ChoiceType":{"properties":{"code":{"type":"string","title":"Code"},"value":{"type":"string","title":"Value"}},"type":"object","required":["code","value"],"title":"ChoiceType"},"ClientBalanceResponse":{"properties":{"balance":{"type":"number","title":"Balance"},"wallet":{"$ref":"#/components/schemas/WalletMetadata"}},"type":"object","required":["balance","wallet"],"title":"ClientBalanceResponse"},"ClientBulkPlanTypeUpdate":{"properties":{"client_ids":{"items":{"type":"string"},"type":"array","title":"Client Ids"},"plan_type":{"anyOf":[{"type":"string","enum":["standard","library_only","enterprise","ido_premium"]},{"type":"null"}],"title":"Plan Type"}},"type":"object","required":["client_ids","plan_type"],"title":"ClientBulkPlanTypeUpdate"},"ClientCreate":{"properties":{"client_info":{"$ref":"#/components/schemas/ClientInfoCreate"},"skip_stripe_validation":{"type":"boolean","title":"Skip Stripe Validation","default":false}},"type":"object","required":["client_info"],"title":"ClientCreate"},"ClientDataCollectionConsentRestrictionStatus":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"restricted":{"type":"boolean","title":"Restricted"}},"type":"object","required":["client_id","restricted"],"title":"ClientDataCollectionConsentRestrictionStatus"},"ClientDataCollectionConsentRestrictionUpdate":{"properties":{"restricted":{"type":"boolean","title":"Restricted"}},"type":"object","required":["restricted"],"title":"ClientDataCollectionConsentRestrictionUpdate"},"ClientEngagementResponse":{"properties":{"totals":{"$ref":"#/components/schemas/ClientEngagementTotals"},"rows":{"items":{"$ref":"#/components/schemas/ClientEngagementRow"},"type":"array","title":"Rows"},"sources":{"$ref":"#/components/schemas/DataSourcesHealth","default":{"platform":"ok","s3":"ok","polaris":"ok"}},"cached_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cached At"}},"type":"object","required":["totals","rows"],"title":"ClientEngagementResponse"},"ClientEngagementRow":{"properties":{"short_name":{"type":"string","title":"Short Name"},"business_name":{"type":"string","title":"Business Name"},"sector":{"type":"string","title":"Sector"},"plan_tier":{"type":"string","title":"Plan Tier","default":"Unassigned"},"is_new":{"type":"boolean","title":"Is New","default":false},"is_canceled":{"type":"boolean","title":"Is Canceled","default":false},"is_expiring":{"type":"boolean","title":"Is Expiring","default":false},"all_engagement":{"type":"integer","title":"All Engagement","default":0},"tokens":{"type":"number","title":"Tokens","default":0},"primary_tokens":{"type":"number","title":"Primary Tokens","default":0},"promotional_tokens":{"type":"number","title":"Promotional Tokens","default":0},"mbs":{"type":"number","title":"Mbs","default":0},"records":{"type":"integer","title":"Records","default":0},"s3_mbs":{"type":"number","title":"S3 Mbs","default":0},"polaris_s3_mbs":{"type":"number","title":"Polaris S3 Mbs","default":0},"polaris_s3_requests":{"type":"integer","title":"Polaris S3 Requests","default":0},"mcp_tokens":{"type":"number","title":"Mcp Tokens","default":0},"mcp_tool_calls":{"type":"integer","title":"Mcp Tool Calls","default":0}},"type":"object","required":["short_name","business_name","sector"],"title":"ClientEngagementRow"},"ClientEngagementTotals":{"properties":{"total_clients":{"type":"integer","title":"Total Clients","default":0},"total_clients_by_plan_tier":{"additionalProperties":{"type":"integer"},"type":"object","title":"Total Clients By Plan Tier","default":{}},"weekly_active_clients":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Active Clients"},"new_clients_count":{"type":"integer","title":"New Clients Count","default":0},"new_clients_by_plan_tier":{"additionalProperties":{"type":"integer"},"type":"object","title":"New Clients By Plan Tier","default":{}},"total_server_requests":{"type":"integer","title":"Total Server Requests","default":0},"total_tokens":{"type":"number","title":"Total Tokens","default":0},"total_primary_tokens":{"type":"number","title":"Total Primary Tokens","default":0},"total_promotional_tokens":{"type":"number","title":"Total Promotional Tokens","default":0},"total_mbs":{"type":"number","title":"Total Mbs","default":0},"total_records":{"type":"integer","title":"Total Records","default":0},"total_s3_mbs":{"type":"number","title":"Total S3 Mbs","default":0},"total_polaris_s3_mbs":{"type":"number","title":"Total Polaris S3 Mbs","default":0},"total_polaris_s3_requests":{"type":"integer","title":"Total Polaris S3 Requests","default":0},"total_mcp_tokens":{"type":"number","title":"Total Mcp Tokens","default":0},"total_mcp_tool_calls":{"type":"integer","title":"Total Mcp Tool Calls","default":0}},"type":"object","title":"ClientEngagementTotals"},"ClientExchangeUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"ClientExchangeUpdate","description":"PRO-136: payload for ``PUT /admin/clients/{id}/exchange``.\n\nA single admin-facing toggle that enables or disables the Exchange feature\nfor the client for any plan tier (professional, business, enterprise)."},"ClientFeatureAccessCreate":{"properties":{"extra_info":{"additionalProperties":true,"type":"object","title":"Extra Info","default":{}},"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"}},"type":"object","required":["feature_id","client_id"],"title":"ClientFeatureAccessCreate"},"ClientFeatureAccessRead":{"properties":{"extra_info":{"additionalProperties":true,"type":"object","title":"Extra Info","default":{}},"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["feature_id","client_id","id"],"title":"ClientFeatureAccessRead"},"ClientFeatureAccessUpdate":{"properties":{"extra_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Info"}},"type":"object","title":"ClientFeatureAccessUpdate"},"ClientFeatureElementAccessRead":{"properties":{"feature_element_id":{"type":"string","format":"uuid4","title":"Feature Element Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"visible":{"type":"boolean","title":"Visible"},"subscribed":{"type":"boolean","title":"Subscribed"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["feature_element_id","client_id","visible","subscribed","id"],"title":"ClientFeatureElementAccessRead"},"ClientFeatureElementAccessUpdate":{"properties":{"visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Visible"},"subscribed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Subscribed"}},"type":"object","title":"ClientFeatureElementAccessUpdate"},"ClientFeatureFlagCreate":{"properties":{"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active"},"feature_flag_id":{"type":"string","format":"uuid4","title":"Feature Flag Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"}},"type":"object","required":["value","is_active","feature_flag_id","client_id"],"title":"ClientFeatureFlagCreate"},"ClientFeatureFlagRead":{"properties":{"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active"},"feature_flag_id":{"type":"string","format":"uuid4","title":"Feature Flag Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"value_type":{"anyOf":[{"$ref":"#/components/schemas/FeatureFlagValueType"},{"type":"null"}]},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["value","is_active","feature_flag_id","client_id","id"],"title":"ClientFeatureFlagRead"},"ClientFeatureFlagResponse":{"properties":{"feature_flag_name":{"type":"string","title":"Feature Flag Name"},"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["feature_flag_name","value","is_active"],"title":"ClientFeatureFlagResponse"},"ClientFeatureFlagUpdate":{"properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"}},"type":"object","title":"ClientFeatureFlagUpdate"},"ClientInfo":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"key":{"type":"string","title":"Key"},"client_id":{"type":"string","title":"Client Id"},"has_delta_config":{"type":"boolean","title":"Has Delta Config"},"plan_tier":{"type":"string","title":"Plan Tier"},"is_compliance_managed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Compliance Managed"},"payment_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Method","description":"Client billing payment method (card | ach | invoice). Used by power-ui to gate invoice payment options."}},"type":"object","required":["id","name","key","client_id","has_delta_config","plan_tier"],"title":"ClientInfo"},"ClientInfoCreate":{"properties":{"name":{"type":"string","title":"Name"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"client_type_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Type Id"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"is_compliance_managed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Compliance Managed","default":false},"block_compliance":{"anyOf":[{"type":"string","enum":["managed","notified","disabled"]},{"type":"null"}],"title":"Block Compliance","default":"disabled"},"bill_to_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Bill To Email"},"bill_to_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bill To Name"},"payment_method":{"anyOf":[{"type":"string","enum":["card","ach","invoice"]},{"type":"null"}],"title":"Payment Method"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"extra_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Info"},"type":{"anyOf":[{"type":"string","enum":["EXTERNAL","INTERNAL","EXTERNAL_SUB_USER"]},{"type":"null"}],"title":"Type","default":"EXTERNAL"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"}},"type":"object","required":["name"],"title":"ClientInfoCreate"},"ClientInfoResponse":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"feature_flags":{"additionalProperties":true,"type":"object","title":"Feature Flags"},"unmetered_providers":{"items":{"type":"string"},"type":"array","title":"Unmetered Providers"},"features":{"items":{"type":"string"},"type":"array","title":"Features"}},"type":"object","required":["id","name","feature_flags","unmetered_providers","features"],"title":"ClientInfoResponse"},"ClientMcpProviderAccessFollowsPatch":{"properties":{"mcp_provider_access_follows_api":{"type":"boolean","title":"Mcp Provider Access Follows Api"}},"type":"object","required":["mcp_provider_access_follows_api"],"title":"ClientMcpProviderAccessFollowsPatch","description":"Toggle whether MCP provider access mirrors API access for this client."},"ClientMetric":{"properties":{"client":{"type":"string","title":"Client"},"total":{"type":"integer","title":"Total","default":0},"errors":{"type":"integer","title":"Errors","default":0},"error_rate_pct":{"type":"number","title":"Error Rate Pct","default":0.0}},"type":"object","required":["client"],"title":"ClientMetric"},"ClientOnboardingResponse":{"properties":{"steps":{"items":{"$ref":"#/components/schemas/OnboardingStepRead"},"type":"array","title":"Steps"},"steps_complete":{"type":"integer","title":"Steps Complete"},"current_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Step"},"is_complete":{"type":"boolean","title":"Is Complete"}},"type":"object","required":["steps","steps_complete","current_step","is_complete"],"title":"ClientOnboardingResponse"},"ClientPlanDetails":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"platform_fee":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Platform Fee"},"client_admin_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Admin Email"},"client_admin_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Admin Name"},"platform_fee_schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Fee Schedule"},"payment_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Method"},"plan_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Plan Start Date"},"free_tokens_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Free Tokens Amount"},"free_tokens_duration_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Tokens Duration Count"},"free_tokens_duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Free Tokens Duration"},"daily_token_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Daily Token Limit"},"is_mcp_plan":{"type":"boolean","title":"Is Mcp Plan","default":false},"plan_type":{"type":"string","title":"Plan Type","default":"enterprise"},"setup_payment_on_behalf_of_the_client":{"type":"boolean","title":"Setup Payment On Behalf Of The Client","default":false},"billing_cycle_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Billing Cycle Limit"},"auto_renew":{"type":"boolean","title":"Auto Renew","default":false},"disable_invoice_as_payment_method":{"type":"boolean","title":"Disable Invoice As Payment Method","default":false},"invoice_payment":{"type":"boolean","title":"Invoice Payment","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"product_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Name"},"subscription_id":{"type":"string","title":"Subscription Id"},"status":{"type":"string","title":"Status"},"current_period_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period Start"},"current_period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period End"},"cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel At"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"extra_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Data"}},"type":"object","required":["id","slug","client_id","subscription_id","status"],"title":"ClientPlanDetails","description":"User-facing response schema for subscription plan details combining PlanSubscription and Stripe data"},"ClientPlanTier":{"type":"string","enum":["enterprise","professional","business"],"title":"ClientPlanTier","description":"Values match ``admin_config.clients.plan_tier`` (``client_plan_tier_enum``)."},"ClientPlanTypeUpdate":{"properties":{"plan_type":{"anyOf":[{"type":"string","enum":["standard","library_only","enterprise","ido_premium"]},{"type":"null"}],"title":"Plan Type"}},"type":"object","required":["plan_type"],"title":"ClientPlanTypeUpdate","description":"``plan_type`` may be ``null`` to clear the catalog row's plan type."},"ClientPolarisCredentialsState":{"properties":{"minted":{"type":"boolean","title":"Minted"},"polaris_principal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Principal Name"},"polaris_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Client Id"},"polaris_client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Client Secret"},"polaris_provisioned_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Polaris Provisioned At"},"polaris_provisioning_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Provisioning Status"},"polaris_provisioning_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Provisioning Error"},"polaris_provisioning_attempted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Polaris Provisioning Attempted At"},"polaris_provisioning_attempted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Provisioning Attempted By"},"polaris_provisioning_attempted_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Polaris Provisioning Attempted Source"}},"type":"object","required":["minted"],"title":"ClientPolarisCredentialsState"},"ClientProductBackgroundTaskResponse":{"properties":{"id":{"type":"string","title":"Id"},"message":{"type":"string","title":"Message"},"status":{"type":"string","title":"Status","default":"processing"},"client_id":{"type":"string","title":"Client Id"},"product_id":{"type":"string","title":"Product Id"}},"type":"object","required":["id","message","client_id","product_id"],"title":"ClientProductBackgroundTaskResponse","description":"Response model for client product operations that trigger background Okta tasks."},"ClientProductCreate":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"product_id":{"type":"string","format":"uuid4","title":"Product Id"},"extra_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Info","default":{}}},"type":"object","required":["client_id","product_id"],"title":"ClientProductCreate"},"ClientProductRead":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"product_id":{"type":"string","format":"uuid4","title":"Product Id"},"extra_info":{"additionalProperties":true,"type":"object","title":"Extra Info"},"feature_ids":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Feature Ids"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["client_id","product_id","extra_info","feature_ids","id"],"title":"ClientProductRead"},"ClientProductUpdate":{"properties":{"feature_ids":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Feature Ids"}},"type":"object","required":["feature_ids"],"title":"ClientProductUpdate"},"ClientProviderAccessAuditServiceRead":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"api_access_new_value":{"type":"boolean","title":"Api Access New Value"},"mcp_access_new_value":{"type":"boolean","title":"Mcp Access New Value"},"unmetered_new_value":{"type":"boolean","title":"Unmetered New Value"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"rationale":{"type":"string","title":"Rationale"}},"type":"object","required":["client_id","provider_id","api_access_new_value","mcp_access_new_value","unmetered_new_value","updated_by","updated_at","rationale"],"title":"ClientProviderAccessAuditServiceRead"},"ClientProviderAccessInfo":{"properties":{"provider":{"$ref":"#/components/schemas/ProviderRead"},"enabled":{"type":"boolean","title":"Enabled"},"locked":{"type":"boolean","title":"Locked"},"unmetered":{"type":"boolean","title":"Unmetered"},"production_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Production Date"},"day_lag":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Day Lag"}},"type":"object","required":["provider","enabled","locked","unmetered"],"title":"ClientProviderAccessInfo"},"ClientProviderAccessServiceBulkUpdate":{"properties":{"client_id":{"type":"string","title":"Client Id"},"provider_id":{"type":"string","title":"Provider Id"},"api_access":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Api Access"},"mcp_access":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mcp Access"},"unmetered":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Unmetered"},"rationale":{"type":"string","title":"Rationale"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","required":["client_id","provider_id","rationale"],"title":"ClientProviderAccessServiceBulkUpdate"},"ClientProviderAccessServiceCodeNameVendor":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"api_access":{"type":"boolean","title":"Api Access"},"mcp_access":{"type":"boolean","title":"Mcp Access"},"unmetered":{"type":"boolean","title":"Unmetered"},"api_access_locked":{"type":"boolean","title":"Api Access Locked","default":false},"mcp_access_locked":{"type":"boolean","title":"Mcp Access Locked","default":false},"mcp_provider_access_follows_api":{"type":"boolean","title":"Mcp Provider Access Follows Api","default":true},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"data_vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Vendor"},"code_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Name"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"provider_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Note"},"client_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Note"},"rationale":{"type":"string","title":"Rationale"},"pid":{"type":"string","title":"Pid"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["client_id","provider_id","api_access","mcp_access","unmetered","updated_by","updated_at","data_vendor","code_name","key","name","rationale","pid","id"],"title":"ClientProviderAccessServiceCodeNameVendor"},"ClientProviderAccessServiceRead":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"api_access":{"type":"boolean","title":"Api Access"},"mcp_access":{"type":"boolean","title":"Mcp Access"},"unmetered":{"type":"boolean","title":"Unmetered"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["client_id","provider_id","api_access","mcp_access","unmetered","updated_by","updated_at","id"],"title":"ClientProviderAccessServiceRead"},"ClientProviderAccessServiceUpdate":{"properties":{"api_access":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Api Access"},"mcp_access":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mcp Access"},"unmetered":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Unmetered"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"ClientProviderAccessServiceUpdate"},"ClientProviderAccessUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"ClientProviderAccessUpdate"},"ClientProviderDayLagUpdate":{"properties":{"provider_name":{"type":"string","title":"Provider Name"},"day_lag":{"type":"integer","title":"Day Lag"}},"type":"object","required":["provider_name","day_lag"],"title":"ClientProviderDayLagUpdate"},"ClientRead":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"type":{"type":"string","enum":["EXTERNAL","INTERNAL","EXTERNAL_SUB_USER"],"title":"Type"},"id":{"type":"string","format":"uuid4","title":"Id"},"client_id":{"type":"string","title":"Client Id"},"extra_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Info"},"is_active":{"type":"boolean","title":"Is Active"},"tag_ids":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Tag Ids"},"client_type_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Type Id"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"is_compliance_managed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Compliance Managed"},"block_compliance":{"anyOf":[{"type":"string","enum":["managed","notified","disabled"]},{"type":"null"}],"title":"Block Compliance"},"plan_tier":{"type":"string","title":"Plan Tier"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"group_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Group Ids","default":[]},"bill_to_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Bill To Email"},"bill_to_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bill To Name"},"payment_method":{"anyOf":[{"type":"string","enum":["card","ach","invoice"]},{"type":"null"}],"title":"Payment Method"},"stripe_customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Id"},"current_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Consumption"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"data_collection_consent_restricted":{"type":"boolean","title":"Data Collection Consent Restricted","default":false},"mcp_provider_access_follows_api":{"type":"boolean","title":"Mcp Provider Access Follows Api","default":true},"exchange_enabled":{"type":"boolean","title":"Exchange Enabled","default":false},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"deletion_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deletion Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"plan_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Type"}},"type":"object","required":["key","name","type","id","client_id","extra_info","is_active","tag_ids","plan_tier","created_at"],"title":"ClientRead"},"ClientRumMetricsRow":{"properties":{"avg_session_length_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Session Length Min"},"avg_frustration_count":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Frustration Count"},"avg_load_time_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Load Time Sec"},"pct_sessions_with_errors":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Sessions With Errors"},"short_name":{"type":"string","title":"Short Name"},"business_name":{"type":"string","title":"Business Name"}},"type":"object","required":["short_name","business_name"],"title":"ClientRumMetricsRow"},"ClientTypeCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"type":"object","required":["name","description"],"title":"ClientTypeCreate"},"ClientTypeRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"type":"object","required":["id","name","description"],"title":"ClientTypeRead"},"ClientUpdate":{"properties":{"name":{"type":"string","title":"Name"},"extra_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Info"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"tag_ids":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Tag Ids"},"type":{"anyOf":[{"type":"string","enum":["EXTERNAL","INTERNAL","EXTERNAL_SUB_USER"]},{"type":"null"}],"title":"Type"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"is_compliance_managed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Compliance Managed"},"block_compliance":{"anyOf":[{"type":"string","enum":["managed","notified","disabled"]},{"type":"null"}],"title":"Block Compliance"},"client_type_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Type Id"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"bill_to_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Bill To Email"},"bill_to_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bill To Name"},"payment_method":{"anyOf":[{"type":"string","enum":["card","ach","invoice"]},{"type":"null"}],"title":"Payment Method"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"data_collection_consent_restricted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Data Collection Consent Restricted"},"mcp_provider_access_follows_api":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mcp Provider Access Follows Api"}},"type":"object","required":["name","tag_ids"],"title":"ClientUpdate"},"ComplianceMode":{"type":"string","enum":["managed","notified","disabled"],"title":"ComplianceMode"},"ConsumeAgentRequest":{"properties":{"agent_id":{"type":"string","maxLength":255,"minLength":1,"title":"Agent Id"},"tool_name":{"type":"string","maxLength":255,"minLength":1,"title":"Tool Name"},"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string"}],"title":"Amount"},"tool_call_id":{"type":"string","maxLength":255,"minLength":1,"title":"Tool Call Id"}},"type":"object","required":["agent_id","tool_name","amount","tool_call_id"],"title":"ConsumeAgentRequest"},"ConsumeMcpRequest":{"properties":{"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"}],"title":"Amount"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["amount"],"title":"ConsumeMcpRequest"},"ConsumeTokensRequest":{"properties":{"token_id":{"type":"string","title":"Token Id"},"client_id":{"type":"string","title":"Client Id"},"amount":{"anyOf":[{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0},{"type":"string"}],"title":"Amount"},"reason":{"type":"string","title":"Reason"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["token_id","client_id","amount","reason"],"title":"ConsumeTokensRequest"},"ConsumptionCycleRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"opened_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Opened At"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"},"consumed_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Consumed Amount"},"is_ongoing":{"type":"boolean","title":"Is Ongoing"},"reset_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reset By"}},"type":"object","required":["id","opened_at","closed_at","consumed_amount","is_ongoing"],"title":"ConsumptionCycleRead"},"ConsumptionCyclesResponse":{"properties":{"total_ever_consumed":{"type":"number","title":"Total Ever Consumed"},"cycles":{"items":{"$ref":"#/components/schemas/ConsumptionCycleRead"},"type":"array","title":"Cycles"}},"type":"object","required":["total_ever_consumed","cycles"],"title":"ConsumptionCyclesResponse"},"CreateInvoiceRequest":{"properties":{"token_id":{"type":"string","title":"Token Id","description":"ID of the token to purchase"},"token_amount":{"type":"number","exclusiveMinimum":0.0,"title":"Token Amount","description":"Amount of tokens to purchase"},"amount_cents":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Cents","description":"Invoice amount in cents"},"description":{"type":"string","title":"Description","description":"Invoice description","default":"Token Purchase"},"send_email":{"type":"boolean","title":"Send Email","description":"Whether to email the hosted invoice URL to the customer's billing email","default":false}},"type":"object","required":["token_id","token_amount","amount_cents"],"title":"CreateInvoiceRequest"},"CreateSignupProvisioningFixtureRequest":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Optional. If omitted, a unique ltprov+<12hex>@carbonarc.co address is allocated (grep ltprov+ to find fixtures)."},"selected_plan_id":{"type":"string","title":"Selected Plan Id","default":"professional"},"subscription_period":{"type":"string","title":"Subscription Period","description":"`monthly` or `annual` (must match signup_plan_config).","default":"monthly"},"synthesize_events":{"type":"boolean","title":"Synthesize Events","description":"Insert pending_signup_events that mirror verification + payment (recommended).","default":true},"enqueue_provisioning":{"type":"boolean","title":"Enqueue Provisioning","description":"If true, enqueue `task_signup_provisioning` for this session_id.","default":false},"queue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Queue","description":"Celery queue when enqueue_provisioning is true."}},"type":"object","title":"CreateSignupProvisioningFixtureRequest","description":"Seed a PAID pending signup + Stripe-shaped JSON for ``task_signup_provisioning``."},"CreateSignupProvisioningFixtureResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"email":{"type":"string","title":"Email"},"signup_id":{"type":"string","title":"Signup Id"},"selected_plan_id":{"type":"string","title":"Selected Plan Id"},"subscription_period":{"type":"string","title":"Subscription Period"},"celery_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Celery Task Id"}},"type":"object","required":["session_id","email","signup_id","selected_plan_id","subscription_period"],"title":"CreateSignupProvisioningFixtureResponse"},"CreditEventResponse":{"properties":{"name":{"type":"string","title":"Name"},"amount":{"type":"number","title":"Amount"},"status":{"type":"string","title":"Status"},"method":{"type":"string","title":"Method"},"balance_before":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance Before"},"balance_after":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance After"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"effective_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective At"}},"type":"object","required":["name","amount","status","method","balance_before","balance_after","created_at","updated_at"],"title":"CreditEventResponse","description":"Simplified event response for credit events"},"CsvImportResult":{"properties":{"inserted":{"type":"integer","title":"Inserted"},"unmatched_rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Unmatched Rows"}},"type":"object","required":["inserted","unmatched_rows"],"title":"CsvImportResult"},"CustomerPortalResponse":{"properties":{"client_id":{"type":"string","title":"Client Id","description":"Client ID used for the request"},"stripe_customer_id":{"type":"string","title":"Stripe Customer Id","description":"Stripe customer ID found for the client"},"session_id":{"type":"string","title":"Session Id","description":"Stripe customer portal session ID"},"url":{"type":"string","title":"Url","description":"Customer portal URL"},"return_url":{"type":"string","title":"Return Url","description":"Return URL for after the session"},"customer_id":{"type":"string","title":"Customer Id","description":"Stripe customer ID"},"created":{"type":"integer","title":"Created","description":"Timestamp when the session was created"}},"type":"object","required":["client_id","stripe_customer_id","session_id","url","return_url","customer_id","created"],"title":"CustomerPortalResponse","description":"Response schema for customer portal session"},"DataCollectionConsentResponse":{"properties":{"data_collection_consent":{"type":"string","enum":["granted","not-granted"],"title":"Data Collection Consent"}},"type":"object","required":["data_collection_consent"],"title":"DataCollectionConsentResponse"},"DataSourcesHealth":{"properties":{"platform":{"type":"string","title":"Platform","default":"ok"},"s3":{"type":"string","title":"S3","default":"ok"},"polaris":{"type":"string","title":"Polaris","default":"ok"}},"type":"object","title":"DataSourcesHealth"},"DatasetAuditEntry":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"field":{"type":"string","title":"Field"},"old_value":{"anyOf":[{},{"type":"null"}],"title":"Old Value"},"new_value":{"anyOf":[{},{"type":"null"}],"title":"New Value"},"actor_id":{"type":"string","title":"Actor Id"},"actor_name":{"type":"string","title":"Actor Name"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"batch_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Batch Id"}},"type":"object","required":["id","dataset_id","field","actor_id","actor_name","timestamp"],"title":"DatasetAuditEntry"},"DatasetAuditResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DatasetAuditEntry"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"DatasetAuditResponse"},"DatasetRow":{"properties":{"dataset":{"type":"string","title":"Dataset"},"traces":{"type":"integer","title":"Traces","default":0},"errors":{"type":"integer","title":"Errors","default":0},"error_rate_pct":{"type":"number","title":"Error Rate Pct","default":0.0}},"type":"object","required":["dataset"],"title":"DatasetRow"},"DateBounds":{"properties":{"min_date":{"type":"string","title":"Min Date"},"max_date":{"type":"string","title":"Max Date"}},"type":"object","required":["min_date","max_date"],"title":"DateBounds"},"DeductTokensRequest":{"properties":{"required_token_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Token Type"},"user_email":{"type":"string","title":"User Email"},"amount":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Amount"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["user_email","amount"],"title":"DeductTokensRequest"},"DeltaClientConfigCreate":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"share_names":{"items":{"type":"string"},"type":"array","title":"Share Names"},"share_config":{"additionalProperties":true,"type":"object","title":"Share Config"}},"type":"object","required":["client_id","share_names","share_config"],"title":"DeltaClientConfigCreate"},"DeltaSchemaCreate":{"properties":{"share_id":{"type":"string","format":"uuid4","title":"Share Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["share_id","name"],"title":"DeltaSchemaCreate"},"DeltaSchemaRead":{"properties":{"share_id":{"type":"string","format":"uuid4","title":"Share Id"},"name":{"type":"string","title":"Name"},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["share_id","name","id"],"title":"DeltaSchemaRead"},"DeltaSchemaUpdate":{"properties":{"share_id":{"type":"string","format":"uuid4","title":"Share Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["share_id","name"],"title":"DeltaSchemaUpdate"},"DeltaSharesCreate":{"properties":{"name":{"type":"string","title":"Name"},"share_type":{"type":"string","title":"Share Type"}},"type":"object","required":["name","share_type"],"title":"DeltaSharesCreate"},"DeltaSharesRead":{"properties":{"name":{"type":"string","title":"Name"},"share_type":{"type":"string","title":"Share Type"},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["name","share_type","id"],"title":"DeltaSharesRead"},"DeltaSharesUpdate":{"properties":{"name":{"type":"string","title":"Name"},"share_type":{"type":"string","title":"Share Type"}},"type":"object","required":["name","share_type"],"title":"DeltaSharesUpdate"},"DeltaTableCreate":{"properties":{"schema_id":{"type":"string","format":"uuid4","title":"Schema Id"},"name":{"type":"string","title":"Name"},"location":{"type":"string","title":"Location"}},"type":"object","required":["schema_id","name","location"],"title":"DeltaTableCreate"},"DeltaTableRead":{"properties":{"schema_id":{"type":"string","format":"uuid4","title":"Schema Id"},"name":{"type":"string","title":"Name"},"location":{"type":"string","title":"Location"},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["schema_id","name","location","id"],"title":"DeltaTableRead"},"DeltaTableUpdate":{"properties":{"schema_id":{"type":"string","format":"uuid4","title":"Schema Id"},"name":{"type":"string","title":"Name"},"location":{"type":"string","title":"Location"}},"type":"object","required":["schema_id","name","location"],"title":"DeltaTableUpdate"},"DiscountDetail":{"properties":{"discount_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Discount Id"},"promo_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Promo Code"},"promotion_code_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Promotion Code Id"},"coupon_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Id"},"coupon_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Name"},"percent_off":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent Off"},"amount_off":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Off"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"duration_in_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration In Months"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End"},"first_seen_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen At"}},"type":"object","title":"DiscountDetail","description":"A single discount entry from discount_history."},"EffectiveMemberRead":{"properties":{"email":{"type":"string","title":"Email"},"source":{"type":"string","enum":["manual","cams"],"title":"Source"},"member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Member Id"},"added_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Added At"},"added_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Added By"},"admin_group_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Admin Group Id"},"cams_group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cams Group Name"}},"type":"object","required":["email","source"],"title":"EffectiveMemberRead","description":"A resolved recipient — either a manually-added member or a user from a linked CAMS group."},"EmailNotificationCreate":{"properties":{"subject":{"type":"string","maxLength":300,"minLength":1,"title":"Subject"},"preview_text":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Preview Text"},"body":{"type":"string","maxLength":524288,"minLength":1,"title":"Body"},"audience":{"$ref":"#/components/schemas/AudienceFilter"},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For"}},"type":"object","required":["subject","body","audience"],"title":"EmailNotificationCreate","description":"Payload for ``POST /email-notifications`` (saves a draft)."},"EmailNotificationRecipientResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"},"status":{"type":"string","enum":["pending","sent","failed"],"title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"}},"type":"object","required":["id","email","first_name","last_name","client_id","status","error_message","sent_at"],"title":"EmailNotificationRecipientResponse"},"EmailNotificationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"subject":{"type":"string","title":"Subject"},"preview_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Text"},"body":{"type":"string","title":"Body"},"from_name":{"type":"string","title":"From Name"},"from_address":{"type":"string","title":"From Address"},"status":{"type":"string","enum":["draft","sending","sent","failed"],"title":"Status"},"audience":{"$ref":"#/components/schemas/AudienceFilter"},"recipient_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recipient Count"},"sent_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sent Count"},"failed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failed Count"},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","subject","preview_text","body","from_name","from_address","status","audience","recipient_count","sent_count","failed_count","scheduled_for","sent_at","created_by","created_at","updated_at"],"title":"EmailNotificationResponse","description":"Wire-format for a notification record. Mirrors the TS\n``EmailNotification`` interface. ``from_name`` / ``from_address`` are\nreturned on every response so the detail page can show recipients what\nsender was used — but they're always the configured operational sender."},"EmailNotificationUpdate":{"properties":{"subject":{"anyOf":[{"type":"string","maxLength":300,"minLength":1},{"type":"null"}],"title":"Subject"},"preview_text":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Preview Text"},"body":{"anyOf":[{"type":"string","maxLength":524288,"minLength":1},{"type":"null"}],"title":"Body"},"audience":{"anyOf":[{"$ref":"#/components/schemas/AudienceFilter"},{"type":"null"}]},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For"}},"type":"object","title":"EmailNotificationUpdate","description":"Payload for ``PUT /email-notifications/{id}`` (draft edits only)."},"EmailRecipientGroupCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"EmailRecipientGroupCreate"},"EmailRecipientGroupMemberCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"EmailRecipientGroupMemberCreate"},"EmailRecipientGroupMemberRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"group_id":{"type":"string","format":"uuid","title":"Group Id"},"email":{"type":"string","title":"Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","group_id","email","created_at","created_by"],"title":"EmailRecipientGroupMemberRead"},"EmailRecipientGroupRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"member_count":{"type":"integer","title":"Member Count"},"linked_groups_count":{"type":"integer","title":"Linked Groups Count"},"total_recipient_count":{"type":"integer","title":"Total Recipient Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","name","description","member_count","linked_groups_count","total_recipient_count","created_at","updated_at","created_by"],"title":"EmailRecipientGroupRead"},"EmailRecipientGroupUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"EmailRecipientGroupUpdate"},"EmailTriggerCreate":{"properties":{"key":{"type":"string","maxLength":200,"minLength":1,"title":"Key"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["key","name"],"title":"EmailTriggerCreate"},"EmailTriggerEmailsResponse":{"properties":{"emails":{"items":{"type":"string"},"type":"array","title":"Emails"}},"type":"object","required":["emails"],"title":"EmailTriggerEmailsResponse"},"EmailTriggerRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"group_count":{"type":"integer","title":"Group Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","key","name","description","group_count","created_at","updated_at","created_by"],"title":"EmailTriggerRead"},"EmailTriggerUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"EmailTriggerUpdate"},"EmailVerificationResendResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["session_id","status"],"title":"EmailVerificationResendResponse"},"EmailVerificationVerifyRequest":{"properties":{"code":{"type":"string","maxLength":32,"minLength":1,"title":"Code","description":"Verification code from the email (digits only; spaces or separators between digits are ignored)."}},"type":"object","required":["code"],"title":"EmailVerificationVerifyRequest"},"EmailVerificationVerifyResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["session_id","status"],"title":"EmailVerificationVerifyResponse"},"EnqueueRequest":{"properties":{"task_name":{"type":"string","title":"Task Name"},"kwargs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Kwargs"},"queue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Queue"}},"type":"object","required":["task_name"],"title":"EnqueueRequest"},"EnqueueResponse":{"properties":{"task_id":{"type":"string","title":"Task Id"},"task_name":{"type":"string","title":"Task Name"},"queue":{"type":"string","title":"Queue"}},"type":"object","required":["task_id","task_name","queue"],"title":"EnqueueResponse"},"EnsureSufficientRequest":{"properties":{"required_token_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Token Type"},"user_email":{"type":"string","title":"User Email"},"required_tokens":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Required Tokens"},"usage_scope":{"type":"string","title":"Usage Scope","default":"platform"}},"type":"object","required":["user_email","required_tokens"],"title":"EnsureSufficientRequest"},"EnterpriseChannelRule":{"properties":{"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"api_access_denied":{"type":"boolean","title":"Api Access Denied","default":false},"mcp_access_denied":{"type":"boolean","title":"Mcp Access Denied","default":false}},"type":"object","required":["client_id"],"title":"EnterpriseChannelRule"},"EnterpriseFields":{"properties":{"mcp_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Amount","description":"MCP subscription item unit amount (dollars) from stripe_subscription_items"},"mcp_billing_cycle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp Billing Cycle","description":"MCP subscription item recurring interval (e.g. month/year) from stripe_subscription_items"}},"type":"object","title":"EnterpriseFields"},"EnterpriseSubscriptionCreate":{"properties":{"client_id":{"type":"string","format":"uuid","title":"Client Id","description":"CAMS client UUID — used to look up Stripe customer and auto-populate metadata"},"product_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Product Id","description":"CAMS product UUID for metadata. If omitted, defaults to the platform (Insights Platform) product."},"items":{"items":{"$ref":"#/components/schemas/EnterpriseSubscriptionLineItem"},"type":"array","minItems":1,"title":"Items","description":"One or more line items (price + quantity)"},"subscription_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Subscription Start Date","description":"When the subscription period begins (Duration in Stripe)"},"billing_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Billing Start Date","description":"When billing starts (used as trial_end — supports dates beyond 30 days)"},"cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel At","description":"Scheduled cancellation date"},"trial_period_days":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Trial Period Days"},"collection_method":{"anyOf":[{"type":"string","enum":["charge_automatically","send_invoice"]},{"type":"null"}],"title":"Collection Method"},"days_until_due":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Days Until Due","description":"Days until invoice due (defaults to 30 for send_invoice)"},"payment_behavior":{"anyOf":[{"type":"string","enum":["default_incomplete","allow_incomplete","error_if_incomplete"]},{"type":"null"}],"title":"Payment Behavior"}},"type":"object","required":["client_id","items"],"title":"EnterpriseSubscriptionCreate","description":"Schema for creating an enterprise Stripe subscription with multiple products."},"EnterpriseSubscriptionLineItem":{"properties":{"price":{"type":"string","title":"Price","description":"Stripe price ID"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1}},"type":"object","required":["price"],"title":"EnterpriseSubscriptionLineItem"},"EnterpriseSubscriptionResponse":{"properties":{"id":{"type":"string","title":"Id"},"customer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"current_period_start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Period Start"},"current_period_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Period End"},"cancel_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cancel At"},"trial_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trial End"},"collection_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Method"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"livemode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Livemode"}},"type":"object","required":["id"],"title":"EnterpriseSubscriptionResponse"},"ErrorCodeHeatmapCell":{"properties":{"tool":{"type":"string","title":"Tool"},"error_code":{"type":"string","title":"Error Code"},"count":{"type":"integer","title":"Count","default":0}},"type":"object","required":["tool","error_code"],"title":"ErrorCodeHeatmapCell"},"ErrorCodeRow":{"properties":{"error_code":{"type":"string","title":"Error Code"},"count":{"type":"integer","title":"Count","default":0},"pct_of_errors":{"type":"number","title":"Pct Of Errors","default":0.0},"median_latency":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Latency"}},"type":"object","required":["error_code"],"title":"ErrorCodeRow"},"ErrorTypeOption":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label","default":""}},"type":"object","required":["value"],"title":"ErrorTypeOption"},"EvalConfig":{"properties":{"profiles":{"items":{"type":"string"},"type":"array","title":"Profiles"},"datasets":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Datasets"},"personas":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Personas"}},"type":"object","required":["profiles","datasets","personas"],"title":"EvalConfig"},"EvalJob":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"output_lines":{"items":{"type":"string"},"type":"array","title":"Output Lines"},"started_at":{"type":"string","title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"args":{"additionalProperties":true,"type":"object","title":"Args"},"git_branch":{"type":"string","title":"Git Branch","default":""},"git_hash":{"type":"string","title":"Git Hash","default":""},"git_url":{"type":"string","title":"Git Url","default":""},"created_by":{"type":"string","title":"Created By","default":""}},"type":"object","required":["job_id","status","output_lines","started_at","args"],"title":"EvalJob"},"EvalRunRequest":{"properties":{"endpoints":{"items":{"type":"string"},"type":"array","title":"Endpoints"},"dataset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset"},"no_dataset":{"type":"boolean","title":"No Dataset","default":false},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"},"limit":{"type":"integer","title":"Limit","default":3},"max_turns":{"type":"integer","title":"Max Turns","default":3},"max_tool_calls":{"type":"integer","title":"Max Tool Calls","default":10},"runs":{"type":"integer","title":"Runs","default":1},"experiment":{"type":"string","title":"Experiment","default":"mcp-conversation-eval"},"simulate":{"type":"boolean","title":"Simulate","default":false},"host":{"type":"string","title":"Host","default":"http://localhost:8080"}},"type":"object","required":["endpoints"],"title":"EvalRunRequest"},"FeatureCreate":{"properties":{"name":{"type":"string","title":"Name"},"product_id":{"type":"string","format":"uuid4","title":"Product Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","product_id"],"title":"FeatureCreate"},"FeatureDataSourceLinkCreate":{"properties":{"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"data_source_id":{"type":"string","format":"uuid4","title":"Data Source Id"}},"type":"object","required":["feature_id","data_source_id"],"title":"FeatureDataSourceLinkCreate"},"FeatureDataSourceLinkRead":{"properties":{"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"data_source_id":{"type":"string","format":"uuid4","title":"Data Source Id"},"name":{"type":"string","title":"Name"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["feature_id","data_source_id","name","id"],"title":"FeatureDataSourceLinkRead"},"FeatureElementDataSourceCreate":{"properties":{"name":{"type":"string","title":"Name"},"data_source":{"type":"string","title":"Data Source"}},"type":"object","required":["name","data_source"],"title":"FeatureElementDataSourceCreate"},"FeatureElementDataSourceRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"data_source":{"type":"string"},"data":{"items":{},"type":"array","title":"Data"}},"type":"object","required":["id","name","data_source","data"],"title":"FeatureElementDataSourceRead"},"FeatureElementRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"data_source_id":{"type":"string","format":"uuid4","title":"Data Source Id"},"element_id":{"type":"string","title":"Element Id"},"element_label":{"type":"string","title":"Element Label"},"element_info":{"additionalProperties":true,"type":"object","title":"Element Info"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","feature_id","data_source_id","element_id","element_label","element_info","active"],"title":"FeatureElementRead"},"FeatureFlagCreate":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_global":{"type":"boolean","title":"Is Global","default":false},"value_type":{"anyOf":[{"$ref":"#/components/schemas/FeatureFlagValueType"},{"type":"null"}]},"product_ids":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Product Ids"}},"type":"object","required":["name","value","product_ids"],"title":"FeatureFlagCreate"},"FeatureFlagRead":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_global":{"type":"boolean","title":"Is Global","default":false},"value_type":{"anyOf":[{"$ref":"#/components/schemas/FeatureFlagValueType"},{"type":"null"}]},"id":{"type":"string","format":"uuid4","title":"Id"},"product_ids":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Product Ids","default":[]},"is_boolean":{"type":"boolean","title":"Is Boolean","default":false}},"type":"object","required":["name","value","id"],"title":"FeatureFlagRead"},"FeatureFlagUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"product_ids":{"anyOf":[{"items":{"type":"string","format":"uuid4"},"type":"array"},{"type":"null"}],"title":"Product Ids"},"value_type":{"anyOf":[{"$ref":"#/components/schemas/FeatureFlagValueType"},{"type":"null"}]}},"type":"object","title":"FeatureFlagUpdate"},"FeatureFlagValueType":{"type":"string","enum":["any","boolean","integer","string","json"],"title":"FeatureFlagValueType"},"FeatureRead":{"properties":{"name":{"type":"string","title":"Name"},"product_id":{"type":"string","format":"uuid4","title":"Product Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"type":"string","format":"uuid4","title":"Id"},"key":{"type":"string","title":"Key"}},"type":"object","required":["name","product_id","id","key"],"title":"FeatureRead"},"FeatureUpdate":{"properties":{"product_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Product Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"key":{"type":"string","title":"Key"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["key"],"title":"FeatureUpdate"},"FeaturedEntityRead":{"properties":{"entity_id":{"type":"integer","title":"Entity Id"},"entity_name":{"type":"string","title":"Entity Name"},"representation":{"type":"string","title":"Representation"}},"type":"object","required":["entity_id","entity_name","representation"],"title":"FeaturedEntityRead"},"FeaturedInsightRead":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"subject":{"type":"string","title":"Subject"},"topic":{"type":"string","title":"Topic"},"insight_label":{"type":"string","title":"Insight Label"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["insight_id","dataset_id","subject","topic","insight_label","id"],"title":"FeaturedInsightRead"},"FeaturedItemsResponse":{"properties":{"entities":{"items":{"$ref":"#/components/schemas/FeaturedEntityRead"},"type":"array","title":"Entities"},"insights":{"items":{"$ref":"#/components/schemas/FeaturedInsightRead"},"type":"array","title":"Insights"}},"type":"object","required":["entities","insights"],"title":"FeaturedItemsResponse"},"FiltersResponse":{"properties":{"clients":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Clients"},"plan_tiers":{"items":{"type":"string"},"type":"array","title":"Plan Tiers"},"data_sources":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Data Sources"},"metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Metrics"}},"type":"object","required":["clients","plan_tiers","data_sources","metrics"],"title":"FiltersResponse"},"GroupCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Allocated Amount"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default","default":false},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","default":{}},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids","default":[]},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]}},"type":"object","required":["name","client_id"],"title":"GroupCreate"},"GroupRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Allocated Amount"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default","default":false},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","default":{}},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids","default":[]},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"id":{"type":"string","format":"uuid","title":"Id"},"key":{"type":"string","title":"Key"},"current_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Consumption"},"mcp_period_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Period Limit"},"mcp_period_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Period Consumption"},"mcp_period_reset_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mcp Period Reset Date"},"mcp_period_next_reset_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mcp Period Next Reset Date"},"mcp_period_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mcp Period Start Date"}},"type":"object","required":["name","client_id","id","key"],"title":"GroupRead"},"GroupUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Allocated Amount"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids","default":[]},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]}},"type":"object","title":"GroupUpdate"},"GroupsPageRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Allocated Amount"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default","default":false},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","default":{}},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids","default":[]},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"id":{"type":"string","format":"uuid","title":"Id"},"key":{"type":"string","title":"Key"},"current_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Consumption"},"mcp_period_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Period Limit"},"mcp_period_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Period Consumption"},"mcp_period_reset_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mcp Period Reset Date"},"mcp_period_next_reset_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mcp Period Next Reset Date"},"mcp_period_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Mcp Period Start Date"},"client_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Client Limit"}},"type":"object","required":["name","client_id","id","key"],"title":"GroupsPageRead"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HierarchyNode":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"integer","title":"Value","default":0},"children":{"items":{"$ref":"#/components/schemas/HierarchyNode"},"type":"array","title":"Children","default":[]}},"type":"object","required":["name"],"title":"HierarchyNode"},"InProgressOutreachSettingsRead":{"properties":{"outreach_enabled":{"$ref":"#/components/schemas/SettingField_bool_"},"threshold_minutes":{"$ref":"#/components/schemas/SettingField_int_"},"watcher_interval_minutes":{"type":"integer","title":"Watcher Interval Minutes"}},"type":"object","required":["outreach_enabled","threshold_minutes","watcher_interval_minutes"],"title":"InProgressOutreachSettingsRead","description":"Current customer outreach tuning for in-progress signups (PRO-825)."},"InProgressOutreachSettingsUpdate":{"properties":{"outreach_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Outreach Enabled"},"threshold_minutes":{"anyOf":[{"type":"integer","maximum":10080.0,"minimum":1.0},{"type":"null"}],"title":"Threshold Minutes"},"rationale":{"type":"string","maxLength":500,"title":"Rationale","description":"Required. Why this change is being made (min 3 characters, trimmed)."}},"type":"object","required":["rationale"],"title":"InProgressOutreachSettingsUpdate","description":"Payload to update in-progress outreach tuning. Omitted value fields are\nleft untouched. ``rationale`` is always required on PATCH."},"InsightErrorRow":{"properties":{"insight":{"type":"string","title":"Insight"},"total_traces":{"type":"integer","title":"Total Traces","default":0},"error_traces":{"type":"integer","title":"Error Traces","default":0},"error_rate":{"type":"number","title":"Error Rate","default":0.0}},"type":"object","required":["insight"],"title":"InsightErrorRow"},"InterestsUpdate":{"properties":{"add":{"items":{"$ref":"#/components/schemas/UserInterestCreate"},"type":"array","title":"Add","default":[]},"remove":{"items":{"type":"string","format":"uuid4"},"type":"array","title":"Remove","default":[]}},"type":"object","title":"InterestsUpdate"},"InternalQueueStep":{"type":"string","enum":["accounts","legal","engineering","complete"],"title":"InternalQueueStep"},"InvoiceResponse":{"properties":{"invoice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoice Id"},"stripe_invoice_id":{"type":"string","title":"Stripe Invoice Id"},"payment_id":{"type":"string","title":"Payment Id"},"hosted_invoice_url":{"type":"string","title":"Hosted Invoice Url"},"status":{"type":"string","title":"Status"},"token_amount":{"type":"number","title":"Token Amount"},"amount_cents":{"type":"integer","title":"Amount Cents"},"collection_method":{"type":"string","title":"Collection Method"},"email_sent":{"type":"boolean","title":"Email Sent","default":false},"email_status":{"type":"string","title":"Email Status"},"email_error":{"type":"string","title":"Email Error"}},"type":"object","required":["stripe_invoice_id","payment_id","hosted_invoice_url","status","token_amount","amount_cents","collection_method"],"title":"InvoiceResponse"},"InvoicesResponse":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/StripeInvoiceItem"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"InvoicesResponse"},"IssuePromotionalGrantsRequest":{"properties":{"amount":{"anyOf":[{"type":"number","maximum":100000.0},{"type":"string"}],"title":"Amount","description":"Maximum 100,000 tokens allowed per allocation"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["amount","effective_at","expires_at"],"title":"IssuePromotionalGrantsRequest"},"IssueTokensOneTimeRequest":{"properties":{"token_id":{"type":"string","title":"Token Id"},"client_id":{"type":"string","title":"Client Id"},"amount":{"anyOf":[{"type":"number","maximum":1000000.0,"minimum":0.0},{"type":"string"}],"title":"Amount"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"reason":{"type":"string","title":"Reason"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["token_id","client_id","amount","reason"],"title":"IssueTokensOneTimeRequest"},"IssueTokensRecurringRequest":{"properties":{"token_id":{"type":"string","title":"Token Id"},"client_id":{"type":"string","title":"Client Id"},"amount_per_occurrence":{"anyOf":[{"type":"number","maximum":1000000.0,"minimum":0.0},{"type":"string"}],"title":"Amount Per Occurrence"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"recurrence_unit":{"$ref":"#/components/schemas/ScheduledLedgerRecurrenceUnit"},"interval":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Interval","default":1},"max_occurrences":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Max Occurrences"},"token_expires_days":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Token Expires Days"},"reason":{"type":"string","title":"Reason"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["token_id","client_id","amount_per_occurrence","start_at","recurrence_unit","max_occurrences","reason"],"title":"IssueTokensRecurringRequest"},"KPIClientEntry":{"properties":{"short_name":{"type":"string","title":"Short Name"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"plan_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tier"}},"type":"object","required":["short_name"],"title":"KPIClientEntry"},"KPIConsumptionEntry":{"properties":{"short_name":{"type":"string","title":"Short Name"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"plan_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Tier"},"value":{"type":"number","title":"Value","default":0.0}},"type":"object","required":["short_name"],"title":"KPIConsumptionEntry"},"KPIMetricDiff":{"properties":{"tier":{"type":"string","title":"Tier"},"metric":{"type":"string","title":"Metric"},"ours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ours"},"coles":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coles"},"diff":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Diff"},"match":{"type":"boolean","title":"Match","default":false}},"type":"object","required":["tier","metric"],"title":"KPIMetricDiff"},"KPITierDrilldown":{"properties":{"roster":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"Roster","default":[]},"signups":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"Signups","default":[]},"runoff":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"Runoff","default":[]},"c_churn":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"C Churn","default":[]},"e_churn":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"E Churn","default":[]},"eng_90d":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"Eng 90D","default":[]},"engaged_7d":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"Engaged 7D","default":[]},"engaged_30d":{"items":{"$ref":"#/components/schemas/KPIClientEntry"},"type":"array","title":"Engaged 30D","default":[]},"api_calls_7d":{"items":{"$ref":"#/components/schemas/KPIConsumptionEntry"},"type":"array","title":"Api Calls 7D","default":[]},"s3_calls_7d":{"items":{"$ref":"#/components/schemas/KPIConsumptionEntry"},"type":"array","title":"S3 Calls 7D","default":[]},"s3_mb_7d":{"items":{"$ref":"#/components/schemas/KPIConsumptionEntry"},"type":"array","title":"S3 Mb 7D","default":[]},"platform_tok_7d":{"items":{"$ref":"#/components/schemas/KPIConsumptionEntry"},"type":"array","title":"Platform Tok 7D","default":[]},"mcp_tok_7d":{"items":{"$ref":"#/components/schemas/KPIConsumptionEntry"},"type":"array","title":"Mcp Tok 7D","default":[]}},"type":"object","title":"KPITierDrilldown"},"KPITierMetrics":{"properties":{"roster":{"type":"integer","title":"Roster","default":0},"signups":{"type":"integer","title":"Signups","default":0},"runoff":{"type":"integer","title":"Runoff","default":0},"c_churn":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"C Churn"},"e_churn":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"E Churn"},"eng_90d":{"type":"integer","title":"Eng 90D","default":0},"engaged_7d":{"type":"integer","title":"Engaged 7D","default":0},"engaged_30d":{"type":"integer","title":"Engaged 30D","default":0},"api_calls_7d":{"type":"number","title":"Api Calls 7D","default":0},"s3_calls_7d":{"type":"number","title":"S3 Calls 7D","default":0},"s3_mb_7d":{"type":"number","title":"S3 Mb 7D","default":0},"platform_tok_7d":{"type":"number","title":"Platform Tok 7D","default":0},"mcp_tok_7d":{"type":"number","title":"Mcp Tok 7D","default":0}},"type":"object","title":"KPITierMetrics"},"KPIWeeklyBackfillResponse":{"properties":{"weeks_processed":{"type":"integer","title":"Weeks Processed"},"weeks":{"items":{"$ref":"#/components/schemas/KPIWeeklyBackfillWeek"},"type":"array","title":"Weeks"}},"type":"object","required":["weeks_processed","weeks"],"title":"KPIWeeklyBackfillResponse"},"KPIWeeklyBackfillWeek":{"properties":{"week_ending":{"type":"string","format":"date","title":"Week Ending"},"saved":{"type":"boolean","title":"Saved"},"comparison":{"anyOf":[{"items":{"$ref":"#/components/schemas/KPIMetricDiff"},"type":"array"},{"type":"null"}],"title":"Comparison"}},"type":"object","required":["week_ending","saved"],"title":"KPIWeeklyBackfillWeek"},"KPIWeeklyCounts":{"properties":{"enterprise":{"$ref":"#/components/schemas/KPITierMetrics"},"business":{"$ref":"#/components/schemas/KPITierMetrics"},"professional":{"$ref":"#/components/schemas/KPITierMetrics"},"all_tiers":{"$ref":"#/components/schemas/KPITierMetrics"}},"type":"object","required":["enterprise","business","professional","all_tiers"],"title":"KPIWeeklyCounts"},"KPIWeeklyDrilldownResponse":{"properties":{"week_ending":{"type":"string","format":"date","title":"Week Ending"},"validation":{"$ref":"#/components/schemas/KPIWeeklyCounts"},"enterprise":{"$ref":"#/components/schemas/KPITierDrilldown"},"business":{"$ref":"#/components/schemas/KPITierDrilldown"},"professional":{"$ref":"#/components/schemas/KPITierDrilldown"},"all_tiers":{"$ref":"#/components/schemas/KPITierDrilldown"}},"type":"object","required":["week_ending","validation","enterprise","business","professional","all_tiers"],"title":"KPIWeeklyDrilldownResponse"},"KPIWeeklyHistoryResponse":{"properties":{"weeks":{"items":{"$ref":"#/components/schemas/KPIWeeklyResponse"},"type":"array","title":"Weeks"}},"type":"object","required":["weeks"],"title":"KPIWeeklyHistoryResponse"},"KPIWeeklyResponse":{"properties":{"week_ending":{"type":"string","format":"date","title":"Week Ending"},"enterprise":{"$ref":"#/components/schemas/KPITierMetrics"},"business":{"$ref":"#/components/schemas/KPITierMetrics"},"professional":{"$ref":"#/components/schemas/KPITierMetrics"},"all_tiers":{"$ref":"#/components/schemas/KPITierMetrics"}},"type":"object","required":["week_ending","enterprise","business","professional","all_tiers"],"title":"KPIWeeklyResponse"},"KpiSummary":{"properties":{"total_traces":{"type":"integer","title":"Total Traces","default":0},"errors":{"type":"integer","title":"Errors","default":0},"error_rate":{"type":"number","title":"Error Rate","default":0.0},"unique_users":{"type":"integer","title":"Unique Users","default":0},"unique_sessions":{"type":"integer","title":"Unique Sessions","default":0},"median_latency":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Latency"},"p95_latency":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Latency"}},"type":"object","title":"KpiSummary"},"LatencyByErrorCode":{"properties":{"error_code":{"type":"string","title":"Error Code"},"label":{"type":"string","title":"Label"},"median_latency":{"type":"number","title":"Median Latency","default":0.0},"count":{"type":"integer","title":"Count","default":0}},"type":"object","required":["error_code","label"],"title":"LatencyByErrorCode"},"LatencyByTool":{"properties":{"tool":{"type":"string","title":"Tool"},"median_latency":{"type":"number","title":"Median Latency","default":0.0}},"type":"object","required":["tool"],"title":"LatencyByTool"},"LatencyTimePoint":{"properties":{"period":{"type":"string","title":"Period"},"outcome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outcome"},"median_latency":{"type":"number","title":"Median Latency","default":0.0}},"type":"object","required":["period"],"title":"LatencyTimePoint"},"LatestPrivacyPolicyVersionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"content":{"type":"string","title":"Content"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"}},"type":"object","required":["id","content","effective_at"],"title":"LatestPrivacyPolicyVersionResponse"},"LatestSignupTOUVersionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"content":{"type":"string","title":"Content"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"}},"type":"object","required":["id","content","effective_at"],"title":"LatestSignupTOUVersionResponse"},"LedgerClientAccountItem":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"token_name":{"type":"string","title":"Token Name"},"token_type":{"type":"string","title":"Token Type"},"usage_scope":{"type":"string","title":"Usage Scope"},"balance":{"type":"string","title":"Balance"},"total_credited":{"type":"string","title":"Total Credited"},"total_debited":{"type":"string","title":"Total Debited"},"today_credited":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Today Credited"},"today_debited":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Today Debited"},"expires_days_policy":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires Days Policy"},"never_expires":{"type":"boolean","title":"Never Expires","default":false},"earliest_expiry":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliest Expiry"},"latest_expiry":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Expiry"},"expiring":{"items":{"$ref":"#/components/schemas/LedgerExpiringAmountItem"},"type":"array","title":"Expiring"},"upcoming_issuance":{"items":{"$ref":"#/components/schemas/LedgerUpcomingIssuanceItem"},"type":"array","title":"Upcoming Issuance"}},"type":"object","required":["account_id","client_id","token_id","token_name","token_type","usage_scope","balance","total_credited","total_debited"],"title":"LedgerClientAccountItem"},"LedgerClientAccountsResponse":{"properties":{"client_id":{"type":"string","format":"uuid","title":"Client Id"},"accounts":{"items":{"$ref":"#/components/schemas/LedgerClientAccountItem"},"type":"array","title":"Accounts"}},"type":"object","required":["client_id","accounts"],"title":"LedgerClientAccountsResponse"},"LedgerEntryDirection":{"type":"string","enum":["debit","credit"],"title":"LedgerEntryDirection"},"LedgerExpiringAmountItem":{"properties":{"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"amount":{"type":"string","title":"Amount"}},"type":"object","required":["expires_at","amount"],"title":"LedgerExpiringAmountItem"},"LedgerTransactionDetailResponse":{"properties":{"transaction":{"$ref":"#/components/schemas/LedgerTransactionListItem"},"entries":{"items":{"$ref":"#/components/schemas/LedgerTransactionEntryItem"},"type":"array","title":"Entries"},"remaining_amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remaining Amount"}},"type":"object","required":["transaction"],"title":"LedgerTransactionDetailResponse"},"LedgerTransactionEntryItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"account_id":{"type":"string","format":"uuid","title":"Account Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"token_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Name"},"direction":{"$ref":"#/components/schemas/LedgerEntryDirection"},"amount":{"type":"string","title":"Amount"},"entry_order":{"type":"integer","title":"Entry Order"},"source_entry_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Entry Id"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"}},"type":"object","required":["id","account_id","token_id","direction","amount","entry_order"],"title":"LedgerTransactionEntryItem","description":"A single entry that hit a client account for the transaction."},"LedgerTransactionListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"usage_scope":{"type":"string","title":"Usage Scope"},"transaction_type":{"$ref":"#/components/schemas/LedgerTransactionType"},"direction":{"type":"string","enum":["credit","debit"],"title":"Direction"},"amount":{"type":"string","title":"Amount"},"balance_before":{"type":"string","title":"Balance Before"},"balance_after":{"type":"string","title":"Balance After"},"token_count":{"type":"integer","title":"Token Count","default":0},"token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Token Id"},"token_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Name"},"token_names":{"items":{"type":"string"},"type":"array","title":"Token Names"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"issuer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"effective_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"}},"type":"object","required":["id","client_id","usage_scope","transaction_type","direction","amount","balance_before","balance_after","created_at"],"title":"LedgerTransactionListItem","description":"Ledger transaction list item for admin UI (new schema)."},"LedgerTransactionListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/LedgerTransactionListItem"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"LedgerTransactionListResponse"},"LedgerTransactionType":{"type":"string","enum":["purchase","consume","promotion","expiration","adjustment","marketplace"],"title":"LedgerTransactionType"},"LedgerTransactionsCountResponse":{"properties":{"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"},"since":{"type":"string","format":"date-time","title":"Since"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["since","count"],"title":"LedgerTransactionsCountResponse","description":"Simple count response for dashboard KPI cards."},"LedgerUpcomingIssuanceItem":{"properties":{"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"amount":{"type":"string","title":"Amount"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["effective_at","amount"],"title":"LedgerUpcomingIssuanceItem"},"LedgerUpcomingIssueListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"token_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Name"},"usage_scope":{"type":"string","title":"Usage Scope"},"action_type":{"type":"string","title":"Action Type"},"status":{"type":"string","title":"Status"},"direction":{"type":"string","enum":["credit","debit"],"title":"Direction","default":"credit"},"transaction_type":{"anyOf":[{"$ref":"#/components/schemas/LedgerTransactionType"},{"type":"null"}]},"amount":{"type":"string","title":"Amount"},"scheduled_at":{"type":"string","format":"date-time","title":"Scheduled At"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"token_expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Token Expires Days"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"target_transaction_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Target Transaction Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"}},"type":"object","required":["id","client_id","token_id","usage_scope","action_type","status","amount","scheduled_at","effective_at","created_at"],"title":"LedgerUpcomingIssueListItem","description":"Upcoming scheduled ledger work: one-time issues, recurring next run, expirations."},"LedgerUpcomingIssueListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/LedgerUpcomingIssueListItem"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"LedgerUpcomingIssueListResponse"},"LedgerWalletBalanceItem":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"token_name":{"type":"string","title":"Token Name"},"token_key":{"type":"string","title":"Token Key"},"wallet_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Type"},"balance":{"type":"number","title":"Balance"},"min_balance":{"type":"number","minimum":0.0,"title":"Min Balance"},"max_balance":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Max Balance"},"earliest_expiry_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Earliest Expiry At"},"latest_expiry_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Expiry At"}},"type":"object","required":["account_id","token_id","token_name","token_key","balance","min_balance"],"title":"LedgerWalletBalanceItem","description":"Ledger-native wallet row grouped by client account/token."},"LedgerWalletExpiryScheduleItem":{"properties":{"amount":{"type":"string","title":"Amount"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"wallet_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Type"},"token_key":{"type":"string","title":"Token Key"}},"type":"object","required":["amount","expires_at","token_key"],"title":"LedgerWalletExpiryScheduleItem"},"LedgerWalletSummaryResponse":{"properties":{"scope_balances":{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object","title":"Scope Balances"},"wallets":{"items":{"$ref":"#/components/schemas/LedgerWalletBalanceItem"},"type":"array","title":"Wallets"},"expiry_schedule":{"items":{"$ref":"#/components/schemas/LedgerWalletExpiryScheduleItem"},"type":"array","title":"Expiry Schedule"}},"type":"object","required":["scope_balances","wallets","expiry_schedule"],"title":"LedgerWalletSummaryResponse","description":"Client wallet summary tailored for ledger-based UI consumption."},"LensesArtifactEventCreate":{"properties":{"event_type":{"type":"string","maxLength":10,"pattern":"^(pin|unpin)$","title":"Event Type","description":"Type of artifact event: 'pin' or 'unpin'"},"artifact_id":{"type":"string","maxLength":100,"title":"Artifact Id","description":"UUID of the artifact"},"artifact_type":{"type":"string","maxLength":30,"title":"Artifact Type","description":"Type of artifact: markdown, chart, executive-summary, follow-up"},"session_id":{"type":"string","maxLength":100,"title":"Session Id","description":"Lenses chat session ID the artifact belongs to"},"user_email":{"type":"string","format":"email","title":"User Email","description":"Email of the user who performed the action"},"client_name":{"type":"string","maxLength":255,"title":"Client Name","description":"Name of the client/organization the user belongs to"},"title":{"type":"string","maxLength":500,"title":"Title","description":"Display title of the artifact"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Timestamp of the event (defaults to now if not provided)"}},"type":"object","required":["event_type","artifact_id","artifact_type","session_id","user_email","client_name","title"],"title":"LensesArtifactEventCreate","description":"Schema for creating a Lenses artifact analytics event.","example":{"artifact_id":"7abf23dd-2eb7-424a-a9e5-b764cae0e88e","artifact_type":"chart","client_name":"carbonarc","created_at":"2026-04-10T15:00:00Z","event_type":"pin","session_id":"lenses-7abf23dd-2eb7-424a-a9e5-b764cae0e88e","title":"Walmart vs Target card spend","user_email":"karl.deek@carbonarc.co"}},"LensesArtifactEventResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"message":{"type":"string","title":"Message","default":"Event recorded successfully"}},"type":"object","required":["id"],"title":"LensesArtifactEventResponse","description":"Response schema for artifact event creation.","example":{"id":"7abf23dd-2eb7-424a-a9e5-b764cae0e88e","message":"Event recorded successfully"}},"LensesJudgeVerdictCreate":{"properties":{"trace_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Trace Id"},"session_id":{"type":"string","maxLength":100,"title":"Session Id"},"judge_model":{"type":"string","maxLength":100,"title":"Judge Model"},"question":{"type":"string","title":"Question","description":"The user question (exact_wording)."},"answered":{"type":"boolean","title":"Answered"},"reason":{"type":"string","maxLength":1000,"title":"Reason","default":""},"response_excerpt":{"type":"string","title":"Response Excerpt","description":"Relevant excerpt from the assistant response.","default":""},"user_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"User Email"},"trace_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trace Timestamp","description":"Turn timestamp; defaults to now if omitted."}},"type":"object","required":["session_id","judge_model","question","answered"],"title":"LensesJudgeVerdictCreate","description":"Inbound runtime answer-judge verdict from power-api.\n\nOne verdict per judged lenses turn. CAMS assembles the ``user_questions``\narray and upserts a row into Pancake ``tracking.llm_judge_results`` keyed by\n``trace_id`` — the same table the historical replay reads as the prod baseline.","example":{"answered":true,"judge_model":"claude-haiku-4-5-20251001","question":"What was Walmart's card spend in Q1?","reason":"States a specific figure for the requested metric.","response_excerpt":"Walmart card spend was $1.2B in Q1 2026.","session_id":"lenses-7abf23dd-2eb7-424a-a9e5-b764cae0e88e","trace_id":"11045182356319810459","trace_timestamp":"2026-06-29T15:00:00Z","user_email":"karl.deek@carbonarc.co"}},"LensesJudgeVerdictResponse":{"properties":{"trace_id":{"type":"string","title":"Trace Id"},"message":{"type":"string","title":"Message","default":"Verdict recorded successfully"}},"type":"object","required":["trace_id"],"title":"LensesJudgeVerdictResponse","example":{"trace_id":"11045182356319810459"}},"LinkedCamsGroupRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"admin_group_id":{"type":"string","format":"uuid","title":"Admin Group Id"},"group_name":{"type":"string","title":"Group Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"member_count":{"type":"integer","title":"Member Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","admin_group_id","group_name","description","member_count","created_at","created_by"],"title":"LinkedCamsGroupRead"},"LoadTestSignupProvisioningStatusResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"email":{"type":"string","title":"Email"},"signup_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signup Id"},"status":{"type":"string","title":"Status"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"timeline":{"$ref":"#/components/schemas/LoadTestSignupProvisioningTimeline"},"provisioning_steps":{"items":{"$ref":"#/components/schemas/SignupProvisioningStepResponse"},"type":"array","title":"Provisioning Steps"},"events":{"anyOf":[{"items":{"$ref":"#/components/schemas/SignupEventResponse"},"type":"array"},{"type":"null"}],"title":"Events"}},"type":"object","required":["session_id","email","status","timeline","provisioning_steps"],"title":"LoadTestSignupProvisioningStatusResponse"},"LoadTestSignupProvisioningTimeline":{"properties":{"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"provisioning_started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provisioning Started At"},"provisioning_last_started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provisioning Last Started At"},"last_provisioning_failed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Provisioning Failed At"},"provisioning_failed_event_count":{"type":"integer","title":"Provisioning Failed Event Count","default":0},"admin_retry_started_count":{"type":"integer","title":"Admin Retry Started Count","default":0}},"type":"object","title":"LoadTestSignupProvisioningTimeline"},"MCPM2MAccessCreate":{"properties":{"client_id":{"type":"string","format":"uuid","title":"Client Id","description":"Client ID"}},"type":"object","required":["client_id"],"title":"MCPM2MAccessCreate","description":"Schema for creating MCP M2M access"},"MCPM2MAccessRead":{"properties":{"client_id":{"type":"string","format":"uuid","title":"Client Id","description":"Client ID"},"okta_application_id":{"type":"string","title":"Okta Application Id","description":"Okta Application ID"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["client_id","okta_application_id","id"],"title":"MCPM2MAccessRead","description":"Schema for reading MCP M2M access"},"MCPTokenLimitMappingCreate":{"properties":{"mcp_plan_product_id":{"type":"string","title":"Mcp Plan Product Id","description":"Stripe Product ID from Product Catalog"},"mcp_plan_product_name":{"type":"string","title":"Mcp Plan Product Name","description":"Human-readable name of the MCP plan"},"token_limit":{"type":"integer","exclusiveMinimum":0.0,"title":"Token Limit","description":"Daily token reset limit for this plan"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Additional plan configuration and metadata"}},"type":"object","required":["mcp_plan_product_id","mcp_plan_product_name","token_limit"],"title":"MCPTokenLimitMappingCreate","description":"Schema for creating MCP token limit mapping"},"MCPTokenLimitMappingRead":{"properties":{"mcp_plan_product_id":{"type":"string","title":"Mcp Plan Product Id","description":"Stripe Product ID from Product Catalog"},"mcp_plan_product_name":{"type":"string","title":"Mcp Plan Product Name","description":"Human-readable name of the MCP plan"},"token_limit":{"type":"integer","exclusiveMinimum":0.0,"title":"Token Limit","description":"Daily token reset limit for this plan"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","description":"Additional plan configuration and metadata"},"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["mcp_plan_product_id","mcp_plan_product_name","token_limit","id","created_at","updated_at"],"title":"MCPTokenLimitMappingRead","description":"Schema for reading MCP token limit mapping"},"MarketingPreferencesRead":{"properties":{"preferences":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Preferences"}},"type":"object","title":"MarketingPreferencesRead","description":"A simple map of preference code -> opted_in.\n\nToday we only use `marketing_all`, but this format supports adding more\npreference codes in the future."},"MarketingPreferencesUpdate":{"properties":{"preferences":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Preferences"}},"type":"object","required":["preferences"],"title":"MarketingPreferencesUpdate"},"MarketplaceOrderRequest":{"properties":{"required_token_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Token Type"},"buyer_user_email":{"type":"string","title":"Buyer User Email"},"seller_client_id":{"type":"string","title":"Seller Client Id"},"total_price":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string"}],"title":"Total Price"},"seller_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"}],"title":"Seller Amount"},"platform_fee":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"}],"title":"Platform Fee"},"framework_cost":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"}],"title":"Framework Cost"},"idempotency_key":{"type":"string","title":"Idempotency Key"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["buyer_user_email","seller_client_id","total_price","seller_amount","platform_fee","framework_cost","idempotency_key"],"title":"MarketplaceOrderRequest"},"McpAdminLimitsResponse":{"properties":{"user_daily_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"User Daily Limit"},"user_blocked":{"type":"boolean","title":"User Blocked"},"group_period_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Group Period Limit"},"group_period_consumption":{"type":"number","title":"Group Period Consumption"},"group_blocked":{"type":"boolean","title":"Group Blocked"},"group_reset_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Reset Date"}},"type":"object","required":["user_daily_limit","user_blocked","group_period_limit","group_period_consumption","group_blocked","group_reset_date"],"title":"McpAdminLimitsResponse"},"McpDailyWindowResponse":{"properties":{"client_id":{"type":"string","title":"Client Id"},"daily_issuance_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Daily Issuance Limit","description":"Daily MCP token cap when an active MCP subscription / plan mapping applies."},"mcp_balance":{"type":"number","title":"Mcp Balance","description":"Current MCP usage_scope token balance (ledger)."},"consumption_today":{"type":"number","title":"Consumption Today","description":"Consume debits posted today in the MCP timezone window (numerator for daily usage UI)."},"next_reset_at":{"type":"string","format":"date-time","title":"Next Reset At","description":"End of the current MCP calendar day in the configured timezone (from settings)."}},"type":"object","required":["client_id","mcp_balance","consumption_today","next_reset_at"],"title":"McpDailyWindowResponse","description":"MCP daily allocation window for a client (ledger-backed).\n\nSubscription cap, current MCP-scope balance, today's debits/credits in the MCP timezone\nwindow, and end-of-day boundary. Manual-reset eligibility and subwallet flags are not\npart of this resource; use dedicated admin flows if needed."},"McpMetrics":{"properties":{"tokens_spent":{"$ref":"#/components/schemas/SupplierMatrixResponse"},"mcp_tool_calls":{"$ref":"#/components/schemas/SupplierMatrixResponse"}},"type":"object","required":["tokens_spent","mcp_tool_calls"],"title":"McpMetrics"},"MigrationRequest":{"properties":{"script_identifier":{"type":"string","title":"Script Identifier"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","default":{}}},"type":"object","required":["script_identifier"],"title":"MigrationRequest"},"MigrationResponse":{"properties":{"message":{"type":"string","title":"Message"},"script_identifier":{"type":"string","title":"Script Identifier"},"status":{"type":"string","title":"Status"}},"type":"object","required":["message","script_identifier","status"],"title":"MigrationResponse"},"NotificationList":{"properties":{"notifications":{"items":{"$ref":"#/components/schemas/NotificationRead"},"type":"array","title":"Notifications"},"total":{"type":"integer","title":"Total"},"unread_count":{"type":"integer","title":"Unread Count"}},"type":"object","required":["notifications","total","unread_count"],"title":"NotificationList","description":"Schema for listing notifications."},"NotificationRead":{"properties":{"type":{"$ref":"#/components/schemas/NotificationType"},"title":{"type":"string","maxLength":255,"title":"Title"},"body":{"type":"string","title":"Body"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data"},"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"status":{"$ref":"#/components/schemas/NotificationStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","default":"system"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["type","title","body","id","user_id","status","created_at","updated_at"],"title":"NotificationRead","description":"Schema for reading a notification."},"NotificationStatus":{"type":"string","enum":["unread","read","archived"],"title":"NotificationStatus","description":"Status of a notification."},"NotificationType":{"type":"string","enum":["mcp_nearing_limit","mcp_reached_limit"],"title":"NotificationType","description":"Types of notifications."},"NotificationUpdate":{"properties":{"status":{"$ref":"#/components/schemas/NotificationStatus","description":"New status for the notification"}},"type":"object","required":["status"],"title":"NotificationUpdate","description":"Schema for updating a notification."},"OktaEvent":{"properties":{"eventType":{"type":"string","title":"Eventtype"},"data":{"additionalProperties":true,"type":"object","title":"Data"},"eventId":{"type":"string","title":"Eventid"}},"type":"object","required":["eventType","data","eventId"],"title":"OktaEvent"},"OktaSSOEventRead":{"properties":{"event_id":{"type":"string","title":"Event Id"},"event_type":{"type":"string","title":"Event Type"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"app_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Name"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},"type":"object","required":["event_id","event_type","published_at","created_at","user_email","user_name","app_name","ip_address","city","country"],"title":"OktaSSOEventRead"},"OnboardingStepRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"step_number":{"type":"integer","title":"Step Number"},"step_name":{"type":"string","title":"Step Name"},"status":{"$ref":"#/components/schemas/OnboardingStepStatus"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","client_id","step_number","step_name","status","created_at","updated_at"],"title":"OnboardingStepRead"},"OnboardingStepStatus":{"type":"string","enum":["pending","awaiting_client","awaiting_subscription","complete"],"title":"OnboardingStepStatus"},"OpenBBEntityCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Entity name"},"entity_type_uuid":{"type":"string","title":"Entity Type Uuid","description":"UUID of the entity type"},"email":{"type":"string","format":"email","title":"Email","description":"Entity contact email"},"admin_email":{"type":"string","format":"email","title":"Admin Email","description":"Primary admin email"},"company_type":{"type":"string","title":"Company Type","description":"Company type (e.g., 'Investment Firm')"},"organization_size":{"type":"string","title":"Organization Size","description":"Organization size (e.g., '10-50')","default":"10-50"},"aum":{"type":"integer","minimum":0.0,"title":"Aum","description":"Assets Under Management","default":0},"country":{"type":"string","title":"Country","description":"Country code or name","default":"USA"},"seats":{"type":"integer","minimum":1.0,"title":"Seats","description":"Number of licensed seats","default":1000},"expiration_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiration Date","description":"Expiration date in ISO 8601 format"}},"type":"object","required":["name","entity_type_uuid","email","admin_email","company_type"],"title":"OpenBBEntityCreate","description":"Schema for creating a new OpenBB entity (organization).","example":{"admin_email":"admin@acme.com","aum":10000000,"company_type":"Investment Firm","country":"USA","email":"billing@acme.com","entity_type_uuid":"123e4567-e89b-12d3-a456-426614174000","expiration_date":"2026-12-31T00:00:00Z","name":"Acme Corp","organization_size":"10-50","seats":50}},"OpenBBEntityCreateResponse":{"properties":{"entity_uuid":{"type":"string","title":"Entity Uuid"},"message":{"type":"string","title":"Message","default":"Entity created successfully"}},"type":"object","required":["entity_uuid"],"title":"OpenBBEntityCreateResponse","description":"Schema for entity creation response."},"OpenBBEntityListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OpenBBEntityRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"OpenBBEntityListResponse","description":"Schema for paginated entity list response."},"OpenBBEntityRead":{"properties":{"uuid":{"type":"string","title":"Uuid"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"company_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Type"},"organization_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Size"},"aum":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aum"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"seats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seats"},"expiration_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expiration Date"},"entity_type":{"anyOf":[{"$ref":"#/components/schemas/OpenBBEntityTypeRead"},{"type":"null"}]}},"type":"object","required":["uuid","name"],"title":"OpenBBEntityRead","description":"Schema for reading an OpenBB entity."},"OpenBBEntityTypeCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Display name for the entity type"},"code":{"type":"string","title":"Code","description":"Internal code identifier"}},"type":"object","required":["name","code"],"title":"OpenBBEntityTypeCreate","description":"Schema for creating a new entity type."},"OpenBBEntityTypeListResponse":{"properties":{"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"OpenBBEntityTypeListResponse","description":"Schema for paginated entity type list response."},"OpenBBEntityTypeRead":{"properties":{"uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uuid"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type"}},"type":"object","title":"OpenBBEntityTypeRead","description":"Schema for entity type information."},"OpenBBEntityUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Entity name"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email","description":"Entity contact email"},"company_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Type","description":"Company type"},"organization_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Size","description":"Organization size"},"aum":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Aum","description":"Assets Under Management"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"Country code or name"},"seats":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Seats","description":"Number of licensed seats"},"expiration_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiration Date","description":"Expiration date"},"entity_type_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type Uuid","description":"UUID of the entity type"}},"type":"object","title":"OpenBBEntityUpdate","description":"Schema for updating an OpenBB entity."},"OpenBBPermissionMapRead":{"properties":{"uuid":{"type":"string","title":"Uuid","description":"Permission map UUID"},"name":{"type":"string","title":"Name","description":"Role name (e.g., 'Admin' or 'User')"},"entity_uuid":{"type":"string","title":"Entity Uuid","description":"Entity UUID this permission map belongs to"}},"type":"object","required":["uuid","name","entity_uuid"],"title":"OpenBBPermissionMapRead","description":"Schema for reading a permission map."},"OpenBBProvisionRequest":{"properties":{"entity":{"$ref":"#/components/schemas/OpenBBEntityCreate"},"admins":{"items":{"$ref":"#/components/schemas/OpenBBProvisionUserInfo"},"type":"array","title":"Admins","description":"List of admin users to create"},"users":{"items":{"$ref":"#/components/schemas/OpenBBProvisionUserInfo"},"type":"array","title":"Users","description":"List of regular users to create"}},"type":"object","required":["entity"],"title":"OpenBBProvisionRequest","description":"Schema for bulk provisioning an entity with users.","example":{"admins":[{"email":"admin@acme.com","first_name":"Admin","last_name":"User"}],"entity":{"admin_email":"admin@acme.com","aum":10000000,"company_type":"Investment Firm","country":"USA","email":"billing@acme.com","entity_type_uuid":"123e4567-e89b-12d3-a456-426614174000","expiration_date":"2026-12-31T00:00:00Z","name":"Acme Corp","organization_size":"10-50","seats":50},"users":[{"email":"analyst@acme.com","first_name":"Analyst","last_name":"One"}]}},"OpenBBProvisionResponse":{"properties":{"entity":{"additionalProperties":true,"type":"object","title":"Entity"},"admins":{"items":{"$ref":"#/components/schemas/OpenBBProvisionedUser"},"type":"array","title":"Admins"},"users":{"items":{"$ref":"#/components/schemas/OpenBBProvisionedUser"},"type":"array","title":"Users"},"message":{"type":"string","title":"Message","default":"Provisioning completed successfully"}},"type":"object","required":["entity","admins","users"],"title":"OpenBBProvisionResponse","description":"Schema for provisioning response."},"OpenBBProvisionUserInfo":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"}},"type":"object","required":["email","first_name","last_name"],"title":"OpenBBProvisionUserInfo","description":"Schema for user information in provisioning request."},"OpenBBProvisionedUser":{"properties":{"email":{"type":"string","title":"Email"},"user_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Uuid"},"temporary_password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Temporary Password"}},"type":"object","required":["email"],"title":"OpenBBProvisionedUser","description":"Schema for a provisioned user in the response."},"OpenBBUserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"User's email address"},"first_name":{"type":"string","title":"First Name","description":"User's first name"},"last_name":{"type":"string","title":"Last Name","description":"User's last name"},"role":{"type":"string","pattern":"^(admin|user)$","title":"Role","description":"Role assignment ('admin' or 'user')","default":"user"}},"type":"object","required":["email","first_name","last_name"],"title":"OpenBBUserCreate","description":"Schema for creating a new OpenBB user.","example":{"email":"john.doe@acme.com","first_name":"John","last_name":"Doe","role":"user"}},"OpenBBUserCreateResponse":{"properties":{"user_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Uuid"},"email":{"type":"string","title":"Email"},"temporary_password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Temporary Password"},"message":{"type":"string","title":"Message","default":"User created successfully"}},"type":"object","required":["email"],"title":"OpenBBUserCreateResponse","description":"Schema for user creation response."},"OpenBBUserListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OpenBBUserRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","total","page","size","pages"],"title":"OpenBBUserListResponse","description":"Schema for paginated user list response."},"OpenBBUserMoveRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"User's email address"},"target_entity_uuid":{"type":"string","title":"Target Entity Uuid","description":"UUID of the target entity"},"role":{"type":"string","pattern":"^(admin|user)$","title":"Role","description":"Role in new entity ('admin' or 'user')","default":"user"}},"type":"object","required":["email","target_entity_uuid"],"title":"OpenBBUserMoveRequest","description":"Schema for moving a user to another entity."},"OpenBBUserPermissions":{"properties":{"uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uuid"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"entity":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Entity"}},"type":"object","title":"OpenBBUserPermissions","description":"Schema for user permissions."},"OpenBBUserRead":{"properties":{"uuid":{"type":"string","title":"Uuid"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"permissions":{"anyOf":[{"$ref":"#/components/schemas/OpenBBUserPermissions"},{"type":"null"}]}},"type":"object","required":["uuid","email"],"title":"OpenBBUserRead","description":"Schema for reading an OpenBB user."},"OpenBBUserUpdateEntityRequest":{"properties":{"target_entity_uuid":{"type":"string","title":"Target Entity Uuid","description":"UUID of the target entity"},"role":{"type":"string","pattern":"^(admin|user)$","title":"Role","description":"Role in new entity ('admin' or 'user')","default":"user"}},"type":"object","required":["target_entity_uuid"],"title":"OpenBBUserUpdateEntityRequest","description":"Schema for updating a user's entity assignment."},"OpenBBUserUpdateEntityResponse":{"properties":{"user_uuid":{"type":"string","title":"User Uuid"},"target_entity_uuid":{"type":"string","title":"Target Entity Uuid"},"message":{"type":"string","title":"Message","default":"User entity updated successfully"}},"type":"object","required":["user_uuid","target_entity_uuid"],"title":"OpenBBUserUpdateEntityResponse","description":"Schema for user entity update response."},"PaginatedClientProviderAccess":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/ClientProviderAccessInfo"},"type":"array","title":"Items"},"pages":{"type":"integer","title":"Pages"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["total","items","pages","page","size"],"title":"PaginatedClientProviderAccess"},"PaginatedCreditEventsResponse":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/CreditEventResponse"},"type":"array","title":"Items"},"pages":{"type":"integer","title":"Pages"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["total","items","pages","page","size"],"title":"PaginatedCreditEventsResponse","description":"Paginated response for credit events"},"PaginatedGroupsResponse":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/GroupsPageRead"},"type":"array","title":"Items"},"pages":{"type":"integer","title":"Pages"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["total","items","pages","page","size"],"title":"PaginatedGroupsResponse"},"PaginatedResponse":{"properties":{"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/OktaSSOEventRead"},"type":"array","title":"Items"}},"type":"object","required":["page","size","total","items"],"title":"PaginatedResponse"},"PaginatedUsersRoleOnlyResponse":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/UserInfoRoleOnly"},"type":"array","title":"Items"},"pages":{"type":"integer","title":"Pages"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["total","items","pages","page","size"],"title":"PaginatedUsersRoleOnlyResponse"},"ParseResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/ParsedRow"},"type":"array","title":"Rows"},"total_rows":{"type":"integer","title":"Total Rows"},"valid_rows":{"type":"integer","title":"Valid Rows"},"invalid_rows":{"type":"integer","title":"Invalid Rows"}},"type":"object","required":["rows","total_rows","valid_rows","invalid_rows"],"title":"ParseResponse"},"ParsedRow":{"properties":{"row_number":{"type":"integer","title":"Row Number"},"company_name":{"type":"string","title":"Company Name"},"company_category_hierarchy_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Company Category Hierarchy Id"},"brand_website":{"type":"string","title":"Brand Website"},"brand_type":{"type":"string","title":"Brand Type"},"brand_name":{"type":"string","title":"Brand Name"},"brand_category_hierarchy_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Brand Category Hierarchy Id"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"}},"type":"object","required":["row_number","company_name","company_category_hierarchy_id","brand_website","brand_type","brand_name","brand_category_hierarchy_id","errors"],"title":"ParsedRow"},"PaymentMethodSummary":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Payment method type (card, bank, etc.)"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand","description":"Card or bank brand (visa, mastercard, etc.)"},"exp_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Month","description":"Expiration month"},"exp_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Year","description":"Expiration year"},"last4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last4","description":"Last 4 digits"}},"type":"object","title":"PaymentMethodSummary"},"PermissionExportItem":{"properties":{"name":{"type":"string","title":"Name"},"resource":{"type":"string","title":"Resource"},"action":{"items":{"type":"string"},"type":"array","title":"Action"}},"type":"object","required":["name","resource","action"],"title":"PermissionExportItem"},"PermissionExportResponse":{"properties":{"exported_at":{"type":"string","title":"Exported At"},"count":{"type":"integer","title":"Count"},"permissions":{"items":{"$ref":"#/components/schemas/PermissionExportItem"},"type":"array","title":"Permissions"}},"type":"object","required":["exported_at","count","permissions"],"title":"PermissionExportResponse"},"PlanConfigAuditRead":{"properties":{"id":{"type":"string","title":"Id"},"plan_id":{"type":"string","title":"Plan Id"},"action":{"type":"string","title":"Action"},"old_value":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Old Value"},"new_value":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"New Value"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"}},"type":"object","required":["id","plan_id","action","created_at"],"title":"PlanConfigAuditRead","description":"One audit log entry."},"PlanConfigOverview":{"properties":{"plan_id":{"type":"string","title":"Plan Id"},"display_name":{"type":"string","title":"Display Name"},"active_users_count":{"type":"integer","title":"Active Users Count","default":0},"enabled_features_count":{"type":"integer","title":"Enabled Features Count","default":0},"total_features_count":{"type":"integer","title":"Total Features Count","default":0},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified"},"last_modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Modified By"}},"type":"object","required":["plan_id","display_name"],"title":"PlanConfigOverview","description":"Overview stats for a plan (active users, enabled features, etc.)."},"PlanConfigVersionRead":{"properties":{"id":{"type":"string","title":"Id"},"plan_id":{"type":"string","title":"Plan Id"},"version_number":{"type":"integer","title":"Version Number"},"display_name":{"type":"string","title":"Display Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"}},"type":"object","required":["id","plan_id","version_number","display_name","created_at"],"title":"PlanConfigVersionRead","description":"One version record."},"PlanCreate":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"product_id":{"type":"string","format":"uuid","title":"Product Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"amount":{"type":"number","minimum":0.0,"title":"Amount"},"billing_cycle":{"type":"string","title":"Billing Cycle","default":"month"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["name","product_id","client_id","amount"],"title":"PlanCreate","description":"Plan creation schema - status is automatically set based on starts_at."},"PlanFullResponse":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"product_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Product Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"amount":{"type":"number","minimum":0.0,"title":"Amount"},"billing_cycle":{"type":"string","title":"Billing Cycle","default":"month"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Id"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"},"stripe_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Subscription Id"},"stripe_customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Id","description":"Stripe customer id (cus_...) for this plan/client"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"billing_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Billing Email"},"daily_token_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Daily Token Limit","description":"Configured daily token limit from plan"},"enterprise_fields":{"anyOf":[{"$ref":"#/components/schemas/EnterpriseFields"},{"type":"null"}],"description":"Additional enterprise-only MCP-related fields"},"grace_period_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Grace Period Started At"},"failed_payment_retry_count":{"type":"integer","title":"Failed Payment Retry Count","default":0},"is_suspended":{"type":"boolean","title":"Is Suspended","default":false},"suspended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended At"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"Where the plan record came from: 'database' or 'stripe'","default":"database"},"stripe_cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Stripe Cancel At","description":"Scheduled cancellation date from linked Stripe subscription"},"stripe_canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Stripe Canceled At","description":"Actual cancellation date from linked Stripe subscription"},"stripe_subscription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stripe Subscription","description":"Full Stripe subscription details if the plan is linked to a Stripe subscription"},"stripe_customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Name","description":"Stripe customer name for the client"},"payment_method":{"$ref":"#/components/schemas/PaymentMethodSummary","description":"Default payment method details for the plan"},"invoice_payment":{"type":"boolean","title":"Invoice Payment","description":"True when the client is configured for invoice billing. Derived from client.payment_method == 'invoice'.","default":false}},"type":"object","required":["name","client_id","amount","id","created_at","updated_at"],"title":"PlanFullResponse","description":"Full plan response schema with all plan fields and optional Stripe subscription details"},"PlanRead":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"product_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Product Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"amount":{"type":"number","minimum":0.0,"title":"Amount"},"billing_cycle":{"type":"string","title":"Billing Cycle","default":"month"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Id"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"},"stripe_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Subscription Id"},"stripe_customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Id","description":"Stripe customer id (cus_...) for this plan/client"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"billing_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Billing Email"},"daily_token_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Daily Token Limit","description":"Configured daily token limit from plan"},"enterprise_fields":{"anyOf":[{"$ref":"#/components/schemas/EnterpriseFields"},{"type":"null"}],"description":"Additional enterprise-only MCP-related fields"},"grace_period_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Grace Period Started At"},"failed_payment_retry_count":{"type":"integer","title":"Failed Payment Retry Count","default":0},"is_suspended":{"type":"boolean","title":"Is Suspended","default":false},"suspended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended At"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"Where the plan record came from: 'database' or 'stripe'","default":"database"},"stripe_cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Stripe Cancel At","description":"Scheduled cancellation date from linked Stripe subscription"},"stripe_canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Stripe Canceled At","description":"Actual cancellation date from linked Stripe subscription"}},"type":"object","required":["name","client_id","amount","id","created_at","updated_at"],"title":"PlanRead"},"PlanUpdate":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","title":"PlanUpdate"},"PlatformMaintenanceModeRead":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["enabled"],"title":"PlatformMaintenanceModeRead","description":"Current platform maintenance mode status returned by both public and admin endpoints."},"PlatformMaintenanceModeUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"PlatformMaintenanceModeUpdate","description":"Payload to enable or disable platform maintenance mode. Super admin only."},"PlatformMetrics":{"properties":{"tokens":{"$ref":"#/components/schemas/SupplierMatrixResponse"},"mb_metric":{"$ref":"#/components/schemas/SupplierMatrixResponse"},"records":{"$ref":"#/components/schemas/SupplierMatrixResponse"}},"type":"object","required":["tokens","mb_metric","records"],"title":"PlatformMetrics"},"PolarisMetrics":{"properties":{"mb_metric":{"$ref":"#/components/schemas/SupplierMatrixResponse"},"request_count":{"$ref":"#/components/schemas/SupplierMatrixResponse"}},"type":"object","required":["mb_metric","request_count"],"title":"PolarisMetrics"},"PolicyElementCreateOrUpdate":{"properties":{"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"}},"type":"object","required":["type","name"],"title":"PolicyElementCreateOrUpdate"},"PolicyElementRead":{"properties":{"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["type","name","id"],"title":"PolicyElementRead"},"PolicyRule":{"properties":{"resource_id":{"type":"string","format":"uuid4","title":"Resource Id"},"action_id":{"type":"string","format":"uuid4","title":"Action Id"},"scope_id":{"type":"string","format":"uuid4","title":"Scope Id"}},"type":"object","required":["resource_id","action_id","scope_id"],"title":"PolicyRule"},"PortalActivationLinkResponse":{"properties":{"activation_url":{"type":"string","title":"Activation Url"}},"type":"object","required":["activation_url"],"title":"PortalActivationLinkResponse","description":"Response from the regenerate-activation-link endpoint."},"PortalEntityRef":{"properties":{"id":{"type":"string","maxLength":256,"minLength":1,"title":"Id"},"label":{"type":"string","maxLength":512,"minLength":1,"title":"Label"}},"type":"object","required":["id","label"],"title":"PortalEntityRef","description":"Ontology entity tag — id + display label."},"PortalRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"okta_group":{"type":"string","title":"Okta Group"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["id","key","name","okta_group","is_active"],"title":"PortalRead","description":"Admin read response for a portal."},"PortalTranscriptListItem":{"properties":{"transcript_id":{"type":"string","format":"uuid","title":"Transcript Id"},"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"submitted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitted At"}},"type":"object","required":["transcript_id","external_id","title","status"],"title":"PortalTranscriptListItem","description":"One row in the 'My Submissions' list."},"PortalTranscriptResponse":{"properties":{"transcript_id":{"type":"string","format":"uuid","title":"Transcript Id"},"status":{"type":"string","title":"Status"},"title":{"type":"string","title":"Title"}},"type":"object","required":["transcript_id","status","title"],"title":"PortalTranscriptResponse","description":"Minimal response returned to the portal after a successful upload."},"PortalTranscriptUploadRequest":{"properties":{"external_id":{"type":"string","title":"External Id","description":"Partner's own reference ID"},"title":{"type":"string","maxLength":512,"minLength":1,"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Description"},"interview_date":{"type":"string","format":"date","title":"Interview Date"},"duration_minutes":{"type":"integer","maximum":2147483647.0,"exclusiveMinimum":0.0,"title":"Duration Minutes"},"expert_anonymized":{"type":"boolean","title":"Expert Anonymized"},"entities":{"items":{"$ref":"#/components/schemas/PortalEntityRef"},"type":"array","minItems":1,"title":"Entities"},"region":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Region"},"language":{"type":"string","maxLength":10,"title":"Language","default":"en"},"transcript_type":{"type":"string","maxLength":64,"title":"Transcript Type","default":"expert_interview"},"provider":{"type":"string","maxLength":256,"minLength":1,"title":"Provider","description":"Name of the company that produced the transcript (e.g. Tegus, Quartr)"},"txt_b64":{"type":"string","minLength":1,"title":"Txt B64"}},"type":"object","required":["external_id","title","interview_date","duration_minutes","expert_anonymized","entities","provider","txt_b64"],"title":"PortalTranscriptUploadRequest","description":"Validated upload payload sent by the portal frontend.\n\n``txt_b64`` carries the base64-encoded .txt file content.  The backend\ndecodes and validates it before forwarding to power-api.\n\n``source_type`` is NOT accepted from the client — it is injected server-\nside from PortalUserContext.meta_data[\"source_type\"]."},"PortalUserCreate":{"properties":{"first_name":{"type":"string","maxLength":256,"minLength":1,"title":"First Name"},"last_name":{"type":"string","maxLength":256,"minLength":1,"title":"Last Name"},"email":{"type":"string","maxLength":512,"minLength":1,"title":"Email"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"portals":{"items":{"$ref":"#/components/schemas/PortalUserPortalAssignment"},"type":"array","minItems":1,"title":"Portals"}},"type":"object","required":["first_name","last_name","email","portals"],"title":"PortalUserCreate","description":"Admin request to provision a new portal user.\n\nOkta provisioning happens server-side — callers supply a name and email;\nthe backend creates the Okta user and stores the returned okta_user_id.\nAt least one portal assignment is required."},"PortalUserCreateResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"okta_user_id":{"type":"string","title":"Okta User Id"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email"},"is_active":{"type":"boolean","title":"Is Active"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"portals":{"items":{"$ref":"#/components/schemas/PortalUserPortalRead"},"type":"array","title":"Portals"},"okta_status":{"type":"string","title":"Okta Status","default":""},"activation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activation Url"},"okta_user_already_existed":{"type":"boolean","title":"Okta User Already Existed","default":false}},"type":"object","required":["id","okta_user_id","first_name","last_name","email","is_active","notes"],"title":"PortalUserCreateResponse","description":"Response returned only on portal user creation.\n\nIncludes the one-time activation URL. Not returned by list/get endpoints\n— the token must not be re-exposed after the initial create response."},"PortalUserPortalAssignment":{"properties":{"portal_key":{"type":"string","maxLength":128,"minLength":1,"title":"Portal Key"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"}},"type":"object","required":["portal_key"],"title":"PortalUserPortalAssignment","description":"One portal assignment included in create/edit requests."},"PortalUserPortalRead":{"properties":{"portal_id":{"type":"string","format":"uuid","title":"Portal Id"},"portal_key":{"type":"string","title":"Portal Key"},"portal_name":{"type":"string","title":"Portal Name"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"}},"type":"object","required":["portal_id","portal_key","portal_name","meta_data"],"title":"PortalUserPortalRead","description":"One portal assignment in a read response."},"PortalUserRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"okta_user_id":{"type":"string","title":"Okta User Id"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email"},"is_active":{"type":"boolean","title":"Is Active"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"portals":{"items":{"$ref":"#/components/schemas/PortalUserPortalRead"},"type":"array","title":"Portals"},"okta_status":{"type":"string","title":"Okta Status","default":""}},"type":"object","required":["id","okta_user_id","first_name","last_name","email","is_active","notes"],"title":"PortalUserRead","description":"Admin read response for a portal user."},"PortalUserUpdate":{"properties":{"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"portals":{"anyOf":[{"items":{"$ref":"#/components/schemas/PortalUserPortalAssignment"},"type":"array","minItems":1},{"type":"null"}],"title":"Portals"}},"type":"object","title":"PortalUserUpdate","description":"Admin request to update a portal user's active status or notes."},"PrivacyPolicyCreateRequest":{"properties":{"content":{"type":"string","title":"Content"},"change_reason":{"type":"string","minLength":1,"title":"Change Reason","description":"Required rationale for the update"},"effective_at":{"type":"string","format":"date-time","title":"Effective At","description":"When this privacy policy version becomes effective"},"base_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Base Version Id","description":"Optimistic concurrency check. The privacy policy version id the user based their edit on. If the latest published version has a different id, the update will be rejected and the user should reload."}},"type":"object","required":["content","change_reason","effective_at"],"title":"PrivacyPolicyCreateRequest"},"PrivacyPolicyVersionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"content":{"type":"string","title":"Content"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"checksum":{"type":"string","title":"Checksum"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"version_num":{"type":"integer","title":"Version Num"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"change_reason":{"type":"string","title":"Change Reason"},"created_by":{"type":"string","title":"Created By"}},"type":"object","required":["id","content","effective_at","checksum","created_at","version_num","published_at","change_reason","created_by"],"title":"PrivacyPolicyVersionResponse"},"ProductCreate":{"properties":{"name":{"type":"string","title":"Name"},"okta_application_id":{"type":"string","title":"Okta Application Id"},"okta_group_id":{"type":"string","title":"Okta Group Id"}},"type":"object","required":["name","okta_application_id","okta_group_id"],"title":"ProductCreate"},"ProductUpdate":{"properties":{"name":{"type":"string","title":"Name"},"okta_application_id":{"type":"string","title":"Okta Application Id"},"okta_group_id":{"type":"string","title":"Okta Group Id"}},"type":"object","required":["name","okta_application_id","okta_group_id"],"title":"ProductUpdate"},"PromoCodesExportRequest":{"properties":{"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"has_promo_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Has Promo Code","default":"all"},"promo_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Promo Code"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"}},"type":"object","title":"PromoCodesExportRequest"},"PromoCodesReportPreviewResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PromoCodesReportRow"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"}},"type":"object","required":["data","total","page","per_page"],"title":"PromoCodesReportPreviewResponse"},"PromoCodesReportRow":{"properties":{"id":{"type":"string","title":"Id"},"client_id":{"type":"string","title":"Client Id"},"client_name":{"type":"string","title":"Client Name"},"plan_id":{"type":"string","title":"Plan Id"},"plan_name":{"type":"string","title":"Plan Name"},"stripe_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Subscription Id"},"subscription_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Subscription Start Date"},"subscription_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Subscription End Date"},"promo_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Promo Code"},"promotion_code_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Promotion Code Id"},"coupon_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Id"},"discounts":{"items":{"$ref":"#/components/schemas/DiscountDetail"},"type":"array","title":"Discounts","default":[]}},"type":"object","required":["id","client_id","client_name","plan_id","plan_name"],"title":"PromoCodesReportRow","description":"Single row in the promo codes report."},"ProviderBase":{"properties":{"data_vendor":{"type":"string","title":"Data Vendor"},"code_name":{"type":"string","title":"Code Name"},"description":{"type":"string","title":"Description"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"},"provider_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Id"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index","default":0},"type":{"type":"string","title":"Type"},"history":{"type":"string","title":"History"},"total_inventory":{"type":"string","title":"Total Inventory"},"size":{"type":"string","title":"Size"},"sourcing_method_description":{"type":"string","title":"Sourcing Method Description"},"ca_contractual_usage":{"type":"string","title":"Ca Contractual Usage"},"provider_contractual_usage":{"type":"string","title":"Provider Contractual Usage"},"data_type":{"type":"string","title":"Data Type"},"account_restriction_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Restriction Comments"},"signup_plan_restriction_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signup Plan Restriction Comments"},"deployment_fee":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deployment Fee","default":false},"auto_provision_new_enterprises":{"type":"boolean","title":"Auto Provision New Enterprises","default":false},"use_of_name":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Of Name","default":false},"use_of_name_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Of Name Comments"}},"type":"object","required":["data_vendor","code_name","description","type","history","total_inventory","size","sourcing_method_description","ca_contractual_usage","provider_contractual_usage","data_type"],"title":"ProviderBase"},"ProviderBaseUpdate":{"properties":{"data_vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Vendor"},"code_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"},"provider_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Id"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index","default":0},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"history":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History"},"total_inventory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Inventory"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"sourcing_method_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sourcing Method Description"},"ca_contractual_usage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ca Contractual Usage"},"provider_contractual_usage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Contractual Usage"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"},"account_restriction_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Restriction Comments"},"signup_plan_restriction_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signup Plan Restriction Comments"},"deployment_fee":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deployment Fee","default":false},"auto_provision_new_enterprises":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Provision New Enterprises"},"use_of_name":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Of Name","default":false},"use_of_name_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Of Name Comments"}},"type":"object","title":"ProviderBaseUpdate"},"ProviderChannelRestrictionCreate":{"properties":{"restriction_kind":{"type":"string","enum":["enterprise","signup_plan"],"title":"Restriction Kind"},"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"client_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Id"},"plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Id"},"api_access_denied":{"type":"boolean","title":"Api Access Denied","default":true},"mcp_access_denied":{"type":"boolean","title":"Mcp Access Denied","default":true}},"type":"object","required":["restriction_kind","provider_id"],"title":"ProviderChannelRestrictionCreate"},"ProviderChannelRestrictionItemRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"restriction_kind":{"type":"string","enum":["enterprise","signup_plan"],"title":"Restriction Kind"},"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"client_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Id"},"plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Id"},"api_access_denied":{"type":"boolean","title":"Api Access Denied"},"mcp_access_denied":{"type":"boolean","title":"Mcp Access Denied"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","restriction_kind","provider_id","api_access_denied","mcp_access_denied","updated_by","updated_at"],"title":"ProviderChannelRestrictionItemRead"},"ProviderCreate":{"properties":{"provider":{"$ref":"#/components/schemas/ProviderBase"},"restriction":{"$ref":"#/components/schemas/Restriction"}},"type":"object","required":["provider"],"title":"ProviderCreate"},"ProviderLogCreate":{"properties":{"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"stage":{"type":"string","title":"Stage"}},"type":"object","required":["provider_id","stage"],"title":"ProviderLogCreate"},"ProviderLogRead":{"properties":{"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"stage":{"type":"string","title":"Stage"},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["provider_id","stage","id"],"title":"ProviderLogRead"},"ProviderLogUpdate":{"properties":{"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"stage":{"type":"string","title":"Stage"}},"type":"object","required":["provider_id","stage"],"title":"ProviderLogUpdate"},"ProviderRead":{"properties":{"data_vendor":{"type":"string","title":"Data Vendor"},"code_name":{"type":"string","title":"Code Name"},"description":{"type":"string","title":"Description"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"},"provider_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Id"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index","default":0},"type":{"type":"string","title":"Type"},"history":{"type":"string","title":"History"},"total_inventory":{"type":"string","title":"Total Inventory"},"size":{"type":"string","title":"Size"},"sourcing_method_description":{"type":"string","title":"Sourcing Method Description"},"ca_contractual_usage":{"type":"string","title":"Ca Contractual Usage"},"provider_contractual_usage":{"type":"string","title":"Provider Contractual Usage"},"data_type":{"type":"string","title":"Data Type"},"account_restriction_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Restriction Comments"},"signup_plan_restriction_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signup Plan Restriction Comments"},"deployment_fee":{"type":"boolean","title":"Deployment Fee","default":false},"auto_provision_new_enterprises":{"type":"boolean","title":"Auto Provision New Enterprises","default":false},"use_of_name":{"type":"boolean","title":"Use Of Name","default":false},"use_of_name_comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Of Name Comments"},"id":{"type":"string","format":"uuid4","title":"Id"},"client_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"},"created_by":{"type":"string","title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"enterprise_channel_rules":{"items":{"$ref":"#/components/schemas/EnterpriseChannelRule"},"type":"array","title":"Enterprise Channel Rules"},"signup_plan_channel_rules":{"items":{"$ref":"#/components/schemas/SignupPlanChannelRule"},"type":"array","title":"Signup Plan Channel Rules"},"enterprise_api_access_denied_all":{"type":"boolean","title":"Enterprise Api Access Denied All","default":false},"enterprise_mcp_access_denied_all":{"type":"boolean","title":"Enterprise Mcp Access Denied All","default":false},"order_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order Id"}},"type":"object","required":["data_vendor","code_name","description","type","history","total_inventory","size","sourcing_method_description","ca_contractual_usage","provider_contractual_usage","data_type","id","created_at","updated_at","created_by"],"title":"ProviderRead"},"ProviderServiceCreate":{"properties":{"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"service":{"type":"string","title":"Service"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"coverage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage"},"update_frequency":{"type":"string","title":"Update Frequency"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"granularity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granularity"},"geo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geo"},"delivery_type":{"type":"string","title":"Delivery Type"},"s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Path"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"}},"type":"object","required":["provider_id","service","update_frequency","delivery_type"],"title":"ProviderServiceCreate"},"ProviderServiceRead":{"properties":{"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"service":{"type":"string","title":"Service"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"coverage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage"},"update_frequency":{"type":"string","title":"Update Frequency"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"granularity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granularity"},"geo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geo"},"delivery_type":{"type":"string","title":"Delivery Type"},"s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Path"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"},"id":{"type":"string","format":"uuid4","title":"Id"}},"type":"object","required":["provider_id","service","update_frequency","delivery_type","id"],"title":"ProviderServiceRead"},"ProviderServiceUpdate":{"properties":{"provider_id":{"type":"string","format":"uuid4","title":"Provider Id"},"service":{"type":"string","title":"Service"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"coverage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage"},"update_frequency":{"type":"string","title":"Update Frequency"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"granularity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granularity"},"geo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geo"},"delivery_type":{"type":"string","title":"Delivery Type"},"s3_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Path"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"}},"type":"object","required":["provider_id","service","update_frequency","delivery_type"],"title":"ProviderServiceUpdate"},"ProviderUpdate":{"properties":{"provider":{"$ref":"#/components/schemas/ProviderBaseUpdate"},"restriction":{"anyOf":[{"$ref":"#/components/schemas/Restriction"},{"type":"null"}]}},"type":"object","required":["provider"],"title":"ProviderUpdate"},"ProvidersAccess":{"properties":{"unmetered":{"items":{"type":"string"},"type":"array","title":"Unmetered"},"api":{"$ref":"#/components/schemas/UserProviderAccessChannel"},"mcp":{"$ref":"#/components/schemas/UserProviderAccessChannel"}},"type":"object","required":["unmetered","api","mcp"],"title":"ProvidersAccess","description":"Legacy ``enabled`` / ``blocked`` mirror API channel; ``api`` / ``mcp`` add full detail."},"PublicTickerResponse":{"properties":{"id":{"type":"string","title":"Id"},"message":{"type":"string","title":"Message"},"priority":{"type":"integer","title":"Priority"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At"}},"type":"object","required":["id","message","priority","starts_at","ends_at"],"title":"PublicTickerResponse","description":"Public ticker response without sensitive information"},"ReactivateSubscriptionRequest":{"properties":{"plan_id":{"type":"string","title":"Plan Id","description":"Plan tier key, e.g. 'professional'"},"billing_period":{"type":"string","enum":["monthly","annual"],"title":"Billing Period","description":"Billing cadence"}},"type":"object","required":["plan_id","billing_period"],"title":"ReactivateSubscriptionRequest","description":"Request body for the subscription reactivation checkout."},"ReactivationCheckoutResponse":{"properties":{"url":{"type":"string","title":"Url","description":"Stripe hosted checkout URL to redirect the user"},"checkout_session_id":{"type":"string","title":"Checkout Session Id","description":"Stripe checkout session ID"}},"type":"object","required":["url","checkout_session_id"],"title":"ReactivationCheckoutResponse","description":"Response containing the Stripe hosted checkout URL."},"RecurringGrantScheduleResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"account_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"token_name":{"type":"string","title":"Token Name"},"usage_scope":{"type":"string","title":"Usage Scope","default":"default"},"amount":{"type":"string","title":"Amount"},"max_occurrences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Occurrences"},"recurrence_unit":{"type":"string","title":"Recurrence Unit"},"interval":{"type":"integer","title":"Interval"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"token_expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Token Expires Days"},"status":{"type":"string","title":"Status"},"last_issued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Issued At"},"next_due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Due At"},"issued_count":{"type":"integer","title":"Issued Count"},"remaining_occurrences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Remaining Occurrences"},"issued_by_user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issued By User Email"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data","default":{}},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","token_id","token_name","amount","recurrence_unit","interval","start_at","status","issued_count","created_at"],"title":"RecurringGrantScheduleResponse","description":"Response for a client's recurring token grant schedule (ledger client account + token)."},"RegisterAgentRequest":{"properties":{"external_agent_id":{"type":"string","maxLength":255,"minLength":1,"title":"External Agent Id"},"source":{"type":"string","title":"Source","default":"x402"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},"type":"object","required":["external_agent_id"],"title":"RegisterAgentRequest"},"RejectionSource":{"type":"string","enum":["client_block_admin","client_compliance","carbonarc_accounts","carbonarc_legal","carbonarc_engineering"],"title":"RejectionSource"},"ReplayConfig":{"properties":{"profiles":{"items":{"type":"string"},"type":"array","title":"Profiles"},"default_start":{"type":"string","title":"Default Start"},"default_end":{"type":"string","title":"Default End"},"default_judge_model":{"type":"string","title":"Default Judge Model"}},"type":"object","required":["profiles","default_start","default_end","default_judge_model"],"title":"ReplayConfig"},"ReplayRunRequest":{"properties":{"endpoint":{"type":"string","title":"Endpoint"},"sample":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Sample","default":100},"mode":{"type":"string","title":"Mode","default":"first-per-session"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"},"seed":{"type":"integer","title":"Seed","default":42},"judge_model":{"type":"string","title":"Judge Model","default":"claude-haiku-4-5-20251001"},"experiment":{"type":"string","title":"Experiment","default":"historical-judge-replay"},"host":{"type":"string","title":"Host","default":"https://mcp.dev.carbonarc.co"}},"type":"object","required":["endpoint"],"title":"ReplayRunRequest"},"ReportingHealthStatus":{"properties":{"status":{"type":"string","enum":["healthy","degraded","unknown"],"title":"Status"},"checked_at":{"type":"string","format":"date-time","title":"Checked At"},"overridden":{"type":"boolean","title":"Overridden","default":false}},"type":"object","required":["status","checked_at"],"title":"ReportingHealthStatus"},"Restriction":{"properties":{"enterprise_rules":{"items":{"$ref":"#/components/schemas/EnterpriseChannelRule"},"type":"array","title":"Enterprise Rules"},"signup_plan_rules":{"items":{"$ref":"#/components/schemas/SignupPlanChannelRule"},"type":"array","title":"Signup Plan Rules"},"enterprise_api_access_denied_all":{"type":"boolean","title":"Enterprise Api Access Denied All","default":false},"enterprise_mcp_access_denied_all":{"type":"boolean","title":"Enterprise Mcp Access Denied All","default":false}},"type":"object","title":"Restriction","description":"Provider restriction payload for create/update (admin)."},"RoleCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Parent Id"}},"type":"object","required":["name"],"title":"RoleCreate"},"RolePreview":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","name"],"title":"RolePreview"},"RoleRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Parent Id"},"id":{"type":"string","format":"uuid4","title":"Id"},"policy_rules":{"items":{"$ref":"#/components/schemas/PolicyRule"},"type":"array","title":"Policy Rules"}},"type":"object","required":["name","id","policy_rules"],"title":"RoleRead"},"RoleUpdate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parent_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Parent Id"},"policy_rules":{"items":{"$ref":"#/components/schemas/PolicyRule"},"type":"array","title":"Policy Rules"}},"type":"object","required":["name","policy_rules"],"title":"RoleUpdate"},"RowLimitResponse":{"properties":{"row_limit":{"type":"integer","title":"Row Limit"}},"type":"object","required":["row_limit"],"title":"RowLimitResponse"},"SampleArnRegisterBody":{"properties":{"arns":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Arns"}},"type":"object","required":["arns"],"title":"SampleArnRegisterBody","description":"``POST /block/arns/sample`` — register sample-scoped ARN(s)."},"SampleCatalogDisclaimerResponse":{"properties":{"sample_catalog_disclaimer_accepted_at":{"type":"string","format":"date-time","title":"Sample Catalog Disclaimer Accepted At"}},"type":"object","required":["sample_catalog_disclaimer_accepted_at"],"title":"SampleCatalogDisclaimerResponse"},"SchedulePriceChangeBody":{"properties":{"dataset_id":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"},"cut":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cut"},"access_type":{"$ref":"#/components/schemas/BlockPricingAccessTypeOut"},"effective_date":{"type":"string","format":"date","title":"Effective Date"},"price":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Price"},"revenue_share_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"string"},{"type":"null"}],"title":"Revenue Share Pct"},"deployment_fee":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deployment Fee"},"monthly_fee":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Monthly Fee"},"expected_row_version":{"type":"integer","minimum":0.0,"title":"Expected Row Version","default":0},"rationale":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Rationale"}},"type":"object","required":["dataset_id","access_type","effective_date"],"title":"SchedulePriceChangeBody","description":"Insert a new effective-date row.\n\n``expected_row_version`` is the row_version the UI saw when it loaded\nthe form. If a concurrent save bumped it on the same\n``(dataset_id, cut, access_type)`` since then, the service raises\n``StaleStateError`` and the UI prompts a reload.\n\nFor *new* SKUs that don't have any prior row, pass\n``expected_row_version=0`` so the service can distinguish first insert\nfrom a stale concurrent overwrite."},"ScheduledLedgerRecurrenceUnit":{"type":"string","enum":["day","week","month","year"],"title":"ScheduledLedgerRecurrenceUnit"},"ScheduledLedgerRecurringActionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"transaction_type":{"anyOf":[{"$ref":"#/components/schemas/LedgerTransactionType"},{"type":"null"}]},"amount_per_occurrence":{"type":"string","title":"Amount Per Occurrence"},"recurrence_unit":{"$ref":"#/components/schemas/ScheduledLedgerRecurrenceUnit"},"interval":{"type":"integer","title":"Interval"},"start_at":{"type":"string","format":"date-time","title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"max_occurrences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Occurrences"},"issued_count":{"type":"integer","title":"Issued Count","default":0},"last_issued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Issued At"},"next_occurrence_due":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Occurrence Due"},"token_expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Token Expires Days"},"status":{"$ref":"#/components/schemas/ScheduledLedgerRecurringStatus"},"plan_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Plan Id"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"}},"type":"object","required":["id","client_id","token_id","amount_per_occurrence","recurrence_unit","interval","start_at","status","created_at"],"title":"ScheduledLedgerRecurringActionResponse"},"ScheduledLedgerRecurringStatus":{"type":"string","enum":["active","paused","completed","cancelled"],"title":"ScheduledLedgerRecurringStatus"},"ScheduledTransactionResponse":{"properties":{"schedule_type":{"type":"string","enum":["recurring","one_time"],"title":"Schedule Type"},"id":{"type":"string","format":"uuid","title":"Id"},"account_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"token_name":{"type":"string","title":"Token Name"},"usage_scope":{"type":"string","title":"Usage Scope","default":"default"},"amount":{"type":"string","title":"Amount"},"status":{"type":"string","title":"Status"},"issued_by_user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issued By User Email"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data","default":{}},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"recurrence_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Unit"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"max_occurrences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Occurrences"},"token_expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Token Expires Days"},"last_issued_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Issued At"},"next_due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Due At"},"issued_count":{"type":"integer","title":"Issued Count","default":0},"remaining_occurrences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Remaining Occurrences"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","required":["schedule_type","id","token_id","token_name","amount","status","created_at"],"title":"ScheduledTransactionResponse","description":"Unified response for scheduled transactions (client self-service and admin-style listings).\n\nRecurring rows mirror ``RecurringGrantScheduleResponse`` field names. One-time scheduled\ngrants use ``scheduled_at`` and omit recurrence fields (null)."},"SendNotificationResponse":{"properties":{"notification_id":{"type":"string","format":"uuid","title":"Notification Id"},"recipient_count":{"type":"integer","title":"Recipient Count"},"status":{"type":"string","enum":["draft","sending","sent","failed"],"title":"Status"}},"type":"object","required":["notification_id","recipient_count","status"],"title":"SendNotificationResponse","description":"Response from ``POST /email-notifications/{id}/send`` and /resend-failed."},"SetClientPolarisCredentialsRequest":{"properties":{"polaris_client_id":{"type":"string","minLength":1,"title":"Polaris Client Id","description":"Existing Polaris client_id for this client's principal — obtained out-of-band (customer's vault, original onboarding ticket, etc.)."},"polaris_client_secret":{"type":"string","minLength":1,"title":"Polaris Client Secret","description":"Existing Polaris client_secret matching ``polaris_client_id``. Polaris does not expose existing secrets, so this is the only path for CAMS to hold creds for a principal it didn't mint."},"polaris_principal_name":{"type":"string","minLength":1,"title":"Polaris Principal Name","description":"Polaris principal name the pair belongs to. Required: CAMS will not derive or carry forward a stored value — the operator must name the principal explicitly so the three columns are always written together from a single source."}},"type":"object","required":["polaris_client_id","polaris_client_secret","polaris_principal_name"],"title":"SetClientPolarisCredentialsRequest"},"SettingField_bool_":{"properties":{"value":{"type":"boolean","title":"Value"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"last_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Rationale"}},"type":"object","required":["value"],"title":"SettingField[bool]"},"SettingField_int_":{"properties":{"value":{"type":"integer","title":"Value"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"last_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Rationale"}},"type":"object","required":["value"],"title":"SettingField[int]"},"SettingField_str_":{"properties":{"value":{"type":"string","title":"Value"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"last_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Rationale"}},"type":"object","required":["value"],"title":"SettingField[str]"},"SignupAlertSettingsRead":{"properties":{"alerts_enabled":{"$ref":"#/components/schemas/SettingField_bool_"},"stuck_threshold_minutes":{"$ref":"#/components/schemas/SettingField_int_"},"recipient_email":{"$ref":"#/components/schemas/SettingField_str_"},"watcher_interval_minutes":{"type":"integer","title":"Watcher Interval Minutes"}},"type":"object","required":["alerts_enabled","stuck_threshold_minutes","recipient_email","watcher_interval_minutes"],"title":"SignupAlertSettingsRead","description":"Current internal signup alert tuning. Each tunable field carries its\nown ``updated_at`` / ``updated_by`` / ``last_rationale`` so the UI can\nshow per-setting history."},"SignupAlertSettingsUpdate":{"properties":{"alerts_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Alerts Enabled"},"stuck_threshold_minutes":{"anyOf":[{"type":"integer","maximum":1440.0,"minimum":1.0},{"type":"null"}],"title":"Stuck Threshold Minutes"},"recipient_email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Recipient Email"},"rationale":{"type":"string","maxLength":500,"title":"Rationale","description":"Required. Why this change is being made (min 3 characters, trimmed)."}},"type":"object","required":["rationale"],"title":"SignupAlertSettingsUpdate","description":"Payload to update alert tuning. Omitted value fields are left\nuntouched. ``rationale`` is always required on PATCH and must be at least\nthree non-whitespace characters (aligned with ``set_setting``)."},"SignupBillingPortalRequest":{"properties":{"return_url":{"type":"string","title":"Return Url","description":"URL to return to after the portal (should include signup session_id for status polling)"}},"type":"object","required":["return_url"],"title":"SignupBillingPortalRequest","description":"Request for creating a billing portal session during signup (e.g. to fix payment method)."},"SignupBillingPortalResponse":{"properties":{"url":{"type":"string","title":"Url","description":"Stripe Customer Portal URL"},"session_id":{"type":"string","title":"Session Id","description":"Signup session_id (for frontend consistency)"}},"type":"object","required":["url","session_id"],"title":"SignupBillingPortalResponse","description":"Response with Stripe Billing Portal URL for signup payment retry."},"SignupCheckoutCreateResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"checkout_session_id":{"type":"string","title":"Checkout Session Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"status":{"type":"string","title":"Status"},"capi_event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capi Event Id"},"purchase_capi_event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purchase Capi Event Id"}},"type":"object","required":["session_id","checkout_session_id","status"],"title":"SignupCheckoutCreateResponse"},"SignupCompleteResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"is_complete":{"type":"boolean","title":"Is Complete"},"message":{"type":"string","title":"Message"}},"type":"object","required":["session_id","is_complete","message"],"title":"SignupCompleteResponse"},"SignupEventResponse":{"properties":{"id":{"type":"string","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"source":{"type":"string","title":"Source"},"from_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Status"},"to_status":{"type":"string","title":"To Status"},"created_at":{"type":"string","title":"Created At"},"snapshot":{"additionalProperties":true,"type":"object","title":"Snapshot"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"}},"type":"object","required":["id","event_type","source","to_status","created_at","snapshot"],"title":"SignupEventResponse"},"SignupInitiateRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","minLength":8,"title":"Password"},"first_name":{"type":"string","minLength":1,"title":"First Name","description":"User's first/given name"},"last_name":{"type":"string","minLength":1,"title":"Last Name","description":"User's last/family name"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name","description":"Optional company name to be used as the client name"},"selected_plan_id":{"type":"string","title":"Selected Plan Id","description":"Plan ID: 'business' or 'professional'"},"subscription_period":{"type":"string","title":"Subscription Period","description":"Subscription billing period: 'monthly' or 'annual'"},"signup_tou_id":{"type":"string","title":"Signup Tou Id","description":"UUID of the Terms of Use version accepted by the user"},"marketing_opt_in":{"type":"boolean","title":"Marketing Opt In","default":false},"fbp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fbp","description":"Meta _fbp browser cookie"},"fbc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fbc","description":"Meta _fbc click ID cookie"}},"type":"object","required":["email","password","first_name","last_name","selected_plan_id","subscription_period","signup_tou_id"],"title":"SignupInitiateRequest"},"SignupInitiateResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"email":{"type":"string","title":"Email"},"status":{"type":"string","title":"Status"},"capi_event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capi Event Id"}},"type":"object","required":["session_id","email","status"],"title":"SignupInitiateResponse"},"SignupInternalNoteCreate":{"properties":{"body":{"type":"string","maxLength":1000,"title":"Body"}},"type":"object","required":["body"],"title":"SignupInternalNoteCreate"},"SignupInternalNoteListResponse":{"properties":{"notes":{"items":{"$ref":"#/components/schemas/SignupInternalNoteRead"},"type":"array","title":"Notes"}},"type":"object","required":["notes"],"title":"SignupInternalNoteListResponse"},"SignupInternalNoteRead":{"properties":{"id":{"type":"string","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"body":{"type":"string","title":"Body"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","session_id","body","created_at"],"title":"SignupInternalNoteRead"},"SignupInternalTrackingAuditChange":{"properties":{"field":{"type":"string","title":"Field"},"before":{"type":"string","title":"Before"},"after":{"type":"string","title":"After"}},"type":"object","required":["field","before","after"],"title":"SignupInternalTrackingAuditChange"},"SignupInternalTrackingAuditEntryRead":{"properties":{"id":{"type":"string","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"actor_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"changes":{"items":{"$ref":"#/components/schemas/SignupInternalTrackingAuditChange"},"type":"array","title":"Changes"}},"type":"object","required":["id","session_id","created_at","changes"],"title":"SignupInternalTrackingAuditEntryRead"},"SignupInternalTrackingAuditListResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/SignupInternalTrackingAuditEntryRead"},"type":"array","title":"Entries"}},"type":"object","required":["entries"],"title":"SignupInternalTrackingAuditListResponse"},"SignupInternalTrackingRead":{"properties":{"session_id":{"type":"string","title":"Session Id"},"importance":{"type":"string","title":"Importance"},"tracking_status":{"type":"string","title":"Tracking Status"},"assignee_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Email"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"assignee_notification_sent":{"type":"boolean","title":"Assignee Notification Sent","description":"True when an assignee notification email was sent successfully in this request.","default":false}},"type":"object","required":["session_id","importance","tracking_status"],"title":"SignupInternalTrackingRead"},"SignupInternalTrackingUpdate":{"properties":{"importance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Importance"},"tracking_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tracking Status"},"assignee_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Assignee Email"}},"type":"object","title":"SignupInternalTrackingUpdate"},"SignupOpsAnalyticsResponse":{"properties":{"summary":{"$ref":"#/components/schemas/SignupOpsAnalyticsSummary"},"status_distribution":{"items":{"$ref":"#/components/schemas/SignupOpsStatusCount"},"type":"array","title":"Status Distribution"},"verification_failures_by_code":{"items":{"$ref":"#/components/schemas/SignupOpsVerificationFailureBucket"},"type":"array","title":"Verification Failures By Code","description":"Failure events (verification, payment, provisioning) in range, grouped by error code or by event type when meta has no error_code."},"verification_outcome_options":{"items":{"$ref":"#/components/schemas/SignupOpsVerificationFailureBucket"},"type":"array","title":"Verification Outcome Options","description":"Failure codes/types in range for filter UI (same date/status/plan/tracking as request, but not restricted by failure-code selections)."},"incomplete_by_status":{"items":{"$ref":"#/components/schemas/SignupOpsStatusCount"},"type":"array","title":"Incomplete By Status"},"time_series":{"items":{"$ref":"#/components/schemas/SignupOpsTimeSeriesPoint"},"type":"array","title":"Time Series"},"bucket":{"type":"string","title":"Bucket","default":"day"}},"type":"object","required":["summary","status_distribution","verification_failures_by_code","incomplete_by_status","time_series"],"title":"SignupOpsAnalyticsResponse"},"SignupOpsAnalyticsSummary":{"properties":{"total_in_range":{"type":"integer","title":"Total In Range"},"completed":{"type":"integer","title":"Completed"},"not_completed":{"type":"integer","title":"Not Completed"},"users_stuck":{"type":"integer","title":"Users Stuck","description":"Non-completed signups that are stuck: at least one email_verification_failed, payment_failed, or provisioning_failed event, or latest status provisioning_in_progress with the last event older than 10 minutes (current snapshot within filters)."},"users_opted_out":{"type":"integer","title":"Users Opted Out","description":"Non-completed signups that are not stuck: no failure events and not long-running provisioning_in_progress (abandoned / in-progress without failure or hung provisioning)."},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate","description":"completed / (completed + users_stuck) when that sum > 0; opted-out users excluded"}},"type":"object","required":["total_in_range","completed","not_completed","users_stuck","users_opted_out"],"title":"SignupOpsAnalyticsSummary"},"SignupOpsMetaResponse":{"properties":{"postgres_schema":{"type":"string","title":"Postgres Schema"},"signup_verification_max_attempts_per_email":{"type":"integer","title":"Signup Verification Max Attempts Per Email","description":"Max paid verification attempts per email before signup is blocked (matches signup_verification_max_attempts_per_email)."},"internal_email_domains":{"items":{"type":"string"},"type":"array","title":"Internal Email Domains","description":"Lowercase email domains treated as internal (exclude_internal filters, aligned with reporting unmapped-email rollup)."},"internal_email_domain_substring":{"type":"string","title":"Internal Email Domain Substring","description":"When non-empty, the email domain (after @) is also treated as internal if it contains this substring (case-insensitive), in addition to internal_email_domains."}},"type":"object","required":["postgres_schema","signup_verification_max_attempts_per_email","internal_email_domains","internal_email_domain_substring"],"title":"SignupOpsMetaResponse"},"SignupOpsPendingRow":{"properties":{"session_id":{"type":"string","title":"Session Id"},"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"status":{"type":"string","title":"Status"},"selected_plan_id":{"type":"string","title":"Selected Plan Id"},"subscription_period":{"type":"string","title":"Subscription Period"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"tracking":{"anyOf":[{"$ref":"#/components/schemas/SignupInternalTrackingRead"},{"type":"null"}]},"verification_error_codes":{"items":{"type":"string"},"type":"array","title":"Verification Error Codes","description":"Distinct error_code values from all email_verification_failed events for this session, newest-first."},"verification_error_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verification Error Meta","description":"Full meta_data from the latest email_verification_failed event."},"stripe_verification_session_dashboard_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Verification Session Dashboard Url","description":"Stripe Dashboard URL for the Identity verification session when stripe_session_id (or stripe_verification_data.id) is present in verification_error_meta."},"verification_attempts_used":{"type":"integer","title":"Verification Attempts Used","description":"Current email verification code attempt count on the pending signup row (pending_signups.verification_code_attempts).","default":0},"verification_reset_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verification Reset At","description":"When an admin last reset the code attempt counter (pending_signups.verification_code_attempts_reset_at)."},"verification_reset_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Reset By","description":"Admin who last reset the code attempt counter (pending_signups.verification_code_attempts_reset_by)."}},"type":"object","required":["session_id","email","first_name","last_name","status","selected_plan_id","subscription_period"],"title":"SignupOpsPendingRow"},"SignupOpsStatusCount":{"properties":{"status":{"type":"string","title":"Status"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["status","count"],"title":"SignupOpsStatusCount"},"SignupOpsTimeSeriesPoint":{"properties":{"bucket_date":{"type":"string","format":"date","title":"Bucket Date"},"signups_created":{"type":"integer","title":"Signups Created","default":0},"signups_completed":{"type":"integer","title":"Signups Completed","default":0},"verification_failures":{"type":"integer","title":"Verification Failures","description":"Count of email_verification_failed, payment_failed, and provisioning_failed events in this bucket.","default":0},"users_stuck":{"type":"integer","title":"Users Stuck","description":"Non-completed signups created in this bucket that are stuck (failure events or provisioning_in_progress beyond 10 minutes on latest event; current snapshot).","default":0},"users_opted_out":{"type":"integer","title":"Users Opted Out","description":"Non-completed signups created in this bucket that are not stuck (see summary).","default":0}},"type":"object","required":["bucket_date"],"title":"SignupOpsTimeSeriesPoint"},"SignupOpsVerificationFailureBucket":{"properties":{"error_code":{"type":"string","title":"Error Code"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["error_code","count"],"title":"SignupOpsVerificationFailureBucket"},"SignupPlanActionSchema":{"properties":{"type":{"type":"string","title":"Type"},"params":{"additionalProperties":true,"type":"object","title":"Params"}},"type":"object","required":["type"],"title":"SignupPlanActionSchema"},"SignupPlanChannelRule":{"properties":{"plan_id":{"type":"string","title":"Plan Id"},"api_access_denied":{"type":"boolean","title":"Api Access Denied","default":false},"mcp_access_denied":{"type":"boolean","title":"Mcp Access Denied","default":false}},"type":"object","required":["plan_id"],"title":"SignupPlanChannelRule"},"SignupPlanConfigRead":{"properties":{"plan_id":{"type":"string","title":"Plan Id"},"display_name":{"type":"string","title":"Display Name"},"stripe_price_id_monthly":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Price Id Monthly"},"stripe_price_id_annual":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Price Id Annual"},"stripe_kyc_flow":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stripe Kyc Flow"},"actions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Actions"},"version":{"type":"string","title":"Version","default":"1.0"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["plan_id","display_name"],"title":"SignupPlanConfigRead","description":"One plan config for API response."},"SignupPlanConfigUpdate":{"properties":{"display_name":{"type":"string","minLength":1,"title":"Display Name"},"stripe_price_id_monthly":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Price Id Monthly"},"stripe_price_id_annual":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Price Id Annual"},"stripe_kyc_flow":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Stripe Kyc Flow"},"actions":{"items":{"$ref":"#/components/schemas/SignupPlanActionSchema"},"type":"array","title":"Actions"},"rationale":{"type":"string","minLength":1,"title":"Rationale"}},"type":"object","required":["display_name","rationale"],"title":"SignupPlanConfigUpdate","description":"Payload to create or update a plan config."},"SignupProvisioningStepResponse":{"properties":{"id":{"type":"string","title":"Id"},"step_name":{"type":"string","title":"Step Name"},"status":{"type":"string","title":"Status"},"error":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Error"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"failed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failed At"}},"type":"object","required":["id","step_name","status"],"title":"SignupProvisioningStepResponse"},"SignupStatusResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"user_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Message"}},"type":"object","required":["session_id","status"],"title":"SignupStatusResponse"},"SignupTOUAcceptanceRequest":{"properties":{"signup_tou_id":{"type":"string","format":"uuid","title":"Signup Tou Id","description":"The ID of the signup TOU version being accepted"}},"type":"object","required":["signup_tou_id"],"title":"SignupTOUAcceptanceRequest"},"SignupTOUAcceptanceResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"last_accepted_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Accepted Version"},"last_accepted_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Last Accepted Version Id"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"}},"type":"object","required":["id","name","email"],"title":"SignupTOUAcceptanceResponse"},"SignupTOUUpdateRequest":{"properties":{"content":{"type":"string","title":"Content"},"change_type":{"type":"string","enum":["substantive","typo_formatting"],"title":"Change Type"},"change_reason":{"type":"string","minLength":1,"title":"Change Reason","description":"Required reason for change"},"effective_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective At","description":"Effective date/time for this ToU version. Defaults to published_at if not provided."},"base_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Base Version Id","description":"Optimistic concurrency check. The TOU version id the user based their edit on. If the latest published TOU has a different id, the update will be rejected and the user should reload."}},"type":"object","required":["content","change_type","change_reason"],"title":"SignupTOUUpdateRequest"},"SignupTOUVersionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"content":{"type":"string","title":"Content"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"checksum":{"type":"string","title":"Checksum"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"version_num":{"type":"integer","title":"Version Num"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"requires_reacceptance":{"type":"boolean","title":"Requires Reacceptance"},"change_reason":{"type":"string","title":"Change Reason"},"created_by":{"type":"string","title":"Created By"}},"type":"object","required":["id","content","effective_at","checksum","created_at","version_num","published_at","requires_reacceptance","change_reason","created_by"],"title":"SignupTOUVersionResponse"},"SignupTroubleshootResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"session_id":{"type":"string","title":"Session Id"},"email":{"type":"string","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"status":{"type":"string","title":"Status"},"selected_plan_id":{"type":"string","title":"Selected Plan Id"},"subscription_period":{"type":"string","title":"Subscription Period"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"stripe_subscription_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stripe Subscription Data"},"verification_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Type"},"events":{"items":{"$ref":"#/components/schemas/SignupEventResponse"},"type":"array","title":"Events"},"provisioning_steps":{"items":{"$ref":"#/components/schemas/SignupProvisioningStepResponse"},"type":"array","title":"Provisioning Steps"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},"type":"object","required":["session_id","email","status","selected_plan_id","subscription_period","events","provisioning_steps"],"title":"SignupTroubleshootResponse"},"StatusUpdate":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"StatusUpdate","description":"Generic status override. Service validates against VALID_STATUSES."},"StripeCancellationRead":{"properties":{"subscription_id":{"type":"string","title":"Subscription Id"},"customer_id":{"type":"string","title":"Customer Id"},"customer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email"},"customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"cancellation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Reason"},"cancellation_reason_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Reason Text"},"cancellation_details_feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Feedback"},"cancellation_details_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Comment"},"cancellation_details_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Reason"},"status":{"type":"string","title":"Status"}},"type":"object","required":["subscription_id","customer_id","status"],"title":"StripeCancellationRead","description":"Schema for the Stripe cancellations report — matches the Stripe custom report CSV columns."},"StripeCustomerInvoice":{"properties":{"id":{"type":"string","title":"Id"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"amount_due":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Due"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created"},"due_date":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Due Date"},"period_start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Period Start"},"period_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Period End"},"hosted_invoice_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hosted Invoice Url"},"customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"}},"type":"object","required":["id"],"title":"StripeCustomerInvoice"},"StripeCustomerInvoiceListResponse":{"properties":{"invoices":{"items":{"$ref":"#/components/schemas/StripeCustomerInvoice"},"type":"array","title":"Invoices"},"has_more":{"type":"boolean","title":"Has More"},"first_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Id"},"last_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Id"}},"type":"object","required":["invoices","has_more"],"title":"StripeCustomerInvoiceListResponse"},"StripeInvoiceItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"stripe_invoice_id":{"type":"string","title":"Stripe Invoice Id"},"stripe_customer_id":{"type":"string","title":"Stripe Customer Id"},"amount_cents":{"type":"integer","title":"Amount Cents"},"currency":{"type":"string","title":"Currency"},"status":{"type":"string","title":"Status"},"token_amount":{"type":"number","title":"Token Amount"},"token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Token Id"},"hosted_invoice_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hosted Invoice Url"},"invoice_pdf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoice Pdf"},"payment_intent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Intent Id"},"due_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due Date"},"paid_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"},"voided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Voided At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","stripe_invoice_id","stripe_customer_id","amount_cents","currency","status","token_amount","token_id","hosted_invoice_url","invoice_pdf","payment_intent_id","due_date","paid_at","voided_at","created_at","updated_at"],"title":"StripeInvoiceItem"},"StripePriceRead":{"properties":{"id":{"type":"string","title":"Id"},"nickname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nickname"},"unit_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Unit Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"recurring_interval":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurring Interval"},"recurring_interval_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recurring Interval Count"}},"type":"object","required":["id"],"title":"StripePriceRead"},"StripeProductRead":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"default_price":{"anyOf":[{"$ref":"#/components/schemas/StripePriceRead"},{"type":"null"}]}},"type":"object","required":["id","name"],"title":"StripeProductRead"},"StripeProductVisibilityBulkUpdate":{"properties":{"products":{"items":{"$ref":"#/components/schemas/StripeProductVisibilitySetting"},"type":"array","title":"Products"}},"type":"object","required":["products"],"title":"StripeProductVisibilityBulkUpdate"},"StripeProductVisibilitySetting":{"properties":{"stripe_product_id":{"type":"string","title":"Stripe Product Id"},"is_enabled":{"type":"boolean","title":"Is Enabled"}},"type":"object","required":["stripe_product_id","is_enabled"],"title":"StripeProductVisibilitySetting"},"StripeProductWithVisibility":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"default_price":{"anyOf":[{"$ref":"#/components/schemas/StripePriceRead"},{"type":"null"}]},"prices":{"items":{"$ref":"#/components/schemas/StripePriceRead"},"type":"array","title":"Prices","default":[]},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true}},"type":"object","required":["id","name"],"title":"StripeProductWithVisibility","description":"StripeProductRead extended with all prices and visibility toggle state."},"StripeSubscriptionItemRead":{"properties":{"id":{"type":"string","title":"Id"},"subscription_id":{"type":"string","title":"Subscription Id"},"price_id":{"type":"string","title":"Price Id"},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"},"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity"},"unit_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"recurring_interval":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurring Interval"},"recurring_interval_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recurring Interval Count"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw"}},"type":"object","required":["id","subscription_id","price_id"],"title":"StripeSubscriptionItemRead","description":"Schema for Stripe subscription items"},"StripeSubscriptionRead":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"status":{"type":"string","title":"Status"},"collection_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Method"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"},"id":{"type":"string","title":"Id"},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"},"product_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Product Id"},"cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel At"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"current_period_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period Start"},"current_period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period End"},"default_payment_method_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Payment Method Id"},"latest_invoice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Invoice Id"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"},"livemode":{"type":"boolean","title":"Livemode","default":false},"version_last_event_created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version Last Event Created"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw"},"billing_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Billing Amount"},"billing_cycle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Cycle"},"billing_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Email"},"stripe_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Product Id"},"subscription_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Name"},"cancellation_details_feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Feedback"},"cancellation_details_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Comment"},"cancellation_details_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Reason"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["customer_id","status","id"],"title":"StripeSubscriptionRead","description":"Schema for reading Stripe subscription data"},"StripeSubscriptionWithItems":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"status":{"type":"string","title":"Status"},"collection_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Method"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"},"id":{"type":"string","title":"Id"},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"},"product_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Product Id"},"cancel_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancel At"},"canceled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Canceled At"},"current_period_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period Start"},"current_period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period End"},"default_payment_method_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Payment Method Id"},"latest_invoice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Invoice Id"},"trial_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial End"},"livemode":{"type":"boolean","title":"Livemode","default":false},"version_last_event_created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version Last Event Created"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw"},"billing_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Billing Amount"},"billing_cycle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Cycle"},"billing_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Email"},"stripe_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Product Id"},"subscription_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Name"},"cancellation_details_feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Feedback"},"cancellation_details_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Comment"},"cancellation_details_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancellation Details Reason"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"items":{"items":{"$ref":"#/components/schemas/StripeSubscriptionItemRead"},"type":"array","title":"Items","default":[]}},"type":"object","required":["customer_id","status","id"],"title":"StripeSubscriptionWithItems","description":"Schema for Stripe subscription with items"},"SupplierCombinedResponse":{"properties":{"top_datasets_by_tokens":{"items":{"$ref":"#/components/schemas/TopDatasetRow"},"type":"array","title":"Top Datasets By Tokens"},"platform":{"$ref":"#/components/schemas/PlatformMetrics"},"block":{"$ref":"#/components/schemas/SupplierMatrixResponse"},"polaris_s3":{"$ref":"#/components/schemas/PolarisMetrics"},"mcp_server":{"$ref":"#/components/schemas/McpMetrics"}},"type":"object","required":["top_datasets_by_tokens","platform","block","polaris_s3","mcp_server"],"title":"SupplierCombinedResponse"},"SupplierMatrixResponse":{"properties":{"sources":{"items":{"type":"string"},"type":"array","title":"Sources"},"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows"}},"type":"object","required":["sources","rows"],"title":"SupplierMatrixResponse"},"SuspensionStatusResponse":{"properties":{"is_suspended":{"type":"boolean","title":"Is Suspended","description":"True if the current user's client has any suspended plan."}},"type":"object","required":["is_suspended"],"title":"SuspensionStatusResponse","description":"Response for suspension status check (e.g. on app first load)."},"TagCreateOrUpdate":{"properties":{"label":{"type":"string","title":"Label"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","required":["label"],"title":"TagCreateOrUpdate"},"TagList":{"properties":{"tags":{"items":{"$ref":"#/components/schemas/TagRead"},"type":"array","title":"Tags"}},"type":"object","required":["tags"],"title":"TagList"},"TagRead":{"properties":{"label":{"type":"string","title":"Label"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"id":{"type":"string","format":"uuid4","title":"Id"},"key":{"type":"string","title":"Key"}},"type":"object","required":["label","id","key"],"title":"TagRead"},"TaskStatusResponse":{"properties":{"task_id":{"type":"string","title":"Task Id"},"state":{"type":"string","title":"State"},"result":{"anyOf":[{},{"type":"null"}],"title":"Result"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["task_id","state"],"title":"TaskStatusResponse"},"TickerCreate":{"properties":{"message":{"type":"string","title":"Message","description":"Message content in Markdown format"},"priority":{"type":"integer","minimum":0.0,"title":"Priority","description":"Priority level (higher numbers = higher priority)","default":0},"is_active":{"type":"boolean","title":"Is Active","description":"Whether the ticker should be shown (active/inactive)","default":true},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At","description":"Start time (ISO-8601), null = immediate"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At","description":"End time (ISO-8601), null = indefinite"},"clients":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Clients","description":"Optional list of client IDs to target","default":[]}},"type":"object","required":["message"],"title":"TickerCreate"},"TickerResponse":{"properties":{"message":{"type":"string","title":"Message","description":"Message content in Markdown format"},"priority":{"type":"integer","minimum":0.0,"title":"Priority","description":"Priority level (higher numbers = higher priority)","default":0},"is_active":{"type":"boolean","title":"Is Active","description":"Whether the ticker should be shown (active/inactive)","default":true},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At","description":"Start time (ISO-8601), null = immediate"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At","description":"End time (ISO-8601), null = indefinite"},"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"clients":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Clients","description":"List of client IDs this ticker is assigned to","default":[]}},"type":"object","required":["message","id","created_at","updated_at","created_by"],"title":"TickerResponse"},"TickerUpdate":{"properties":{"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Message content in Markdown format"},"priority":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Priority","description":"Priority level (higher numbers = higher priority)"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","description":"Whether the ticker should be shown (active/inactive)"},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starts At","description":"Start time (ISO-8601), null = immediate"},"ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ends At","description":"End time (ISO-8601), null = indefinite"},"clients":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Clients","description":"Optional list of client IDs to target"}},"type":"object","title":"TickerUpdate"},"TierUpdate":{"properties":{"tier":{"anyOf":[{"type":"integer","maximum":3.0,"minimum":1.0},{"type":"null"}],"title":"Tier"}},"type":"object","title":"TierUpdate"},"TokenExpiryScheduleItem":{"properties":{"amount":{"type":"string","title":"Amount"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["amount","expires_at","token_type"],"title":"TokenExpiryScheduleItem","description":"Individual token expiry schedule entry"},"TokenExpiryScheduleWithBalanceResponse":{"properties":{"total_balance":{"type":"number","title":"Total Balance"},"promotional_balance":{"type":"number","title":"Promotional Balance"},"purchased_balance":{"type":"number","title":"Purchased Balance"},"expiry_schedule":{"items":{"$ref":"#/components/schemas/TokenExpiryScheduleItem"},"type":"array","title":"Expiry Schedule"}},"type":"object","required":["total_balance","promotional_balance","purchased_balance","expiry_schedule"],"title":"TokenExpiryScheduleWithBalanceResponse","description":"Response containing expiry schedule (excluding MCP) with balance summary"},"TokenResponse":{"properties":{"name":{"type":"string","title":"Name"},"is_promotional":{"type":"boolean","title":"Is Promotional"},"provider_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Provider Id"},"default_expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Expires Days"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data","default":{}},"is_integration":{"type":"boolean","title":"Is Integration","description":"True for integration tokens, False for primary tokens","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"is_active":{"type":"boolean","title":"Is Active"},"can_be_cashed_out":{"type":"boolean","title":"Can Be Cashed Out"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["name","is_promotional","default_expires_days","id","is_active","can_be_cashed_out","created_at","updated_at"],"title":"TokenResponse"},"TokenUpdate":{"properties":{"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name"},"is_promotional":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Promotional","description":"True for promotional tokens, False for primary tokens"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"default_expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Expires Days","description":"Days until token expires from grant date, used if no specific expiry provided during grant"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"}},"type":"object","title":"TokenUpdate"},"ToolMetric":{"properties":{"tool":{"type":"string","title":"Tool"},"total":{"type":"integer","title":"Total","default":0},"errors":{"type":"integer","title":"Errors","default":0},"error_rate_pct":{"type":"number","title":"Error Rate Pct","default":0.0}},"type":"object","required":["tool"],"title":"ToolMetric"},"TopDatasetRow":{"properties":{"supplier":{"type":"string","title":"Supplier"},"tokens":{"type":"number","title":"Tokens"},"clients":{"type":"integer","title":"Clients"}},"type":"object","required":["supplier","tokens","clients"],"title":"TopDatasetRow"},"TraceDetailRow":{"properties":{"trace_id":{"type":"string","title":"Trace Id","default":""},"session_id":{"type":"string","title":"Session Id","default":""},"trace_created_at":{"type":"string","title":"Trace Created At","default":""},"tool":{"type":"string","title":"Tool","default":""},"latency_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency S"},"client_name":{"type":"string","title":"Client Name","default":""},"user_email":{"type":"string","title":"User Email","default":""},"environment":{"type":"string","title":"Environment","default":""},"session_type":{"type":"string","title":"Session Type","default":""},"input_text":{"type":"string","title":"Input Text","default":""},"entities":{"type":"string","title":"Entities","default":""},"insights":{"type":"string","title":"Insights","default":""},"animal_name":{"type":"string","title":"Animal Name","default":""},"output_metadata_error":{"type":"string","title":"Output Metadata Error","default":""},"is_error":{"type":"string","title":"Is Error","default":""},"error_code":{"type":"string","title":"Error Code","default":""},"error_message":{"type":"string","title":"Error Message","default":""}},"type":"object","title":"TraceDetailRow"},"TraceDetailsResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/TraceDetailRow"},"type":"array","title":"Rows"},"total":{"type":"integer","title":"Total","default":0},"clients":{"items":{"type":"string"},"type":"array","title":"Clients","default":[]},"error_types":{"items":{"$ref":"#/components/schemas/ErrorTypeOption"},"type":"array","title":"Error Types","default":[]}},"type":"object","required":["rows"],"title":"TraceDetailsResponse"},"TransactionExportRequest":{"properties":{"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"token_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Name"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"}},"type":"object","title":"TransactionExportRequest","description":"Request body for transaction export."},"TranscriptRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"external_id":{"type":"string","title":"External Id"},"catalog_source_id":{"type":"string","format":"uuid","title":"Catalog Source Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"language":{"type":"string","title":"Language"},"transcript_type":{"type":"string","title":"Transcript Type"},"interview_date":{"type":"string","format":"date","title":"Interview Date"},"duration_minutes":{"type":"integer","title":"Duration Minutes"},"expert_anonymized":{"type":"boolean","title":"Expert Anonymized"},"meta_data":{"additionalProperties":true,"type":"object","title":"Meta Data"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"status_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","external_id","catalog_source_id","title","status","language","transcript_type","interview_date","duration_minutes","expert_anonymized","meta_data","created_at","updated_at"],"title":"TranscriptRead"},"TranscriptStatusUpdate":{"properties":{"status":{"type":"string","enum":["published","hidden","removed"],"title":"Status"},"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reason"}},"type":"object","required":["status"],"title":"TranscriptStatusUpdate"},"TrialStartTrigger":{"type":"string","enum":["first_ingestion","auto_start"],"title":"TrialStartTrigger"},"UpdateDataCollectionConsent":{"properties":{"data_collection_consent":{"type":"string","enum":["granted","not-granted"],"title":"Data Collection Consent"}},"type":"object","required":["data_collection_consent"],"title":"UpdateDataCollectionConsent"},"UpdateUserInfo":{"properties":{"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"}},"type":"object","required":["first_name","last_name"],"title":"UpdateUserInfo"},"UserAccessRow":{"properties":{"short_name":{"type":"string","title":"Short Name"},"business_name":{"type":"string","title":"Business Name"},"sector":{"type":"string","title":"Sector"},"num_server_requests":{"type":"integer","title":"Num Server Requests","default":0},"num_unique_emails":{"type":"integer","title":"Num Unique Emails","default":0},"unique_emails_list":{"items":{"type":"string"},"type":"array","title":"Unique Emails List","default":[]}},"type":"object","required":["short_name","business_name","sector"],"title":"UserAccessRow"},"UserActionLogCreate":{"properties":{"user_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"User Id"},"product_id":{"type":"string","format":"uuid4","title":"Product Id"},"action_type":{"type":"string","title":"Action Type"},"action_details":{"additionalProperties":true,"type":"object","title":"Action Details"}},"type":"object","required":["product_id","action_type","action_details"],"title":"UserActionLogCreate"},"UserActiveUpdate":{"properties":{"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["is_active"],"title":"UserActiveUpdate"},"UserBlockRoleUpdate":{"properties":{"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]}},"type":"object","title":"UserBlockRoleUpdate","description":"Null clears the block role (user has no additive Block capability)."},"UserBuilderFiltersFavoritesCreate":{"properties":{"flow":{"type":"string","title":"Flow","description":"Flow type (e.g., 'entity', 'insight')"},"name":{"type":"string","maxLength":255,"title":"Name","description":"User-defined name for the favorite"},"filters":{"additionalProperties":true,"type":"object","title":"Filters","description":"Filter configuration as JSON"}},"type":"object","required":["flow","name"],"title":"UserBuilderFiltersFavoritesCreate","description":"Schema for creating a new builder favorite"},"UserBuilderFiltersFavoritesRead":{"properties":{"flow":{"type":"string","title":"Flow","description":"Flow type (e.g., 'entity', 'insight')"},"name":{"type":"string","maxLength":255,"title":"Name","description":"User-defined name for the favorite"},"filters":{"additionalProperties":true,"type":"object","title":"Filters","description":"Filter configuration as JSON"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["flow","name","id"],"title":"UserBuilderFiltersFavoritesRead","description":"Schema for reading a builder favorite"},"UserBuilderFiltersFavoritesReadList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserBuilderFiltersFavoritesRead"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"UserBuilderFiltersFavoritesReadList"},"UserBuilderFiltersFavoritesUpdate":{"properties":{"flow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flow","description":"Flow type (e.g., 'entity', 'insight')"},"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name","description":"User-defined name for the favorite"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Filter configuration as JSON"}},"type":"object","title":"UserBuilderFiltersFavoritesUpdate","description":"Schema for updating an existing builder favorite"},"UserClientResolution":{"properties":{"email":{"type":"string","title":"Email"},"client_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Client Id"}},"type":"object","required":["email"],"title":"UserClientResolution"},"UserClientResolutionRequest":{"properties":{"emails":{"items":{"type":"string"},"type":"array","title":"Emails"}},"type":"object","required":["emails"],"title":"UserClientResolutionRequest"},"UserClientResolutionResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/UserClientResolution"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"UserClientResolutionResponse"},"UserConsumptionRow":{"properties":{"rank":{"type":"integer","title":"Rank"},"email":{"type":"string","title":"Email"},"short_name":{"type":"string","title":"Short Name"},"business_name":{"type":"string","title":"Business Name"},"plan_tier":{"type":"string","title":"Plan Tier","default":"Unassigned"},"tokens":{"type":"number","title":"Tokens","default":0},"mbs":{"type":"number","title":"Mbs","default":0},"records":{"type":"integer","title":"Records","default":0},"total_consumption":{"type":"number","title":"Total Consumption","default":0},"num_server_requests":{"type":"integer","title":"Num Server Requests","default":0},"mcp_tokens":{"type":"number","title":"Mcp Tokens","default":0},"mcp_tool_calls":{"type":"integer","title":"Mcp Tool Calls","default":0}},"type":"object","required":["rank","email","short_name","business_name"],"title":"UserConsumptionRow"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"transaction_limit":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Allocated Amount"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"role_id":{"type":"string","format":"uuid4","title":"Role Id"},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"extra_profile_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Profile Data"},"group_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Group Id"},"data_collection_consent":{"anyOf":[{"type":"string","enum":["granted","not-granted"]},{"type":"null"}],"title":"Data Collection Consent"}},"type":"object","required":["email","first_name","last_name","client_id"],"title":"UserCreate"},"UserDataCollectionConsentHistoryRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"change_type":{"type":"string","title":"Change Type"},"updated_by":{"type":"string","title":"Updated By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","user_id","client_id","change_type","updated_by","created_at","updated_at"],"title":"UserDataCollectionConsentHistoryRead"},"UserFeatureAccessCreate":{"properties":{"extra_info":{"additionalProperties":true,"type":"object","title":"Extra Info","default":{}},"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"}},"type":"object","required":["feature_id","user_id"],"title":"UserFeatureAccessCreate"},"UserFeatureAccessRead":{"properties":{"extra_info":{"additionalProperties":true,"type":"object","title":"Extra Info","default":{}},"feature_id":{"type":"string","format":"uuid4","title":"Feature Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["feature_id","user_id","id"],"title":"UserFeatureAccessRead"},"UserFeatureAccessUpdate":{"properties":{"extra_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Info"}},"type":"object","title":"UserFeatureAccessUpdate"},"UserFeatureFlagCreate":{"properties":{"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active"},"feature_flag_id":{"type":"string","format":"uuid4","title":"Feature Flag Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"}},"type":"object","required":["value","is_active","feature_flag_id","user_id"],"title":"UserFeatureFlagCreate"},"UserFeatureFlagRead":{"properties":{"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active"},"feature_flag_id":{"type":"string","format":"uuid4","title":"Feature Flag Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"id":{"type":"string","title":"Id","readOnly":true}},"type":"object","required":["value","is_active","feature_flag_id","user_id","id"],"title":"UserFeatureFlagRead"},"UserFeatureFlagUpdate":{"properties":{"feature_flag_id":{"type":"string","format":"uuid4","title":"Feature Flag Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"value":{"type":"string","title":"Value"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["feature_flag_id","user_id"],"title":"UserFeatureFlagUpdate"},"UserInfo":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id"}},"type":"object","required":["id","email","first_name","last_name","role_id"],"title":"UserInfo"},"UserInfoResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","format":"email","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"feature_flags":{"additionalProperties":true,"type":"object","title":"Feature Flags"},"providers_access":{"$ref":"#/components/schemas/ProvidersAccess"},"unmetered_providers":{"items":{"type":"string"},"type":"array","title":"Unmetered Providers"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"plan_tier":{"anyOf":[{"$ref":"#/components/schemas/ClientPlanTier"},{"type":"null"}]},"permissions":{"additionalProperties":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"type":"object","title":"Permissions"},"features":{"items":{"type":"string"},"type":"array","title":"Features"}},"type":"object","required":["id","email","first_name","last_name","client_id","feature_flags","providers_access","unmetered_providers","role","permissions","features"],"title":"UserInfoResponse"},"UserInfoRoleOnly":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"role":{"$ref":"#/components/schemas/RolePreview"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["id","email","first_name","last_name","role","is_active"],"title":"UserInfoRoleOnly","description":"Slim user projection used by the id-token endpoint.\n\nDeliberately omits ``client`` and ``group`` so Pydantic never touches those\nrelationships, preventing the N+1 lazy-load queries that would otherwise\nfire for every row when only ``role`` is eagerly loaded."},"UserInfoWithRoleStatus":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"role":{"$ref":"#/components/schemas/RolePreview"},"is_active":{"type":"boolean","title":"Is Active"},"client":{"anyOf":[{"$ref":"#/components/schemas/ClientInfo"},{"type":"null"}]},"transaction_limit":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Allocated Amount"},"mcp_daily_limit":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Mcp Daily Limit"},"mcp_daily_consumption":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Mcp Daily Consumption","default":0},"current_consumption":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Current Consumption","default":0},"group":{"anyOf":[{"$ref":"#/components/schemas/GroupRead"},{"type":"null"}]},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","email","first_name","last_name","role","is_active","status"],"title":"UserInfoWithRoleStatus"},"UserInterestCreate":{"properties":{"type":{"type":"string","title":"Type"},"label":{"type":"string","title":"Label"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","required":["type","label","data"],"title":"UserInterestCreate"},"UserInterestRead":{"properties":{"id":{"type":"string","format":"uuid4","title":"Id"},"user_id":{"type":"string","format":"uuid4","title":"User Id"},"type":{"type":"string","title":"Type"},"label":{"type":"string","title":"Label"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","required":["id","user_id","type","label","data"],"title":"UserInterestRead"},"UserLegalTabSignupTOUResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"effective_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Effective At"},"version_num":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version Num"},"has_accepted_current":{"type":"boolean","title":"Has Accepted Current"},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted At"},"first_revision_published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Revision Published At"},"current_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Current Version Id"},"current_version_num":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Version Num"},"current_version_first_revision_published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Version First Revision Published At"}},"type":"object","required":["has_accepted_current"],"title":"UserLegalTabSignupTOUResponse","description":"Schema for displaying TOU acceptance info in the admin portal user legal tab."},"UserProfile":{"properties":{"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"client":{"$ref":"#/components/schemas/ClientInfo"},"api_tokens":{"items":{"$ref":"#/components/schemas/APITokenRead"},"type":"array","title":"Api Tokens","default":[]},"api_keys":{"items":{"$ref":"#/components/schemas/ApiKeyRead"},"type":"array","title":"Api Keys","default":[]},"transaction_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transaction Limit"},"consumption_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Consumption Limit"},"mcp_daily_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mcp Daily Limit"},"current_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Consumption"},"group":{"anyOf":[{"$ref":"#/components/schemas/GroupRead"},{"type":"null"}]},"data_collection_consent":{"anyOf":[{"type":"string","enum":["granted","not-granted"]},{"type":"null"}],"title":"Data Collection Consent"},"data_collection_consent_restricted":{"type":"boolean","title":"Data Collection Consent Restricted","default":false},"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"data_interests":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Interests"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"onboarding_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Onboarding Started At"},"onboarding_completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Onboarding Completed At"},"sample_catalog_disclaimer_accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sample Catalog Disclaimer Accepted At"},"terms":{"anyOf":[{"$ref":"#/components/schemas/UserProfileSignupTOUVersionResponse"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"billing_owner":{"type":"boolean","title":"Billing Owner","default":false}},"type":"object","required":["email","first_name","last_name","client","created_at"],"title":"UserProfile"},"UserProfileCurrentTerms":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"content":{"type":"string","title":"Content"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"}},"type":"object","required":["id","content","effective_at"],"title":"UserProfileCurrentTerms"},"UserProfileSignupTOUVersionResponse":{"properties":{"has_accepted_current":{"type":"boolean","title":"Has Accepted Current"},"current_terms":{"anyOf":[{"$ref":"#/components/schemas/UserProfileCurrentTerms"},{"type":"null"}]}},"type":"object","required":["has_accepted_current"],"title":"UserProfileSignupTOUVersionResponse"},"UserProfileUpdate":{"properties":{"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"data_interests":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Interests"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"}},"type":"object","title":"UserProfileUpdate"},"UserProviderAccessChannel":{"properties":{"enabled":{"items":{"type":"string"},"type":"array","title":"Enabled"},"blocked":{"items":{"type":"string"},"type":"array","title":"Blocked"}},"type":"object","required":["enabled","blocked"],"title":"UserProviderAccessChannel"},"UserRead":{"properties":{"email":{"type":"string","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"transaction_limit":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Allocated Amount"},"id":{"type":"string","format":"uuid4","title":"Id"},"okta_user_id":{"type":"string","title":"Okta User Id"},"client_id":{"type":"string","format":"uuid4","title":"Client Id"},"extra_profile_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Profile Data"},"is_active":{"type":"boolean","title":"Is Active"},"billing_owner":{"type":"boolean","title":"Billing Owner"},"plan_tier":{"type":"string","title":"Plan Tier","default":""},"current_consumption":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Consumption"},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"group_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Group Id"},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name"},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"data_collection_consent":{"anyOf":[{"type":"string","enum":["granted","not-granted"]},{"type":"null"}],"title":"Data Collection Consent"},"terms":{"anyOf":[{"$ref":"#/components/schemas/UserLegalTabSignupTOUResponse"},{"type":"null"}]},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"deletion_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deletion Reason"}},"type":"object","required":["email","first_name","last_name","id","okta_user_id","client_id","is_active","billing_owner"],"title":"UserRead"},"UserRoleUpdate":{"properties":{"role_id":{"type":"string","format":"uuid4","title":"Role Id"}},"type":"object","required":["role_id"],"title":"UserRoleUpdate"},"UserRumMetricsRow":{"properties":{"avg_session_length_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Session Length Min"},"avg_frustration_count":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Frustration Count"},"avg_load_time_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Load Time Sec"},"pct_sessions_with_errors":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Sessions With Errors"},"email":{"type":"string","title":"Email"},"short_name":{"type":"string","title":"Short Name"},"business_name":{"type":"string","title":"Business Name"}},"type":"object","required":["email","short_name","business_name"],"title":"UserRumMetricsRow"},"UserUpdate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"transaction_limit":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Transaction Limit"},"allocated_amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Allocated Amount"},"extra_profile_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Profile Data"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"billing_owner":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Billing Owner","default":false},"role_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Role Id"},"block_role":{"anyOf":[{"$ref":"#/components/schemas/BlockRoleName"},{"type":"null"}]},"group_id":{"anyOf":[{"type":"string","format":"uuid4"},{"type":"null"}],"title":"Group Id"},"data_collection_consent":{"anyOf":[{"type":"string","enum":["granted","not-granted"]},{"type":"null"}],"title":"Data Collection Consent"}},"type":"object","required":["email","first_name","last_name"],"title":"UserUpdate"},"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"},"VisibilityUpdate":{"properties":{"visibility":{"type":"string","title":"Visibility"}},"type":"object","required":["visibility"],"title":"VisibilityUpdate"},"VolumePoint":{"properties":{"period":{"type":"string","title":"Period"},"traces":{"type":"integer","title":"Traces","default":0},"errors":{"type":"integer","title":"Errors","default":0},"error_rate_pct":{"type":"number","title":"Error Rate Pct","default":0.0}},"type":"object","required":["period"],"title":"VolumePoint"},"WalletMetadata":{"properties":{"name":{"type":"string","title":"Name"},"minimum_balance":{"type":"number","title":"Minimum Balance"},"maximum_balance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maximum Balance"},"meta_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta Data"}},"type":"object","required":["name","minimum_balance","maximum_balance","meta_data"],"title":"WalletMetadata"},"_AskAiLogCreate":{"properties":{"conversation_id":{"type":"string","maxLength":100,"title":"Conversation Id"},"user_email":{"type":"string","format":"email","title":"User Email"},"client_name":{"type":"string","maxLength":255,"title":"Client Name"},"total_cost":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"}],"title":"Total Cost"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["conversation_id","user_email","client_name","total_cost"],"title":"_AskAiLogCreate","description":"Deprecated inbound schema kept only for backward-compatible request parsing."},"_AskAiLogResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"message":{"type":"string","title":"Message","default":"Log created successfully"}},"type":"object","required":["id"],"title":"_AskAiLogResponse","example":{"id":"7abf23dd-2eb7-424a-a9e5-b764cae0e88e"}},"_DatasetFeesUpdateBody":{"properties":{"revenue_share_pct":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"string"},{"type":"null"}],"title":"Revenue Share Pct"},"deployment_fee":{"type":"boolean","title":"Deployment Fee","default":false},"monthly_fee":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string"},{"type":"null"}],"title":"Monthly Fee"},"update_revenue_share":{"type":"boolean","title":"Update Revenue Share","default":false},"update_deployment_fee":{"type":"boolean","title":"Update Deployment Fee","default":false},"update_monthly_fee":{"type":"boolean","title":"Update Monthly Fee","default":false}},"type":"object","title":"_DatasetFeesUpdateBody","description":"Partial update of dataset-level fees. Each field is gated by an\nexplicit ``update_*`` flag so the client can distinguish \"leave\nalone\" (flag false) from \"clear\" (flag true, value null)."},"_DatasetSettingUpdateBody":{"properties":{"status":{"anyOf":[{"$ref":"#/components/schemas/BlockDatasetStatus"},{"type":"null"}]},"trial_duration_months":{"anyOf":[{"type":"integer","maximum":12.0,"minimum":0.0},{"type":"null"}],"title":"Trial Duration Months"},"clear_trial_duration":{"type":"boolean","title":"Clear Trial Duration","default":false},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"update_notes":{"type":"boolean","title":"Update Notes","default":false}},"type":"object","title":"_DatasetSettingUpdateBody"},"_ShiftTrialWindowBody":{"properties":{"seconds_until_end":{"type":"integer","maximum":31622400.0,"minimum":0.0,"title":"Seconds Until End"}},"type":"object","required":["seconds_until_end"],"title":"_ShiftTrialWindowBody","description":"Time-warp the trial window so it ends ``seconds_until_end`` from\nnow; start is derived from ``trial_duration_months`` so the row stays\ninternally consistent. Seconds is the wire unit so the caller can\npick any granularity (days/hours/minutes/seconds). Must be ``>= 0``:\nnegative values would land the end in the past and skip the\nauto-expire transition path. Cap is 366 days (31_622_400s) — the UI\npresents a max of 366 in the chosen unit, so 366 days is the largest\npossible wire value."}},"securitySchemes":{"OAuth2AuthorizationCodeBearer":{"type":"oauth2","flows":{"authorizationCode":{"scopes":{},"authorizationUrl":"authorize","tokenUrl":"token"}}},"API Key":{"type":"apiKey","in":"header","name":"x-api-key"},"Client Id":{"type":"apiKey","in":"header","name":"x-client-id"},"Token":{"type":"apiKey","in":"header","name":"Token"}}}}