{"openapi":"3.1.0","info":{"title":"Listing Network API","description":"Real estate network platform API by MMO IT Solutions. All operations are org-scoped via hostname resolution. Three auth paths: JWT (human), API key (agent/service), OAuth 2.1 (future).","contact":{"name":"Juha Kukkonen","email":"juha7kukkonen@gmail.com"},"license":{"name":"MIT OR Apache-2.0","identifier":"MIT OR Apache-2.0"},"version":"0.1.8"},"paths":{"/analytics/content":{"get":{"tags":["analytics"],"summary":"Org content stats","description":"Returns aggregated daily content analytics for all content in the org within a date range.","operationId":"analytics.org_content_stats","parameters":[{"name":"from","in":"query","description":"Start date (YYYY-MM-DD).","required":true,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"End date (YYYY-MM-DD).","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Org-wide content stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ContentStatsDaily"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/analytics/content/{id}":{"get":{"tags":["analytics"],"summary":"Content stats","description":"Returns daily analytics for a content item within a date range.","operationId":"analytics.content_stats","parameters":[{"name":"id","in":"path","description":"Content ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"from","in":"query","description":"Start date (YYYY-MM-DD).","required":true,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"End date (YYYY-MM-DD).","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Daily content stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ContentStatsDaily"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/analytics/site-hostname/{id}":{"get":{"tags":["analytics"],"summary":"Site hostname stats","description":"Returns daily analytics for a site hostname within a date range.","operationId":"analytics.site_hostname_stats","parameters":[{"name":"id","in":"path","description":"SiteHostname ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"from","in":"query","description":"Start date (YYYY-MM-DD).","required":true,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"End date (YYYY-MM-DD).","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Daily site hostname stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_SiteHostnameStatsDaily"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api-key":{"get":{"tags":["api-key"],"summary":"List org API keys","description":"Returns all org-scoped API keys for the resolved org. Plaintext keys are never exposed; only prefixes and metadata.","operationId":"api-key.list","responses":{"200":{"description":"API key list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ApiKey"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["api-key"],"summary":"Create org API key","description":"Create an org-scoped API key. The raw key is returned once and cannot be retrieved again.","operationId":"api-key.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}},"required":true},"responses":{"201":{"description":"API key created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ApiKeyCreated"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api-key/{id}":{"delete":{"tags":["api-key"],"summary":"Revoke org API key","description":"Revoke an API key by setting its revoked_at. Auth rejects revoked keys immediately.","operationId":"api-key.delete","parameters":[{"name":"id","in":"path","description":"API key ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"API key revoked"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/forgot-password":{"post":{"tags":["auth"],"summary":"Request password reset","description":"Generate a password reset token for the given email. Always returns 200 regardless of whether the email exists (prevents email enumeration). In production the token would be emailed; for now it's returned in the response.","operationId":"auth.forgot_password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Reset token generated (if email exists)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ForgotPasswordResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/auth/login":{"post":{"tags":["auth"],"summary":"Log in with email and password","description":"Authenticate with email and password. Accepts both JSON and form POST (application/x-www-form-urlencoded). JSON requests return tokens on success (200) or a TOTP challenge (202). Form requests set HttpOnly cookies and redirect (302) on success, or return the TOTP challenge as JSON (202).","operationId":"auth.login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Authentication successful (JSON)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_AuthResponse"}}}},"202":{"description":"TOTP challenge issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_TotpChallengeResponse"}}}},"302":{"description":"Login successful (form POST), redirects with cookies set"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/auth/logout":{"post":{"tags":["auth"],"summary":"Log out and invalidate session","description":"Invalidate the current session. The access token will no longer be usable after the session is invalidated. Requires authentication via JWT bearer token.","operationId":"auth.logout","responses":{"204":{"description":"Session invalidated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/password":{"patch":{"tags":["auth"],"summary":"Change password","description":"Change the authenticated user's password. Requires the current password for verification.","operationId":"auth.change_password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"required":true},"responses":{"204":{"description":"Password changed"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/refresh":{"post":{"tags":["auth"],"summary":"Refresh access and refresh tokens","description":"Exchange a refresh token for new access and refresh tokens. The old refresh token is invalidated (rotation). If a previously-rotated token is reused, the entire token family is invalidated to protect against stolen token replay. Refresh tokens expire after 90 days.","operationId":"auth.refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshRequest"}}},"required":true},"responses":{"200":{"description":"Tokens refreshed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_AuthResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/auth/register":{"post":{"tags":["auth"],"summary":"Register a new account","description":"Create a new user with a personal organization. The user starts as pending and must verify their email via POST /auth/verify-email before logging in. Returns a verification token (in production this would be emailed).","operationId":"auth.register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Account created, verification required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_RegisterResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/auth/reset-password":{"post":{"tags":["auth"],"summary":"Reset password with token","description":"Reset the user's password using a token from POST /auth/forgot-password. The token is single-use and expires after 1 hour.","operationId":"auth.reset_password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"204":{"description":"Password reset successfully"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/auth/session":{"get":{"tags":["auth"],"summary":"List active sessions","description":"Returns the authenticated user's active sessions.","operationId":"auth.list_sessions","responses":{"200":{"description":"Session list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_Session"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/session/{id}":{"delete":{"tags":["auth"],"summary":"Revoke a session","description":"Revoke a specific session. The session must belong to the authenticated user.","operationId":"auth.revoke_session","parameters":[{"name":"id","in":"path","description":"Session ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Session revoked"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/totp":{"post":{"tags":["auth"],"summary":"Complete TOTP verification","description":"Complete TOTP verification after login. Submit the challenge token received from POST /auth/login (202 response) along with the current TOTP code from the authenticator app. The challenge token expires after 2 minutes. A recent-session replay window of 5 seconds prevents the same challenge from minting multiple sessions.","operationId":"auth.verify_totp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotpRequest"}}},"required":true},"responses":{"200":{"description":"TOTP verified, tokens issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_AuthResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/auth/totp/disable":{"post":{"tags":["auth"],"summary":"Disable TOTP","description":"Disable TOTP for the account. Requires the current password for verification.","operationId":"auth.totp_disable","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisableTotpRequest"}}},"required":true},"responses":{"204":{"description":"TOTP disabled"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/totp/enable":{"post":{"tags":["auth"],"summary":"Enable TOTP","description":"Verify a TOTP code and enable TOTP for the account. Must call POST /auth/totp/setup first. The code must match the secret from setup.","operationId":"auth.totp_enable","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableTotpRequest"}}},"required":true},"responses":{"204":{"description":"TOTP enabled"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/totp/setup":{"post":{"tags":["auth"],"summary":"Generate TOTP setup","description":"Generate a new TOTP secret and provisioning URI for QR code scanning. The secret is stored server-side. Submit the code from your authenticator app to POST /auth/totp/enable to activate.","operationId":"auth.totp_setup","responses":{"200":{"description":"TOTP setup info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_TotpSetupResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/auth/verify-email":{"post":{"tags":["auth"],"summary":"Verify email address","description":"Verify a user's email using the token from registration. Activates the account and returns auth tokens (auto-login).","operationId":"auth.verify_email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEmailRequest"}}},"required":true},"responses":{"200":{"description":"Email verified, tokens issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_AuthResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/billing/invoice":{"get":{"tags":["billing"],"summary":"List invoices","description":"Returns paginated invoices for the org.","operationId":"billing.list_invoices","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Invoice list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Invoice"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["billing"],"summary":"Create invoice","description":"Create a draft invoice for the org.","operationId":"billing.create_invoice","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceRequest"}}},"required":true},"responses":{"201":{"description":"Invoice created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Invoice"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/invoice/{id}":{"get":{"tags":["billing"],"summary":"Get invoice with line items","description":"Returns a single invoice with its line items.","operationId":"billing.get_invoice","parameters":[{"name":"id","in":"path","description":"Invoice ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Invoice with lines","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_InvoiceWithLines"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/invoice/{id}/adjustments":{"patch":{"tags":["billing"],"summary":"Set invoice adjustments","description":"Set the total_adjustments on a draft invoice. The total_amount is recalculated as subtotal + adjustments.","operationId":"billing.update_invoice_adjustments","parameters":[{"name":"id","in":"path","description":"Invoice ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAdjustmentsRequest"}}},"required":true},"responses":{"204":{"description":"Adjustments updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/invoice/{id}/line":{"post":{"tags":["billing"],"summary":"Add invoice line item","description":"Add a line item to a draft invoice. The invoice total is not auto-recalculated.","operationId":"billing.create_invoice_line","parameters":[{"name":"id","in":"path","description":"Invoice ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceLineRequest"}}},"required":true},"responses":{"201":{"description":"Line item added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_InvoiceLine"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/invoice/{id}/status":{"patch":{"tags":["billing"],"summary":"Update invoice status","description":"Transition an invoice status: draft -> sent, sent -> void/cancelled, etc. Setting status to 'sent' also records sent_at. Setting to 'paid' records paid_at.","operationId":"billing.update_invoice_status","parameters":[{"name":"id","in":"path","description":"Invoice ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInvoiceStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/invoice/{invoice_id}/line/{line_id}":{"delete":{"tags":["billing"],"summary":"Delete invoice line item","description":"Delete a single line item from a draft invoice. Totals are auto-recalculated.","operationId":"billing.delete_invoice_line","parameters":[{"name":"invoice_id","in":"path","description":"Invoice ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"line_id","in":"path","description":"Line item ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Line deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/payment":{"get":{"tags":["billing"],"summary":"List payments","description":"Returns paginated payments for the org.","operationId":"billing.list_payments","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Payment list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Payment"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["billing"],"summary":"Record payment","description":"Record a payment against an invoice.","operationId":"billing.create_payment","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentRequest"}}},"required":true},"responses":{"201":{"description":"Payment recorded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Payment"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/billing/profile":{"get":{"tags":["billing"],"summary":"Get billing profile","description":"Returns the org's billing profile including billing cycle and anchor date.","operationId":"billing.get_profile","responses":{"200":{"description":"Billing profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_OrgBillingProfile"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"put":{"tags":["billing"],"summary":"Create or update billing profile","description":"Set the org's billing cycle and anchor date. Creates the profile if it doesn't exist.","operationId":"billing.upsert_profile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertBillingProfileRequest"}}},"required":true},"responses":{"200":{"description":"Profile saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_OrgBillingProfile"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/bundle/import":{"post":{"tags":["capability"],"summary":"Import bundles from a YAML file","description":"Reconcile deployment-kit bundles (Starter, Broker Standard, Association) from a YAML file on disk. Idempotent — safe to re-run to apply edits. Bundles are upserted by slug, items upserted by (bundle_id, capability), and items not listed for a given bundle are pruned. Platform admin only (requires `catalog:manage`).","operationId":"capability.import_bundles","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportBundlesRequest"}}},"required":true},"responses":{"200":{"description":"Bundles imported","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ImportBundlesResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability":{"get":{"tags":["capability"],"summary":"List capability catalog","description":"Returns all capability definitions available on the platform. Use this to understand what capabilities exist before checking org access.","operationId":"capability.list_catalog","responses":{"200":{"description":"Capability catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_CatalogEntry"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/capability/bundle":{"get":{"tags":["capability"],"summary":"List bundles","description":"Returns all active capability bundles with their included capabilities and pricing.","operationId":"capability.list_bundles","responses":{"200":{"description":"Bundle list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_Bundle"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["capability"],"summary":"Create bundle","description":"Create a new capability bundle. Platform admin only. Bundles group capabilities into subscribable packages.","operationId":"capability.create_bundle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBundleRequest"}}},"required":true},"responses":{"201":{"description":"Bundle created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Bundle"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/bundle/{id}/item":{"post":{"tags":["capability"],"summary":"Add item to bundle","description":"Add a capability to an existing bundle. Specifies the grant type, optional quota, and optional credit cost for the capability within this bundle.","operationId":"capability.add_bundle_item","parameters":[{"name":"id","in":"path","description":"Bundle ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddBundleItemRequest"}}},"required":true},"responses":{"201":{"description":"Bundle item added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_BundleItem"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/bundle/{id}/item/{item_id}":{"delete":{"tags":["capability"],"summary":"Delete bundle item","description":"Remove a capability from a bundle.","operationId":"capability.delete_bundle_item","parameters":[{"name":"id","in":"path","description":"Bundle ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"item_id","in":"path","description":"Bundle item ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Bundle item deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/bundle/{id}/price":{"get":{"tags":["capability"],"summary":"List bundle prices","description":"Returns all pricing entries for a bundle, ordered by effective date descending.","operationId":"capability.list_bundle_prices","parameters":[{"name":"id","in":"path","description":"Bundle ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Bundle price list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_BundlePrice"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["capability"],"summary":"Create bundle price","description":"Add a pricing entry for a bundle. Each price is tied to a billing cycle and has an effective date range.","operationId":"capability.create_bundle_price","parameters":[{"name":"id","in":"path","description":"Bundle ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBundlePriceRequest"}}},"required":true},"responses":{"201":{"description":"Bundle price created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_BundlePrice"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/bundle/{id}/status":{"patch":{"tags":["capability"],"summary":"Update bundle status","description":"Update the status of a bundle. Valid statuses: draft, active, archived.","operationId":"capability.update_bundle_status","parameters":[{"name":"id","in":"path","description":"Bundle ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusRequest"}}},"required":true},"responses":{"204":{"description":"Bundle status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/effective":{"get":{"tags":["capability"],"summary":"List caller's effective capabilities","description":"Returns the capabilities the current caller can actually exercise — the intersection of org capabilities, API key scopes (if scoped), and role policy. Use this for agents and frontends to determine available actions.","operationId":"capability.list_effective","responses":{"200":{"description":"Effective capabilities","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_String"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/matrix":{"get":{"tags":["capability"],"summary":"Role capability matrix","description":"Returns the full role-to-capability permission matrix. Public endpoint for design-time discovery — agentic frontend builders use this to determine which capabilities each role can exercise.","operationId":"capability.matrix","responses":{"200":{"description":"Role matrix","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_HashMap_String_Vec_String"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/capability/org":{"get":{"tags":["capability"],"summary":"List org capabilities","description":"Returns all materialized capabilities for the resolved org. This is the admin/billing view — shows everything the org is entitled to regardless of the caller's role or API key scopes.","operationId":"capability.list_org","responses":{"200":{"description":"Org capabilities","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_OrgCapability"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/override":{"get":{"tags":["capability"],"summary":"List capability overrides","description":"Returns all capability overrides for the resolved org.","operationId":"capability.list_overrides","responses":{"200":{"description":"Override list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_OrgCapabilityOverride"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["capability"],"summary":"Create capability override","description":"Create or upsert a capability override for the resolved org. Overrides customize capability grants beyond what bundles provide. Triggers a rebuild of materialized capabilities.","operationId":"capability.create_override","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOverrideRequest"}}},"required":true},"responses":{"201":{"description":"Override created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_OrgCapabilityOverride"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/override/{id}":{"delete":{"tags":["capability"],"summary":"Delete capability override","description":"Delete a capability override by ID. Triggers a rebuild of materialized capabilities.","operationId":"capability.delete_override","parameters":[{"name":"id","in":"path","description":"Override ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Override deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/subscription":{"get":{"tags":["capability"],"summary":"List org subscriptions","description":"Returns paginated active subscriptions for the resolved org. Includes bundle details and subscription dates.","operationId":"capability.list_subscriptions","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Subscription list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_OrgSubscription"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/subscription/create":{"post":{"tags":["capability"],"summary":"Subscribe to bundle","description":"Subscribe the org to a bundle. Rebuilds materialized capabilities. Requires admin role.","operationId":"capability.subscribe","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribeRequest"}}},"required":true},"responses":{"201":{"description":"Subscription created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_OrgSubscription"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/capability/subscription/{id}/status":{"patch":{"tags":["capability"],"summary":"Update subscription status","description":"Update the status of an org subscription. Valid statuses: active, suspended, cancelled. Triggers a rebuild of materialized capabilities.","operationId":"capability.update_subscription_status","parameters":[{"name":"id","in":"path","description":"Subscription ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusRequest"}}},"required":true},"responses":{"204":{"description":"Subscription status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/content/{content_id}/media/{attachment_id}":{"get":{"tags":["listings"],"summary":"Serve media file","description":"Serve a media file by attachment ID. Access is determined by content visibility: public/network content is world-readable, organization/private content requires authentication.","operationId":"listings.serve_media","parameters":[{"name":"content_id","in":"path","description":"Content ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"attachment_id","in":"path","description":"Attachment ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"File data"},"404":{"description":"Not found"}},"security":[{}]}},"/content/{content_id}/share":{"get":{"tags":["share"],"summary":"List share links for content","description":"Returns all share links (including expired) for a content item.","operationId":"share.list","parameters":[{"name":"content_id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Share link list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ShareLinkResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["share"],"summary":"Create a share link","description":"Create a capability URL for anonymous access to content.","operationId":"share.create","parameters":[{"name":"content_id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareLinkRequest"}}},"required":true},"responses":{"201":{"description":"Share link created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ShareLinkResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/content/{content_id}/share/{share_id}":{"delete":{"tags":["share"],"summary":"Revoke a share link","description":"Permanently delete a share link, invalidating the capability URL.","operationId":"share.delete","parameters":[{"name":"content_id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"share_id","in":"path","description":"Share link ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Share link revoked"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/credit/balance":{"get":{"tags":["credit"],"summary":"Get credit balance","description":"Returns the org's current credit balance.","operationId":"credit.get_balance","responses":{"200":{"description":"Credit balance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_CreditBalanceResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/credit/pack":{"get":{"tags":["credit"],"summary":"List credit packs","description":"Returns available credit packs for purchase.","operationId":"credit.list_packs","parameters":[{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Credit pack list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_CreditPack"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["credit"],"summary":"Create credit pack","description":"Create a new credit pack. Platform admin operation.","operationId":"credit.create_pack","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePackRequest"}}},"required":true},"responses":{"201":{"description":"Credit pack created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_CreditPack"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/credit/pack/{id}/status":{"patch":{"tags":["credit"],"summary":"Update credit pack status","description":"Transition a credit pack's status through the lifecycle (draft → active → deprecated → archived). Platform admin operation.","operationId":"credit.update_pack_status","parameters":[{"name":"id","in":"path","description":"Credit pack ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePackStatusRequest"}}},"required":true},"responses":{"204":{"description":"Pack status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/credit/purchase":{"post":{"tags":["credit"],"summary":"Purchase credit pack","description":"Purchase a credit pack. Atomically creates the purchase record, adjusts balance, and records the transaction.","operationId":"credit.purchase_pack","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseRequest"}}},"required":true},"responses":{"201":{"description":"Purchase completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_CreditPurchase"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/credit/transaction":{"get":{"tags":["credit"],"summary":"List credit transactions","description":"Returns paginated credit transactions for the org. Includes purchases, usage, and adjustments.","operationId":"credit.list_transactions","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Transaction list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_CreditTransaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/edge":{"get":{"tags":["distribution"],"summary":"List distribution edges","description":"Returns distribution edges pointing to the resolved org. These represent content shared to this org from other orgs.","operationId":"distribution.list_edges","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Edge list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_DistributionEdgeResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["distribution"],"summary":"Create distribution edge","description":"Create a distribution edge to share content with another org.","operationId":"distribution.create_edge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEdgeRequest"}}},"required":true},"responses":{"201":{"description":"Edge created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_DistributionEdge"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/edge/content/{id}":{"get":{"tags":["distribution"],"summary":"List distribution edges for content","description":"Returns all distribution edges for a specific content item. Shows where the content has been distributed.","operationId":"distribution.list_edges_for_content","parameters":[{"name":"id","in":"path","description":"Content ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Edge list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_DistributionEdgeResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/edge/{id}":{"delete":{"tags":["distribution"],"summary":"Delete distribution edge","description":"Delete a distribution edge. Only the originating org can delete edges they created.","operationId":"distribution.delete_edge","parameters":[{"name":"id","in":"path","description":"Distribution edge ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Edge deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/override":{"post":{"tags":["distribution"],"summary":"Create visibility override","description":"Create a content visibility override for a specific org or user.","operationId":"distribution.create_override","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideRequest"}}},"required":true},"responses":{"201":{"description":"Override created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ContentOverride"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/override/content/{content_id}":{"get":{"tags":["distribution"],"summary":"List overrides for content","description":"Returns all visibility overrides for a specific content item.","operationId":"distribution.list_overrides","parameters":[{"name":"content_id","in":"path","description":"Content ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Override list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ContentOverrideResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/override/{id}":{"delete":{"tags":["distribution"],"summary":"Delete visibility override","description":"Delete a content visibility override. Verify the underlying content belongs to this org.","operationId":"distribution.delete_override","parameters":[{"name":"id","in":"path","description":"Override ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Override deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/reshare":{"post":{"tags":["distribution"],"summary":"Reshare content","description":"Reshare content to another org or to the network.","operationId":"distribution.create_reshare","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReshareRequest"}}},"required":true},"responses":{"201":{"description":"Reshare created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ContentReshare"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/reshare/content/{content_id}":{"get":{"tags":["distribution"],"summary":"List reshares for content","description":"Returns all reshares for a specific content item.","operationId":"distribution.list_reshares","parameters":[{"name":"content_id","in":"path","description":"Content ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Reshare list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ContentReshareResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/distribution/reshare/{id}":{"delete":{"tags":["distribution"],"summary":"Delete reshare","description":"Delete a content reshare. Only the originating org can delete reshares they created.","operationId":"distribution.delete_reshare","parameters":[{"name":"id","in":"path","description":"Reshare ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Reshare deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event":{"get":{"tags":["event"],"summary":"List events","description":"Returns published events for the resolved org. Visibility-aware: anonymous callers see public events only; authenticated callers also see org-visible events (if member) and private events (if registered).","operationId":"event.list","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Event list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Event"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["event"],"summary":"Create event","description":"Create a new event for the resolved org. The event is created in draft status. Accepts optional visibility (public, org, private; defaults to public).","operationId":"event.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEventRequest"}}},"required":true},"responses":{"201":{"description":"Event created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Event"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/manage":{"get":{"tags":["event.manage"],"summary":"List events (management)","description":"Returns all events for the resolved org regardless of status or visibility. Requires event:manage capability.","operationId":"event.manage.list","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":["string","null"]}},{"name":"event_type","in":"query","required":false,"schema":{"type":["string","null"]}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Event list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Event"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/manage/{event_id}/registration/{id}":{"delete":{"tags":["event.manage"],"summary":"Delete event registration","description":"Delete an event registration. Requires event:manage capability.","operationId":"event.manage.delete_registration","parameters":[{"name":"event_id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"id","in":"path","description":"Registration ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Registration deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/manage/{event_id}/registration/{id}/status":{"patch":{"tags":["event.manage"],"summary":"Update registration status","description":"Transition an event registration's status (e.g. pending -> confirmed). Validates the transition against the workflow.","operationId":"event.manage.update_registration_status","parameters":[{"name":"event_id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"id","in":"path","description":"Registration ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRegistrationStatusRequest"}}},"required":true},"responses":{"204":{"description":"Registration status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/manage/{id}":{"get":{"tags":["event.manage"],"summary":"Get event (management)","description":"Returns a single event by ID regardless of status or visibility. Requires event:manage capability.","operationId":"event.manage.get","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Event details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Event"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/manage/{id}/registration":{"get":{"tags":["event.manage"],"summary":"List registrations","description":"Returns paginated registrations for a specific event. Requires event:manage capability.","operationId":"event.manage.list_registrations","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Registration list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_EventRegistration"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/{id}":{"get":{"tags":["event"],"summary":"Get event","description":"Returns a single event by ID. Checks visibility: public events are visible to everyone, org-visible events require membership, private events require registration.","operationId":"event.get","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Event details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Event"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"patch":{"tags":["event"],"summary":"Update event","description":"Update an existing event. Supports partial updates -- only provided fields are changed.","operationId":"event.update","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventRequest"}}},"required":true},"responses":{"200":{"description":"Event updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Event"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/{id}/registration":{"post":{"tags":["event"],"summary":"Register for event","description":"Register for an event. Guests can only register as attendees. Non-attendee roles require event:manage capability. When `user_id` is provided and differs from the caller, this is an invite flow requiring event:manage.","operationId":"event.create_registration","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRegistrationRequest"}}},"required":true},"responses":{"201":{"description":"Registration created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_EventRegistration"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/event/{id}/session":{"get":{"tags":["event"],"summary":"List event sessions","description":"Returns paginated sessions for a specific event. Sessions are ordered by sort_order ascending.","operationId":"event.list_sessions","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Session list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_EventSession"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["event"],"summary":"Create event session","description":"Create a new session within an event. Sessions represent time blocks, talks, or activities within the event.","operationId":"event.create_session","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest"}}},"required":true},"responses":{"201":{"description":"Session created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_EventSession"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/{id}/session/{session_id}":{"delete":{"tags":["event"],"summary":"Delete event session","description":"Delete an event session. The session must belong to the specified event, and the event must belong to the resolved org.","operationId":"event.delete_session","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"session_id","in":"path","description":"Session ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Session deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/event/{id}/status":{"patch":{"tags":["event"],"summary":"Update event status","description":"Transition an event's status (e.g. draft -> published). Validates the transition against the workflow defined in /status/event/transitions.","operationId":"event.update_status","parameters":[{"name":"id","in":"path","description":"Event ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/health":{"get":{"tags":["system"],"summary":"Health check","description":"Health check endpoint. Returns ok if the API is running.","operationId":"system.health","responses":{"200":{"description":"API is healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_HealthResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/inquiries":{"get":{"tags":["inquiries"],"summary":"List inquiries","operationId":"inquiries.list","parameters":[{"name":"status","in":"query","description":"Filter by status.","required":false,"schema":{"type":"string"}},{"name":"content_id","in":"query","description":"Filter by content (interactions linked to this content as supply or demand).","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"user_id","in":"query","description":"Filter by user involvement (from or to).","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"from_user_id","in":"query","description":"Filter by originating user.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"to_user_id","in":"query","description":"Filter by target user.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Inquiry list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["inquiries"],"summary":"Create an inquiry","operationId":"inquiries.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInquiryRequest"}}},"required":true},"responses":{"201":{"description":"Inquiry created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/inquiries/submit":{"post":{"tags":["inquiries"],"summary":"Submit a public inquiry","description":"Anonymous: inquire about a public listing. Creates an interaction and resolves/creates a pending user.","operationId":"inquiries.submit","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicInquiryRequest"}}},"required":true},"responses":{"201":{"description":"Inquiry submitted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Value"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/inquiries/{id}":{"get":{"tags":["inquiries"],"summary":"Get inquiry by ID","operationId":"inquiries.get","parameters":[{"name":"id","in":"path","description":"Interaction snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Inquiry found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"delete":{"tags":["inquiries"],"summary":"Delete inquiry","operationId":"inquiries.delete","parameters":[{"name":"id","in":"path","description":"Interaction snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/inquiries/{id}/data":{"patch":{"tags":["inquiries"],"summary":"Update inquiry data","operationId":"inquiries.update_data","parameters":[{"name":"id","in":"path","description":"Interaction snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataRequest"}}},"required":true},"responses":{"204":{"description":"Data updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/inquiries/{id}/status":{"patch":{"tags":["inquiries"],"summary":"Update inquiry status","operationId":"inquiries.update_status","parameters":[{"name":"id","in":"path","description":"Interaction snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}":{"get":{"tags":["listings"],"summary":"List listings","description":"Returns supply-side content. Auth determines breadth: public only without auth, own org + public with auth, network content with MLS capability.","operationId":"listings.list","parameters":[{"name":"content_type","in":"path","description":"Content type (real_estate, service, item, partnership)","required":true,"schema":{"type":"string"}},{"name":"category","in":"query","description":"Filter by category (residential, commercial, etc.).","required":false,"schema":{"type":"string"}},{"name":"psgc_code","in":"query","description":"Filter by PSGC location code.","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","description":"Full-text search query.","required":false,"schema":{"type":"string"}},{"name":"visibility","in":"query","description":"Filter by visibility level (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by content status (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"author_id","in":"query","description":"Filter by author user ID (requires authentication).","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"network","in":"query","description":"Control network content inclusion: \"true\" (default), \"false\", or \"only\".","required":false,"schema":{"type":"string"}},{"name":"transaction_type","in":"query","description":"Filter by transaction type (for_sale, for_rent).","required":false,"schema":{"type":"string"}},{"name":"subtype","in":"query","description":"Filter by subtype (condo, house_and_lot, etc.).","required":false,"schema":{"type":"string"}},{"name":"price_min","in":"query","description":"Minimum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"price_max","in":"query","description":"Maximum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Listing list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ContentStandard"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["listings"],"summary":"Create a listing","description":"Create a new supply-side content item in the resolved org.","operationId":"listings.create","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentBody"}}},"required":true},"responses":{"201":{"description":"Listing created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ContentResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}/facets":{"get":{"tags":["listings"],"summary":"Faceted counts for listings","description":"Returns counts grouped by dimension with cross-filtering. Each dimension's counts exclude its own active filter but apply all others.","operationId":"listings.facets","parameters":[{"name":"content_type","in":"path","description":"Content type (real_estate, service, item, partnership)","required":true,"schema":{"type":"string"}},{"name":"fields","in":"query","description":"Dimensions to facet on: category, transaction_type, subtype, psgc_code.\nPass as repeated query params: `?fields=category&fields=subtype`.","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"category","in":"query","description":"Filter by category (residential, commercial, etc.).","required":false,"schema":{"type":"string"}},{"name":"psgc_code","in":"query","description":"Filter by PSGC location code.","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","description":"Full-text search query.","required":false,"schema":{"type":"string"}},{"name":"visibility","in":"query","description":"Filter by visibility level (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by content status (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"author_id","in":"query","description":"Filter by author user ID (requires authentication).","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"network","in":"query","description":"Control network content inclusion: \"true\" (default), \"false\", or \"only\".","required":false,"schema":{"type":"string"}},{"name":"transaction_type","in":"query","description":"Filter by transaction type (for_sale, for_rent).","required":false,"schema":{"type":"string"}},{"name":"subtype","in":"query","description":"Filter by subtype (condo, house_and_lot, etc.).","required":false,"schema":{"type":"string"}},{"name":"price_min","in":"query","description":"Minimum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"price_max","in":"query","description":"Maximum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}}],"responses":{"200":{"description":"Faceted counts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_FacetResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/listings/{content_type}/{content_id}/media/{media_id}":{"delete":{"tags":["listings"],"summary":"Delete media from listing","description":"Remove a media attachment from a listing. Verifies the attachment belongs to the specified content before deleting. The underlying asset blob is retained (content-addressed dedup) but the attachment row is removed.","operationId":"listings.delete_media","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"content_id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"media_id","in":"path","description":"Media snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Media deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["listings"],"summary":"Update media sort order","description":"Reorder a media attachment within its listing. Verifies the attachment belongs to the specified content before writing.","operationId":"listings.update_media","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"content_id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"media_id","in":"path","description":"Media snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMediaRequest"}}},"required":true},"responses":{"204":{"description":"Sort order updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}/{id}":{"get":{"tags":["listings"],"summary":"Get listing by ID","description":"Returns a single supply-side content item with category attributes.","operationId":"listings.get","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Listing found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ContentResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"delete":{"tags":["listings"],"summary":"Delete listing (soft-delete)","description":"Soft-delete a listing. The record is marked as deleted and excluded from public queries but not physically removed; org admins can inspect it via management endpoints.","operationId":"listings.delete","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["listings"],"summary":"Update listing fields","description":"Partially update core header fields (title, description, visibility, subtypes, transaction_types, price) on a listing. Only provided fields are changed; use PATCH `/attrs` for category-specific fields.","operationId":"listings.update","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContentBody"}}},"required":true},"responses":{"204":{"description":"Updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}/{id}/attrs":{"patch":{"tags":["listings"],"summary":"Update listing category-specific attrs (partial)","description":"Partial update of typed attrs. Fields absent from the body are preserved; fields present overwrite existing values. The body's `category` tag must match the content's category.","operationId":"listings.update_attrs","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentAttrsWire"}}},"required":true},"responses":{"204":{"description":"Attrs updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}/{id}/matches":{"get":{"tags":["listings"],"summary":"List matches for a listing","description":"Returns matches for a listing, sorted by score descending.","operationId":"listings.list_matches","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Match list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ContentMatchResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}/{id}/media":{"get":{"tags":["listings"],"summary":"List media for listing","description":"Returns all media attachments (photos, video, documents) for a listing. URLs are resolved to CDN paths for public content and signed time-limited URLs for non-public content.","operationId":"listings.list_media","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Media list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_AssetResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["listings"],"summary":"Upload media for listing","description":"Upload a file via `multipart/form-data`. Required: `file` part. Optional: `role` (attachment role code — photo, video, document, etc.), `label`, and `sort_order`. Content is stored to the configured object store and returned with a resolved URL.","operationId":"listings.upload_media","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ListingMediaUpload"}}},"required":true},"responses":{"201":{"description":"Media uploaded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_AssetResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/listings/{content_type}/{id}/status":{"patch":{"tags":["listings"],"summary":"Update listing status","description":"Transition a listing to a new lifecycle status (e.g. draft → active). Transitioning to `active` runs `validate_complete` on the category attrs; returns 422 `incomplete_for_activation` if any required field is missing.","operationId":"listings.update_status","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusBody"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/location":{"get":{"tags":["location"],"summary":"Search locations","description":"Search PSGC areas by name. Returns results sorted by population (largest first).","operationId":"location.search","parameters":[{"name":"q","in":"query","description":"Search query (matches against area name).","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Max results (default 50, max 200).","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Matching locations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_Psgc"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/location/regions":{"get":{"tags":["location"],"summary":"List all regions","description":"Returns all Philippine regions.","operationId":"location.list_regions","responses":{"200":{"description":"Regions list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_Psgc"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/location/{code}":{"get":{"tags":["location"],"summary":"Get location by PSGC code","description":"Returns a single PSGC area by its 10-digit code.","operationId":"location.get","parameters":[{"name":"code","in":"path","description":"10-digit PSGC code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Location found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Psgc"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/location/{code}/children":{"get":{"tags":["location"],"summary":"List child areas","description":"Returns direct children of a PSGC area (e.g. barangays under a city).","operationId":"location.get_children","parameters":[{"name":"code","in":"path","description":"Parent PSGC code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Children list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_Psgc"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/managed-domain":{"get":{"tags":["managed-domain"],"summary":"List managed-domain parents","description":"Returns all managed-domain rows (both active and disabled). Platform-admin only.","operationId":"managed-domain.list","responses":{"200":{"description":"Managed domain list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ManagedDomain"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["managed-domain"],"summary":"Add a managed-domain parent","description":"Register a new platform-owned parent DNS domain. Idempotent: if the name already exists, it is flipped back to `active` and the existing row returned.","operationId":"managed-domain.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagedDomainRequest"}}},"required":true},"responses":{"201":{"description":"Managed domain created or reactivated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ManagedDomain"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/managed-domain/{id}":{"delete":{"tags":["managed-domain"],"summary":"Delete a managed-domain parent","description":"Remove a managed-domain row. Blocked (409 `managed_domain_in_use`) if any `site_hostname` still references the row via the `ON DELETE RESTRICT` foreign key — disable the row instead or move the hostnames off it first.","operationId":"managed-domain.delete","parameters":[{"name":"id","in":"path","description":"Managed domain ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Managed domain deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_DeletedResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["managed-domain"],"summary":"Flip a managed-domain status","description":"Set the status of a managed-domain row to `active` or `disabled`. Disabled parents are skipped by the allocator and by hostname classification.","operationId":"managed-domain.update_status","parameters":[{"name":"id","in":"path","description":"Managed domain ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagedDomainRequest"}}},"required":true},"responses":{"200":{"description":"Managed domain updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ManagedDomain"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/match":{"get":{"tags":["matching"],"summary":"List all matches for the org","description":"Returns all matches involving the org's content, sorted by score descending. Only shows matches not dismissed by the calling org.","operationId":"matching.list","parameters":[{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Match list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ContentMatchResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/match/{id}/dismiss":{"post":{"tags":["matching"],"summary":"Dismiss a match","description":"Dismiss a match for the calling org's side. Each side dismisses independently.","operationId":"matching.dismiss","parameters":[{"name":"id","in":"path","description":"Match snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Match dismissed"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/match/{id}/interact":{"post":{"tags":["matching"],"summary":"Create interaction from match","description":"Accept a match and create an interaction between the matched content items.","operationId":"matching.interact","parameters":[{"name":"id","in":"path","description":"Match snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"201":{"description":"Interaction created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/me":{"get":{"tags":["introspection"],"summary":"Get current caller context","description":"Returns the authenticated caller's identity, resolved org context, membership role, and materialized capabilities. Use this to understand what operations are available in the current context. When no org context is resolved (no hostname), org/role/capabilities are null.","operationId":"introspection.me","responses":{"200":{"description":"Caller context","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_MeResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["introspection"],"summary":"Update profile","description":"Update the authenticated user's name and/or data.","operationId":"introspection.update_profile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"204":{"description":"Profile updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/me/api-key":{"get":{"tags":["api-key"],"summary":"List personal API keys","description":"Returns all API keys owned by the authenticated user (not org-scoped).","operationId":"api-key.list_personal","responses":{"200":{"description":"Personal API key list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ApiKey"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["api-key"],"summary":"Create personal API key","description":"Create an API key owned by the authenticated user. The raw key is returned once and cannot be retrieved again.","operationId":"api-key.create_personal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}},"required":true},"responses":{"201":{"description":"Personal API key created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ApiKeyCreated"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/me/api-key/{id}":{"delete":{"tags":["api-key"],"summary":"Revoke personal API key","description":"Revoke a personal API key by setting its revoked_at. Returns 404 if the key is not owned by the authenticated user.","operationId":"api-key.revoke_personal","parameters":[{"name":"id","in":"path","description":"API key ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Personal API key revoked"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/me/content":{"get":{"tags":["introspection"],"summary":"List content I authored","description":"Returns content rows authored by the authenticated user across all orgs, with optional content_type/status/category filters. Not gated by the unified-scope visibility pool — the author always sees their own work.","operationId":"introspection.list_content","parameters":[{"name":"content_type","in":"query","description":"Filter by content type (real_estate, service, item, partnership).","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by status.","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","description":"Filter by category.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Authored content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ContentHeader"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/me/memberships":{"get":{"tags":["introspection"],"summary":"List my org memberships","description":"Returns every active membership for the authenticated user, joined with enough org identity fields (name, slug, is_personal) to let the client render an org switcher. Personal org sorts first.","operationId":"introspection.list_memberships","parameters":[{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Active memberships","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MembershipWithOrg"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/me/registrations":{"get":{"tags":["introspection"],"summary":"List my event registrations","description":"Returns all event registrations for the authenticated user across all organizations.","operationId":"introspection.list_registrations","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Event registrations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_EventRegistration"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/membership":{"get":{"tags":["membership"],"summary":"List memberships","description":"Returns org members. Access depends on the org's member_directory setting: 'public' requires no auth and returns limited user info, 'members' requires active membership, 'admin' requires admin role.","operationId":"membership.list","parameters":[{"name":"role","in":"query","description":"Filter by role.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by status (defaults to \"active\" if omitted).","required":false,"schema":{"type":"string"}},{"name":"user_id","in":"query","description":"Filter by user ID.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"source","in":"query","description":"Filter by membership source.","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Paginated list of memberships","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_MembershipResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["membership"],"summary":"Add member","description":"Add a user as a member of the org. Requires membership:manage capability and admin role.","operationId":"membership.add","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMemberRequest"}}},"required":true},"responses":{"201":{"description":"Member added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Membership"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/membership/me":{"get":{"tags":["membership"],"summary":"Get my membership","description":"Returns the authenticated user's membership in the resolved org.","operationId":"membership.get_mine","parameters":[{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Current user's membership","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Membership"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"delete":{"tags":["membership"],"summary":"Leave organization","description":"Delete the authenticated user's own membership in the resolved org. Cannot leave if you are the only admin.","operationId":"membership.delete_mine","responses":{"204":{"description":"Membership deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/membership/{id}/role":{"patch":{"tags":["membership"],"summary":"Update membership role","description":"Change a member's role. Requires membership:manage capability and admin role.","operationId":"membership.update_role","parameters":[{"name":"id","in":"path","description":"Membership ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMembershipRoleRequest"}}},"required":true},"responses":{"204":{"description":"Role updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/membership/{id}/status":{"patch":{"tags":["membership"],"summary":"Update membership status","description":"Transition a member's status (e.g. active → suspended). Validates the transition against the workflow defined in /status/membership/transitions.","operationId":"membership.update_status","parameters":[{"name":"id","in":"path","description":"Membership ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMembershipStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/org-relationship":{"get":{"tags":["relationship"],"summary":"List org relationships","description":"Returns org-to-org relationships for the resolved org. Defaults to active if status not specified.","operationId":"relationship.list_org","parameters":[{"name":"status","in":"query","description":"Filter by status (defaults to \"active\" if omitted).","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Filter by relationship type.","required":false,"schema":{"type":"string"}},{"name":"direction","in":"query","description":"Filter by direction: \"from\" (outbound) or \"to\" (inbound).","required":false,"schema":{"type":"string"}},{"name":"other_org_id","in":"query","description":"Filter by the other org's ID.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of org relationships","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_OrgRelationship"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["relationship"],"summary":"Create org relationship","description":"Create a relationship between the resolved org and another organization. Requires relationship:manage capability.","operationId":"relationship.create_org","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrgRelationshipRequest"}}},"required":true},"responses":{"201":{"description":"Relationship created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_OrgRelationship"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/org-relationship/{id}":{"delete":{"tags":["relationship"],"summary":"Delete org relationship","description":"Remove an org-to-org relationship. Must belong to the resolved org.","operationId":"relationship.delete_org","parameters":[{"name":"id","in":"path","description":"Org relationship ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Relationship deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["relationship"],"summary":"Update org relationship status","description":"Update the status of an org-to-org relationship (e.g. pending → active for mutual approval). Must involve the resolved org.","operationId":"relationship.update_org","parameters":[{"name":"id","in":"path","description":"Org relationship ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRelationshipStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/organization":{"get":{"tags":["organization"],"summary":"Get organization","description":"Returns the organization resolved from the hostname. No authentication required beyond org context resolution.","operationId":"organization.get","responses":{"200":{"description":"Organization details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Organization"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["organization"],"summary":"Create organization","description":"Create a new non-personal organization. The authenticated user becomes the admin. No org context required.","operationId":"organization.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationRequest"}}},"required":true},"responses":{"201":{"description":"Organization created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Organization"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Invalid credentials or token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — e.g. email already registered, TOTP already provisioned, verification challenge already consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["organization"],"summary":"Update organization","description":"Update org name, slug, or data. Requires admin role membership in the resolved org.","operationId":"organization.update","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRequest"}}},"required":true},"responses":{"200":{"description":"Organization updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Organization"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/organization/asset":{"get":{"tags":["organization"],"summary":"List org assets","description":"Returns branding assets (logo, favicon, etc.) for the resolved org.","operationId":"organization.list_assets","responses":{"200":{"description":"Asset list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_AssetResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["organization"],"summary":"Upload org asset","description":"Upload a branding asset (logo, favicon). The `role` query parameter specifies the asset type.","operationId":"organization.upload_asset","parameters":[{"name":"role","in":"query","description":"Asset role (logo, favicon)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/OrgAssetUpload"}}},"required":true},"responses":{"201":{"description":"Asset uploaded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_AssetResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/organization/asset/{role}":{"get":{"tags":["organization"],"summary":"Serve org asset","description":"Serve an org branding asset (logo, favicon) by role. Public — no auth required.","operationId":"organization.serve_asset","parameters":[{"name":"role","in":"path","description":"Asset role (logo, favicon)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"File data"},"404":{"description":"Not found"}},"security":[{}]}},"/organization/status":{"patch":{"tags":["organization"],"summary":"Update organization status","description":"Update the org's status (active, suspended, deactivated). Requires admin role.","operationId":"organization.update_status","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationStatusRequest"}}},"required":true},"responses":{"204":{"description":"Organization status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/requirements/submit":{"post":{"tags":["requirements"],"summary":"Submit a public requirement","description":"Anonymous: describe what you're looking for. Creates demand-side content in submitted status.","operationId":"requirements.submit","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRequirementRequest"}}},"required":true},"responses":{"201":{"description":"Requirement submitted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Value"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/requirements/{content_type}":{"get":{"tags":["requirements"],"summary":"List requirements","description":"Returns demand-side content. Auth determines breadth.","operationId":"requirements.list","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"category","in":"query","description":"Filter by category (residential, commercial, etc.).","required":false,"schema":{"type":"string"}},{"name":"psgc_code","in":"query","description":"Filter by PSGC location code.","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","description":"Full-text search query.","required":false,"schema":{"type":"string"}},{"name":"visibility","in":"query","description":"Filter by visibility level (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by content status (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"author_id","in":"query","description":"Filter by author user ID (requires authentication).","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"network","in":"query","description":"Control network content inclusion: \"true\" (default), \"false\", or \"only\".","required":false,"schema":{"type":"string"}},{"name":"transaction_type","in":"query","description":"Filter by transaction type (for_sale, for_rent).","required":false,"schema":{"type":"string"}},{"name":"subtype","in":"query","description":"Filter by subtype (condo, house_and_lot, etc.).","required":false,"schema":{"type":"string"}},{"name":"price_min","in":"query","description":"Minimum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"price_max","in":"query","description":"Maximum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Requirement list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ContentStandard"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"post":{"tags":["requirements"],"summary":"Create a requirement","description":"Create a new demand-side content item in the resolved org. Body must include both top-level header fields and a nested `attrs` object tagged with `category`; both categories must match. Requires `content:create` capability.","operationId":"requirements.create","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentBody"}}},"required":true},"responses":{"201":{"description":"Requirement created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ContentResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/requirements/{content_type}/facets":{"get":{"tags":["requirements"],"summary":"Faceted counts for requirements","description":"Returns counts grouped by dimension with cross-filtering. Each dimension's counts exclude its own active filter but apply all others.","operationId":"requirements.facets","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"fields","in":"query","description":"Dimensions to facet on: category, transaction_type, subtype, psgc_code.\nPass as repeated query params: `?fields=category&fields=subtype`.","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"category","in":"query","description":"Filter by category (residential, commercial, etc.).","required":false,"schema":{"type":"string"}},{"name":"psgc_code","in":"query","description":"Filter by PSGC location code.","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","description":"Full-text search query.","required":false,"schema":{"type":"string"}},{"name":"visibility","in":"query","description":"Filter by visibility level (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by content status (requires authentication).","required":false,"schema":{"type":"string"}},{"name":"author_id","in":"query","description":"Filter by author user ID (requires authentication).","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"network","in":"query","description":"Control network content inclusion: \"true\" (default), \"false\", or \"only\".","required":false,"schema":{"type":"string"}},{"name":"transaction_type","in":"query","description":"Filter by transaction type (for_sale, for_rent).","required":false,"schema":{"type":"string"}},{"name":"subtype","in":"query","description":"Filter by subtype (condo, house_and_lot, etc.).","required":false,"schema":{"type":"string"}},{"name":"price_min","in":"query","description":"Minimum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"price_max","in":"query","description":"Maximum price (canonical, inclusive).","required":false,"schema":{"type":"number","format":"double"}}],"responses":{"200":{"description":"Faceted counts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_FacetResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]}},"/requirements/{content_type}/{id}":{"get":{"tags":["requirements"],"summary":"Get requirement by ID","description":"Returns a single demand-side content item, header plus category attrs at the requested view tier. Visibility rules mirror the listings read path: public for anonymous callers, full visibility pool for members.","operationId":"requirements.get","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Requirement found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ContentResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"security":[{}]},"delete":{"tags":["requirements"],"summary":"Delete requirement (soft-delete)","description":"Soft-delete a requirement. The record is marked as deleted and excluded from public queries but not physically removed; org admins can inspect it via management endpoints.","operationId":"requirements.delete","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["requirements"],"summary":"Update requirement fields","description":"Partially update core header fields on a requirement. Only provided fields are changed; use PATCH `/attrs` for category-specific fields.","operationId":"requirements.update","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContentBody"}}},"required":true},"responses":{"204":{"description":"Updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/requirements/{content_type}/{id}/attrs":{"patch":{"tags":["requirements"],"summary":"Update requirement category-specific attrs (partial)","description":"Partial update of typed attrs. Fields absent from the body are preserved; fields present overwrite existing values. The body's `category` tag must match the content's category.","operationId":"requirements.update_attrs","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentAttrsWire"}}},"required":true},"responses":{"204":{"description":"Attrs updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/requirements/{content_type}/{id}/matches":{"get":{"tags":["requirements"],"summary":"List matches for a requirement","description":"Returns listings that match this requirement, sorted by score descending.","operationId":"requirements.list_matches","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Match list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_ContentMatchResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/requirements/{content_type}/{id}/status":{"patch":{"tags":["requirements"],"summary":"Update requirement status","description":"Transition a requirement to a new lifecycle status (e.g. draft → active). Transitioning to `active` runs `validate_complete` on the category attrs; returns 422 `incomplete_for_activation` if any required field is missing.","operationId":"requirements.update_status","parameters":[{"name":"content_type","in":"path","description":"Content type","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"Content snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusBody"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/reserved-subdomain":{"get":{"tags":["reserved-subdomain"],"summary":"List reserved subdomain labels","description":"Returns all reserved-subdomain rows. The union of code-canonical entries (always present) and operator additions.","operationId":"reserved-subdomain.list","responses":{"200":{"description":"Reserved subdomain list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_ReservedSubdomain"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["reserved-subdomain"],"summary":"Reserve a subdomain label","description":"Add a subdomain label to the reserved list. Idempotent: re-posting an existing name is a no-op and returns the current row.","operationId":"reserved-subdomain.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReservedSubdomainRequest"}}},"required":true},"responses":{"201":{"description":"Reserved subdomain created or already present","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_ReservedSubdomain"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/reserved-subdomain/{name}":{"delete":{"tags":["reserved-subdomain"],"summary":"Un-reserve a subdomain label","description":"Remove a subdomain label from the reserved list. Code-canonical entries re-appear on the next startup reconciliation — delete them here only if you also remove them from the code list.","operationId":"reserved-subdomain.delete","parameters":[{"name":"name","in":"path","description":"Subdomain label to release","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Reserved subdomain deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_DeletedResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site":{"get":{"tags":["site"],"summary":"List sites","description":"Returns sites owned by the resolved org. With `templates=true`, returns the public template catalog across all orgs instead.","operationId":"site.list","parameters":[{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"templates","in":"query","description":"If true, list only publicly catalogued templates across all orgs.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Paginated list of sites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Site"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["site"],"summary":"Create site","description":"Create a new site for the resolved org. Optionally fork or theme from an existing site. Initializes a bare git repository unless the mode is `theme`.","operationId":"site.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSiteRequest"}}},"required":true},"responses":{"201":{"description":"Site created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Site"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}":{"get":{"tags":["site"],"summary":"Get site","operationId":"site.get","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Site details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Site"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/diff":{"get":{"tags":["site"],"summary":"Diff deploy vs. draft refs","operationId":"site.diff","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Diff result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_DiffResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/file":{"post":{"tags":["site"],"summary":"Write one or more files as a single commit","operationId":"site.write_files","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteFilesRequest"}}},"required":true},"responses":{"200":{"description":"Commit hash","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_String"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/file/{*path}":{"get":{"tags":["site"],"summary":"Read a file from a site repo","operationId":"site.read_file","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"path","in":"path","description":"File path within the repository","required":true,"schema":{"type":"string"}},{"name":"ref","in":"query","description":"Git ref to read from (default: site's draft_ref).","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"File content"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"delete":{"tags":["site"],"summary":"Delete a file from a site repo","operationId":"site.delete_file","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"path","in":"path","description":"File path to delete","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteFileRequest"}}},"required":true},"responses":{"200":{"description":"Commit hash","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_String"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/hostname":{"get":{"tags":["site"],"summary":"List hostnames bound to a site","operationId":"site.list_hostnames","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Hostnames for the site","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_SiteHostname"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["site"],"summary":"Bind a new hostname to a site","operationId":"site.add_hostname","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddHostnameRequest"}}},"required":true},"responses":{"201":{"description":"Hostname created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_SiteHostname"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/hostname/{hostname_id}":{"delete":{"tags":["site"],"summary":"Remove a hostname from a site","operationId":"site.remove_hostname","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"hostname_id","in":"path","description":"Hostname ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Hostname removed"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["site"],"summary":"Update hostname settings (primary, redirect mode)","operationId":"site.update_hostname","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"hostname_id","in":"path","description":"Hostname ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHostnameRequest"}}},"required":true},"responses":{"204":{"description":"Hostname updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/hostname/{hostname_id}/move":{"post":{"tags":["site"],"summary":"Move a hostname to a different site in the same org","operationId":"site.move_hostname","parameters":[{"name":"id","in":"path","description":"Current site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"hostname_id","in":"path","description":"Hostname ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveHostnameRequest"}}},"required":true},"responses":{"200":{"description":"Hostname moved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_SiteHostname"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/log":{"get":{"tags":["site"],"summary":"Commit log for a site repo","operationId":"site.log","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"ref","in":"query","description":"Git ref to read from (default: site's draft_ref).","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of commits to return (default 20).","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Commit log","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_LogEntryResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/promote":{"post":{"tags":["site"],"summary":"Promote a commit or tag onto main","description":"Squash-promote: collapses the source's tree into a single new commit on `main` with the supplied message and tags it `release/N` (per-site counter). Source is `draft` tip (default), a specific commit on `draft`, or an existing `release/N` tag (rollback). `draft` is reset to point at the new `main` commit.","operationId":"site.promote","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteRequest"}}},"required":true},"responses":{"200":{"description":"Release created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Release"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/releases":{"get":{"tags":["site"],"summary":"List promote history","description":"Returns all `release/N` tags for this site, newest first. Each entry carries the release number, tag, commit SHA, creation timestamp, and promoter message — enough for a rollback picker without round-trips.","operationId":"site.list_releases","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Release history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_Release"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/reset-to-source":{"post":{"tags":["site"],"summary":"Reset to source","description":"Destructive re-baseline of a forked site: materialize the source template's current `main` into this site's repo, force-move `draft` to the new commit. Overwrites all local edits. Preserves site identity, hostname bindings, and related entity references. Only valid for sites with `forked_from_id` set.","operationId":"site.reset_to_source","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Reset complete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Site"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/status":{"patch":{"tags":["site"],"summary":"Update site status","operationId":"site.update_status","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSiteStatusRequest"}}},"required":true},"responses":{"204":{"description":"Site status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/site/{id}/tree":{"get":{"tags":["site"],"summary":"List files in a site repo","operationId":"site.list_tree","parameters":[{"name":"id","in":"path","description":"Site ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"ref","in":"query","description":"Git ref to read from (default: site's draft_ref).","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"File tree","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_TreeEntryResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/status/history/{entity_type}/{entity_id}":{"get":{"tags":["status"],"summary":"List status history","description":"Returns status transition history for an entity, ordered by most recent first.","operationId":"status.list_history","parameters":[{"name":"entity_type","in":"path","description":"Entity type (e.g. content:listing, interaction:viewing_request)","required":true,"schema":{"type":"string"}},{"name":"entity_id","in":"path","description":"Entity ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"200":{"description":"Status history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_StatusHistory"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/status/{entity_type}":{"get":{"tags":["status"],"summary":"List status definitions","description":"Returns the platform-defined status vocabulary for an entity type. Status definitions are not org-customizable.","operationId":"status.list_definitions","parameters":[{"name":"entity_type","in":"path","description":"Entity type (e.g. content:listing, interaction:viewing_request)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status definitions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_StatusDefinition"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/status/{entity_type}/transitions":{"get":{"tags":["status"],"summary":"List allowed status transitions","description":"Returns the transition graph for an entity type. If `from` is provided, only transitions originating from that status are returned. Combines org-specific transitions with platform defaults via override semantics.","operationId":"status.list_transitions","parameters":[{"name":"entity_type","in":"path","description":"Entity type (e.g. content:listing, interaction:viewing_request)","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","description":"If provided, only return transitions whose `from_status` matches.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status transitions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Vec_StatusTransition"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/system/bootstrap":{"post":{"tags":["system"],"summary":"Bootstrap the platform","description":"Create the initial platform admin user, membership on the platform org, a personal API key, the marketing site (id=0) and admin site (id=1) with their bound hostnames, seed the managed_domain row for the bootstrap hostname, reserve the `admin` subdomain, and initialize both bare git repos. No auth required. Callable once — returns 409 once any platform admin exists.","operationId":"system.bootstrap","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapRequest"}}},"required":true},"responses":{"201":{"description":"Platform initialized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_BootstrapResponse"}}}},"400":{"description":"Validation error"},"409":{"description":"Platform already initialized"}}}},"/user-relationship":{"get":{"tags":["relationship"],"summary":"List user relationships","description":"Returns org-to-user relationships for the resolved org. Defaults to active if status not specified.","operationId":"relationship.list_user","parameters":[{"name":"status","in":"query","description":"Filter by status (defaults to \"active\" if omitted).","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Filter by relationship type.","required":false,"schema":{"type":"string"}},{"name":"user_id","in":"query","description":"Filter by user ID.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of user relationships","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_OrgUserRelationship"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["relationship"],"summary":"Create user relationship","description":"Create a relationship between the resolved org and a user. Requires relationship:manage capability.","operationId":"relationship.create_user","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRelationshipRequest"}}},"required":true},"responses":{"201":{"description":"Relationship created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_OrgUserRelationship"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/user-relationship/{id}":{"delete":{"tags":["relationship"],"summary":"Delete user relationship","description":"Remove an org-to-user relationship. Must belong to the resolved org.","operationId":"relationship.delete_user","parameters":[{"name":"id","in":"path","description":"User relationship ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Relationship deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"patch":{"tags":["relationship"],"summary":"Update user relationship status","description":"Update the status of an org-to-user relationship. Must belong to the resolved org.","operationId":"relationship.update_user","parameters":[{"name":"id","in":"path","description":"User relationship ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRelationshipStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/viewings":{"get":{"tags":["viewings"],"summary":"List viewing requests","operationId":"viewings.list","parameters":[{"name":"status","in":"query","description":"Filter by status.","required":false,"schema":{"type":"string"}},{"name":"content_id","in":"query","description":"Filter by content.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"user_id","in":"query","description":"Filter by user involvement.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"from_user_id","in":"query","description":"Filter by originating user.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"to_user_id","in":"query","description":"Filter by target user.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"sort","in":"query","description":"Sort field. Prefix with `-` for descending (e.g. `-created_at`).\nOmit for domain-default ordering.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of items to return (default 50, max 100).","required":false,"schema":{"type":"integer","format":"int64","default":50,"maximum":100,"minimum":1}},{"name":"offset","in":"query","description":"Number of items to skip (default 0).","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Viewing list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["viewings"],"summary":"Create a viewing request","operationId":"viewings.create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateViewingRequest"}}},"required":true},"responses":{"201":{"description":"Viewing created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/viewings/{id}":{"get":{"tags":["viewings"],"summary":"Get viewing request by ID","operationId":"viewings.get","parameters":[{"name":"id","in":"path","description":"Viewing snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}},{"name":"view","in":"query","description":"Response detail level: summary, standard, full.\nLists default to standard; detail endpoints default to full.","required":false,"schema":{"$ref":"#/components/schemas/View"}}],"responses":{"200":{"description":"Viewing found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse_Interaction"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"delete":{"tags":["viewings"],"summary":"Delete viewing request","operationId":"viewings.delete","parameters":[{"name":"id","in":"path","description":"Viewing snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/viewings/{id}/data":{"patch":{"tags":["viewings"],"summary":"Update viewing request data","operationId":"viewings.update_data","parameters":[{"name":"id","in":"path","description":"Viewing snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataRequest"}}},"required":true},"responses":{"204":{"description":"Data updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/viewings/{id}/status":{"patch":{"tags":["viewings"],"summary":"Update viewing request status","operationId":"viewings.update_status","parameters":[{"name":"id","in":"path","description":"Viewing snowflake ID","required":true,"schema":{"$ref":"#/components/schemas/SnowflakeId"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusRequest"}}},"required":true},"responses":{"204":{"description":"Status updated"},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Insufficient capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict — duplicate resource, concurrent modification, or invalid state transition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Unprocessable entity — well-formed request but entity state blocks the action (e.g. activation completeness gate)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}}},"components":{"schemas":{"AddBundleItemRequest":{"type":"object","required":["capability","grant_type"],"properties":{"capability":{"type":"string"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"quota_spec":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/QuotaSpec"}]}}},"AddHostnameRequest":{"type":"object","required":["name"],"properties":{"is_primary":{"type":"boolean"},"name":{"type":"string"},"redirect_mode":{"type":["string","null"]},"serves_preview":{"type":"boolean"}}},"AddMemberRequest":{"type":"object","required":["user_id","role"],"properties":{"role":{"$ref":"#/components/schemas/RoleEnum"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"AgriculturalWire":{"type":"object","properties":{"elevation_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"existing_crops":{"type":["array","null"],"items":{"type":"string"}},"existing_livestock":{"type":["array","null"],"items":{"type":"string"}},"flood_prone":{"type":["boolean","null"]},"intended_uses":{"type":["array","null"],"items":{"type":"string"}},"irrigation_options":{"type":["array","null"],"items":{"type":"string"}},"is_foreclosed":{"type":["boolean","null"]},"land_classifications":{"type":["array","null"],"items":{"type":"string"}},"lot_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"notes":{"type":["string","null"]},"power_options":{"type":["array","null"],"items":{"type":"string"}},"road_access":{"type":["array","null"],"items":{"type":"string"}},"slope_levels":{"type":["array","null"],"items":{"type":"string"}},"soil_types":{"type":["array","null"],"items":{"type":"string"}},"tenancy_status":{"type":["array","null"],"items":{"type":"string"}},"title_statuses":{"type":["array","null"],"items":{"type":"string"}},"water_sources":{"type":["array","null"],"items":{"type":"string"}}}},"ApiKey":{"type":"object","description":"API key row. Exactly one of `organization_id` (service/org key) or\n`user_id` (personal key) is non-null. Both transport via `Authorization:\nBearer <ln_ak_...>` or HTTP basic with the plaintext key as password.","required":["id","name","prefix","expires_at","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"last_used_at":{"type":["string","null"],"format":"date-time"},"name":{"type":"string"},"organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"prefix":{"type":"string","description":"First N chars of the plaintext for leak detection + display. Safe to\nlog and show. Never the full key."},"revoked_at":{"type":["string","null"],"format":"date-time"},"scopes":{"type":["array","null"],"items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"},"user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"ApiKeyCreated":{"allOf":[{"$ref":"#/components/schemas/ApiKey"},{"type":"object","required":["raw_key"],"properties":{"raw_key":{"type":"string","description":"Plaintext key — returned once, never retrievable again."}}}]},"ApiResponse_ApiKeyCreated":{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/ApiKey"},{"type":"object","required":["raw_key"],"properties":{"raw_key":{"type":"string","description":"Plaintext key — returned once, never retrievable again."}}}]}}},"ApiResponse_AssetResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"API response type for asset attachments — includes resolved URL and asset metadata.","required":["id","url","mime_type","size","role","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"filename":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"label":{"type":["string","null"]},"mime_type":{"type":"string"},"role":{"type":"string"},"size":{"type":"integer","format":"int64"},"sort_order":{"type":"integer","format":"int32"},"url":{"type":"string"}}}}},"ApiResponse_AuthResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["access_token","refresh_token"],"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"}}}}},"ApiResponse_BootstrapResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["user","org","site","admin_site","api_key"],"properties":{"admin_site":{"$ref":"#/components/schemas/BootstrapSiteOut"},"api_key":{"type":"string","description":"Plaintext API key — returned once, never retrievable again."},"org":{"$ref":"#/components/schemas/BootstrapOrgOut"},"site":{"$ref":"#/components/schemas/BootstrapSiteOut"},"user":{"$ref":"#/components/schemas/BootstrapUserOut"}}}}},"ApiResponse_Bundle":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","name","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"slug":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_BundleItem":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","bundle_id","capability","grant_type","created_at","updated_at"],"properties":{"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_BundlePrice":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","bundle_id","billing_cycle","amount","effective_from","created_at","updated_at"],"properties":{"amount":{"type":"string"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"},"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"effective_from":{"type":"string","format":"date"},"effective_to":{"type":["string","null"],"format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_ContentOverride":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","content_id","created_by","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"target_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_ContentReshare":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","content_id","reshared_by","reshared_organization_id","visibility","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_by":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}}}},"ApiResponse_ContentResponse":{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/ContentHeader"},{"type":"object","properties":{"attrs":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ContentAttrsWire","description":"Category-specific typed attrs. The inner tag is the category name.\nPresent on the full tier; omitted on Summary and Standard."}]},"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserSummary"}]},"organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PriceWire"}]}}}],"description":"Full view: header + price + projections + category attrs under\nthe category name as key (option C wire format).\n\nOnly one category field is ever `Some`. The key acts as a type discriminator."}}},"ApiResponse_CreditBalanceResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["organization_id","balance"],"properties":{"balance":{"type":"integer","format":"int32"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"}}}}},"ApiResponse_CreditPack":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","name","credits","price","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"credits":{"type":"integer","format":"int32"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"price":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_CreditPurchase":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","credit_pack_id","amount","credits_received","payment_method","status","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_pack_id":{"$ref":"#/components/schemas/SnowflakeId"},"credits_received":{"type":"integer","format":"int32"},"currency":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_DeletedResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean"}}}}},"ApiResponse_DiffResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["files","patch"],"properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/DiffFileResponse"}},"patch":{"type":"string"}}}}},"ApiResponse_DistributionEdge":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","content_id","from_organization_id","to_organization_id","role","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"type":"string"},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_Event":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","title","visibility","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"data":{},"event_type":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"status":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"visibility":{"type":"string"}}}}},"ApiResponse_EventRegistration":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","event_id","role","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"event_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"invoice_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"payment_window_expires":{"type":["string","null"],"format":"date-time"},"queue_position":{"type":["integer","null"],"format":"int32"},"role":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}}}},"ApiResponse_EventSession":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","title","sort_order","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"data":{},"event_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"session_type":{"type":["string","null"]},"sort_order":{"type":"integer","format":"int32"},"title":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_FacetResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Response from a faceted count query.","required":["facets","total"],"properties":{"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/FacetBucket"}},"propertyNames":{"type":"string"}},"total":{"type":"integer","format":"int64"}}}}},"ApiResponse_ForgotPasswordResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"reset_token":{"type":["string","null"]}}}}},"ApiResponse_HashMap_String_Vec_String":{"type":"object","required":["data"],"properties":{"data":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"propertyNames":{"type":"string"}}}},"ApiResponse_HealthResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}}}}},"ApiResponse_ImportBundlesResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["bundles_upserted","items_upserted","items_removed"],"properties":{"bundles_upserted":{"type":"integer","minimum":0},"items_removed":{"type":"integer","minimum":0},"items_upserted":{"type":"integer","minimum":0}}}}},"ApiResponse_Interaction":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","source","interaction_type","status","data","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{"$ref":"#/components/schemas/InteractionData"},"demand_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"from_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"interaction_type":{"type":"string"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"proposed_date":{"type":["string","null"],"format":"date-time"},"source":{"type":"string"},"status":{"type":"string"},"supply_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_Invoice":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","period_start","period_end","subtotal","total_adjustments","total_amount","status","due_date","created_at","updated_at"],"properties":{"checkout_session_id":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"due_date":{"type":"string","format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"paid_at":{"type":["string","null"],"format":"date-time"},"payment_url":{"type":["string","null"]},"period_end":{"type":"string","format":"date"},"period_start":{"type":"string","format":"date"},"sent_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"subtotal":{"type":"string"},"total_adjustments":{"type":"string"},"total_amount":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_InvoiceLine":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","invoice_id","type","description","amount","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invoice_id":{"$ref":"#/components/schemas/SnowflakeId"},"quantity":{"type":["string","null"]},"type":{"type":"string"},"unit_price":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_InvoiceWithLines":{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Invoice"},{"type":"object","required":["lines"],"properties":{"lines":{"type":"array","items":{"$ref":"#/components/schemas/InvoiceLine"}}}}]}}},"ApiResponse_ManagedDomain":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","name","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_MeResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"capabilities":{"type":["array","null"],"items":{"type":"string"}},"org":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgStandard"}]},"role":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RoleEnum"}]},"user":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/MeUser"}]}}}}},"ApiResponse_Membership":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","user_id","organization_id","role","status","source","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"$ref":"#/components/schemas/RoleEnum"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}}}},"ApiResponse_OrgBillingProfile":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["organization_id","billing_cycle","billing_anchor_date","created_at","updated_at"],"properties":{"billing_anchor_date":{"type":"string","format":"date"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"},"created_at":{"type":"string","format":"date-time"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"pending_billing_cycle":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/BillingCycleEnum"}]},"pending_effective_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"updated_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}}}},"ApiResponse_OrgCapabilityOverride":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","capability","grant_type","created_at","updated_at"],"properties":{"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"price":{"type":["string","null"]},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"reason":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_OrgRelationship":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","from_organization_id","to_organization_id","type","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"expires_at":{"type":["string","null"],"format":"date-time"},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"type":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_OrgSubscription":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","bundle_id","status","started_at","created_at","updated_at"],"properties":{"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"current_period_end":{"type":["string","null"],"format":"date"},"current_period_start":{"type":["string","null"],"format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":"string","format":"date-time"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_OrgUserRelationship":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","user_id","type","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}}}},"ApiResponse_Organization":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","name","status","is_personal","accepts_applications","member_directory","created_at","updated_at"],"properties":{"accepts_applications":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"data":{},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_personal":{"type":"boolean"},"member_directory":{"type":"string"},"name":{"type":"string"},"public_invite_token":{"type":["string","null"]},"slug":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_Payment":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","invoice_id","amount","payment_method","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invoice_id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]},"received_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_Psgc":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["code","name","level","region_code","full_name","path"],"properties":{"city_class":{"type":["string","null"]},"city_mun_code":{"type":["string","null"]},"code":{"type":"string"},"full_name":{"type":"string"},"income_class":{"type":["string","null"]},"level":{"type":"string"},"name":{"type":"string"},"parent_code":{"type":["string","null"]},"path":{"type":"string"},"population":{"type":["integer","null"],"format":"int32"},"province_code":{"type":["string","null"]},"region_code":{"type":"string"},"urban_rural":{"type":["string","null"]}}}}},"ApiResponse_RegisterResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["message","verification_token"],"properties":{"message":{"type":"string"},"verification_token":{"type":"string"}}}}},"ApiResponse_Release":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["release_number","tag","commit","created_at","message"],"properties":{"commit":{"type":"string","description":"Commit SHA the tag points at."},"created_at":{"type":"string","description":"ISO-8601 creation time of the commit."},"message":{"type":"string","description":"Promoter-supplied message from the commit."},"release_number":{"type":"integer","format":"int64","description":"Monotonically increasing per-site release counter parsed from the tag\n(`release/N`).","minimum":0},"tag":{"type":"string","description":"Full tag name — `release/N`."}}}}},"ApiResponse_ReservedSubdomain":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"name":{"type":"string"},"reason":{"type":["string","null"]}}}}},"ApiResponse_ShareLinkResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","token","url","resource_type","resource_id","permissions","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"permissions":{"type":"string"},"resource_id":{"type":"string"},"resource_type":{"type":"string"},"token":{"type":"string"},"url":{"type":"string"}}}}},"ApiResponse_Site":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","name","slug","visibility","deploy_ref","draft_ref","forkable","listed_as_template","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"deploy_ref":{"type":"string"},"description":{"type":["string","null"]},"draft_ref":{"type":"string"},"forkable":{"type":"boolean"},"forked_from_commit":{"type":["string","null"]},"forked_from_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"listed_as_template":{"type":"boolean"},"name":{"type":"string"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"repo_path":{"type":["string","null"]},"slug":{"type":"string"},"status":{"type":"string"},"theme_of":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}}}},"ApiResponse_SiteHostname":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","site_id","name","is_primary","serves_preview","status","created_at","updated_at"],"properties":{"cert_status":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_primary":{"type":"boolean"},"name":{"type":"string"},"redirect_mode":{"type":["string","null"]},"serves_preview":{"type":"boolean"},"site_id":{"$ref":"#/components/schemas/SnowflakeId"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}},"ApiResponse_String":{"type":"object","required":["data"],"properties":{"data":{"type":"string"}}},"ApiResponse_TotpChallengeResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["requires_totp","challenge_token"],"properties":{"challenge_token":{"type":"string"},"requires_totp":{"type":"boolean"}}}}},"ApiResponse_TotpSetupResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["secret","otpauth_uri"],"properties":{"otpauth_uri":{"type":"string"},"secret":{"type":"string"}}}}},"ApiResponse_Value":{"type":"object","required":["data"],"properties":{"data":{}}},"ApiResponse_Vec_ApiKey":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"API key row. Exactly one of `organization_id` (service/org key) or\n`user_id` (personal key) is non-null. Both transport via `Authorization:\nBearer <ln_ak_...>` or HTTP basic with the plaintext key as password.","required":["id","name","prefix","expires_at","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"last_used_at":{"type":["string","null"],"format":"date-time"},"name":{"type":"string"},"organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"prefix":{"type":"string","description":"First N chars of the plaintext for leak detection + display. Safe to\nlog and show. Never the full key."},"revoked_at":{"type":["string","null"],"format":"date-time"},"scopes":{"type":["array","null"],"items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"},"user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}}}}},"ApiResponse_Vec_AssetResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"API response type for asset attachments — includes resolved URL and asset metadata.","required":["id","url","mime_type","size","role","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"filename":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"label":{"type":["string","null"]},"mime_type":{"type":"string"},"role":{"type":"string"},"size":{"type":"integer","format":"int64"},"sort_order":{"type":"integer","format":"int32"},"url":{"type":"string"}}}}}},"ApiResponse_Vec_Bundle":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"slug":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_BundlePrice":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","bundle_id","billing_cycle","amount","effective_from","created_at","updated_at"],"properties":{"amount":{"type":"string"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"},"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"effective_from":{"type":"string","format":"date"},"effective_to":{"type":["string","null"],"format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_CatalogEntry":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"}}}}}},"ApiResponse_Vec_ContentOverrideResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Content override with resolved org projection.","required":["id","content_id","created_by","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"target_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_ContentReshareResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Content reshare with resolved org projections.","required":["id","content_id","reshared_by","reshared_organization_id","visibility","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_by":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"reshared_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}}}}},"ApiResponse_Vec_ContentStatsDaily":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["content_id","date","views","unique_views","inquiries","saves","shares","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"date":{"type":"string","format":"date"},"inquiries":{"type":"integer","format":"int32"},"saves":{"type":"integer","format":"int32"},"shares":{"type":"integer","format":"int32"},"unique_views":{"type":"integer","format":"int32"},"updated_at":{"type":"string","format":"date-time"},"views":{"type":"integer","format":"int32"}}}}}},"ApiResponse_Vec_CreditPack":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","credits","price","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"credits":{"type":"integer","format":"int32"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"price":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_DistributionEdgeResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Distribution edge with resolved org projections.","required":["id","content_id","from_organization_id","to_organization_id","role","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"from_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"type":"string"},"to_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_LogEntryResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["hash","author","date","message"],"properties":{"author":{"type":"string"},"date":{"type":"string"},"hash":{"type":"string"},"message":{"type":"string"}}}}}},"ApiResponse_Vec_ManagedDomain":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_OrgCapability":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","capability","grant_type","source","created_at","updated_at"],"properties":{"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"source":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_OrgCapabilityOverride":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","capability","grant_type","created_at","updated_at"],"properties":{"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"price":{"type":["string","null"]},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"reason":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_Psgc":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["code","name","level","region_code","full_name","path"],"properties":{"city_class":{"type":["string","null"]},"city_mun_code":{"type":["string","null"]},"code":{"type":"string"},"full_name":{"type":"string"},"income_class":{"type":["string","null"]},"level":{"type":"string"},"name":{"type":"string"},"parent_code":{"type":["string","null"]},"path":{"type":"string"},"population":{"type":["integer","null"],"format":"int32"},"province_code":{"type":["string","null"]},"region_code":{"type":"string"},"urban_rural":{"type":["string","null"]}}}}}},"ApiResponse_Vec_Release":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["release_number","tag","commit","created_at","message"],"properties":{"commit":{"type":"string","description":"Commit SHA the tag points at."},"created_at":{"type":"string","description":"ISO-8601 creation time of the commit."},"message":{"type":"string","description":"Promoter-supplied message from the commit."},"release_number":{"type":"integer","format":"int64","description":"Monotonically increasing per-site release counter parsed from the tag\n(`release/N`).","minimum":0},"tag":{"type":"string","description":"Full tag name — `release/N`."}}}}}},"ApiResponse_Vec_ReservedSubdomain":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["name","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"name":{"type":"string"},"reason":{"type":["string","null"]}}}}}},"ApiResponse_Vec_Session":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","user_id","device_trusted","consumer_type","expires_at","created_at","updated_at"],"properties":{"consumer_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"device_hash":{"type":["string","null"]},"device_trusted":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"last_refreshed_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}}}}},"ApiResponse_Vec_ShareLinkResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","token","url","resource_type","resource_id","permissions","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"permissions":{"type":"string"},"resource_id":{"type":"string"},"resource_type":{"type":"string"},"token":{"type":"string"},"url":{"type":"string"}}}}}},"ApiResponse_Vec_SiteHostnameStatsDaily":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["site_hostname_id","date","page_views","unique_visitors","created_at","updated_at"],"properties":{"avg_time_seconds":{"type":["integer","null"],"format":"int32"},"bounce_rate":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"date":{"type":"string","format":"date"},"page_views":{"type":"integer","format":"int32"},"site_hostname_id":{"$ref":"#/components/schemas/SnowflakeId"},"source_breakdown":{},"top_pages":{},"unique_visitors":{"type":"integer","format":"int32"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_StatusDefinition":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","entity_type","code","label","sort_order","is_terminal","is_default","created_at","updated_at"],"properties":{"code":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"entity_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_default":{"type":"boolean"},"is_terminal":{"type":"boolean"},"label":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"updated_at":{"type":"string","format":"date-time"}}}}}},"ApiResponse_Vec_StatusHistory":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","entity_type","entity_id","to_status","created_at"],"properties":{"changed_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"created_at":{"type":"string","format":"date-time"},"entity_id":{"$ref":"#/components/schemas/SnowflakeId"},"entity_type":{"type":"string"},"from_status":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"reason":{"type":["string","null"]},"to_status":{"type":"string"}}}}}},"ApiResponse_Vec_StatusTransition":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","entity_type","from_status","to_status","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"entity_type":{"type":"string"},"from_status":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_status":{"type":"string"}}}}}},"ApiResponse_Vec_String":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"string"}}}},"ApiResponse_Vec_TreeEntryResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["mode","obj_type","hash","path"],"properties":{"hash":{"type":"string"},"mode":{"type":"string"},"obj_type":{"type":"string"},"path":{"type":"string"}}}}}},"AppliancesWire":{"type":"object","properties":{"brand_id":{"type":["integer","null"],"format":"int64"},"capacity_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"capacity_unit":{"type":["string","null"]},"colors":{"type":["array","null"],"items":{"type":"string"}},"condition":{"type":["array","null"],"items":{"type":"string"}},"delivery_included":{"type":["boolean","null"]},"depth_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"energy_rating":{"type":["string","null"]},"features":{"type":["array","null"],"items":{"type":"string"}},"height_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"installation_included":{"type":["boolean","null"]},"is_negotiable":{"type":["boolean","null"]},"model_number":{"type":["string","null"]},"notes":{"type":["string","null"]},"power_watts_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"voltage_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"warranty_months_remaining_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"width_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"year_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"AreaWire":{"type":"object","description":"Grouped area measurement: original range + unit.","required":["range","unit"],"properties":{"range":{"$ref":"#/components/schemas/NumRange"},"unit":{"type":"string"}}},"AssetResponse":{"type":"object","description":"API response type for asset attachments — includes resolved URL and asset metadata.","required":["id","url","mime_type","size","role","sort_order","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"filename":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"label":{"type":["string","null"]},"mime_type":{"type":"string"},"role":{"type":"string"},"size":{"type":"integer","format":"int64"},"sort_order":{"type":"integer","format":"int32"},"url":{"type":"string"}}},"AuthResponse":{"type":"object","required":["access_token","refresh_token"],"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"}}},"BillingCycleEnum":{"type":"string","enum":["monthly","quarterly","semi_annual","yearly"]},"BootstrapOrgOut":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"BootstrapRequest":{"type":"object","required":["email","password","name","hostname"],"properties":{"email":{"type":"string"},"hostname":{"type":"string","description":"Marketing hostname (site 0). The admin site (site 1) is derived as\n`admin.{hostname}` and reserved at the platform level."},"name":{"type":"string"},"password":{"type":"string"}}},"BootstrapResponse":{"type":"object","required":["user","org","site","admin_site","api_key"],"properties":{"admin_site":{"$ref":"#/components/schemas/BootstrapSiteOut"},"api_key":{"type":"string","description":"Plaintext API key — returned once, never retrievable again."},"org":{"$ref":"#/components/schemas/BootstrapOrgOut"},"site":{"$ref":"#/components/schemas/BootstrapSiteOut"},"user":{"$ref":"#/components/schemas/BootstrapUserOut"}}},"BootstrapSiteOut":{"type":"object","required":["id","hostname"],"properties":{"hostname":{"type":"string"},"id":{"type":"string"}}},"BootstrapUserOut":{"type":"object","required":["id","email","name"],"properties":{"email":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"BrokerageCooperationWire":{"type":"object","properties":{"commission_split_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"exclusivity_required":{"type":["boolean","null"]},"experience_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"lead_sources":{"type":["array","null"],"items":{"type":"string"}},"licenses":{"type":["array","null"],"items":{"type":"string"}},"marketing_support_provided":{"type":["boolean","null"]},"notes":{"type":["string","null"]},"specializations":{"type":["array","null"],"items":{"type":"string"}},"term_months_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"territories_psgc_codes":{"type":["array","null"],"items":{"type":"string"}},"transactions_per_year_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"BuildingMaterialsWire":{"type":"object","properties":{"bulk_discount_available":{"type":["boolean","null"]},"condition":{"type":["array","null"],"items":{"type":"string"}},"dimensions_per_unit":{"type":["string","null"]},"manufacturer_id":{"type":["integer","null"],"format":"int64"},"material_grade":{"type":["string","null"]},"notes":{"type":["string","null"]},"pickup_only":{"type":["boolean","null"]},"quantity_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"quantity_unit":{"type":["string","null"]}}},"Bundle":{"type":"object","required":["id","name","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"slug":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"BundleItem":{"type":"object","required":["id","bundle_id","capability","grant_type","created_at","updated_at"],"properties":{"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}},"BundlePrice":{"type":"object","required":["id","bundle_id","billing_cycle","amount","effective_from","created_at","updated_at"],"properties":{"amount":{"type":"string"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"},"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"effective_from":{"type":"string","format":"date"},"effective_to":{"type":["string","null"],"format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}},"CatalogEntry":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string"},"description":{"type":"string"}}},"ChangePasswordRequest":{"type":"object","required":["current_password","new_password"],"properties":{"current_password":{"type":"string"},"new_password":{"type":"string"}}},"CommercialWire":{"type":"object","properties":{"building_class":{"type":["array","null"],"items":{"type":"string"}},"ceiling_height_m_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"corner_lot":{"type":["boolean","null"]},"floor_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"foot_traffic":{"type":["array","null"],"items":{"type":"string"}},"frontage_m_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"going_concern":{"type":["boolean","null"]},"intended_business":{"type":["array","null"],"items":{"type":"string"}},"is_foreclosed":{"type":["boolean","null"]},"is_pre_selling":{"type":["boolean","null"]},"lot_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"notes":{"type":["string","null"]},"parking_spaces_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"title_statuses":{"type":["array","null"],"items":{"type":"string"}},"traffic_facing":{"type":["boolean","null"]}}},"ConstructionWire":{"type":"object","properties":{"bonded":{"type":["boolean","null"]},"completed_projects_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"coverage_radius_km_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"crew_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"equipment_owned":{"type":["array","null"],"items":{"type":"string"}},"fee_structure":{"type":["string","null"]},"insured":{"type":["boolean","null"]},"licenses":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"project_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"project_types":{"type":["array","null"],"items":{"type":"string"}},"safety_certifications":{"type":["array","null"],"items":{"type":"string"}},"years_experience_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"ContentAttrsWire":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/ResidentialWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["residential"]}}}]},{"allOf":[{"$ref":"#/components/schemas/CommercialWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["commercial"]}}}]},{"allOf":[{"$ref":"#/components/schemas/IndustrialWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["industrial"]}}}]},{"allOf":[{"$ref":"#/components/schemas/AgriculturalWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["agricultural"]}}}]},{"allOf":[{"$ref":"#/components/schemas/VacantLotWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["vacant_lot"]}}}]},{"allOf":[{"$ref":"#/components/schemas/MemorialWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["memorial"]}}}]},{"allOf":[{"$ref":"#/components/schemas/DueDiligenceWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["due_diligence"]}}}]},{"allOf":[{"$ref":"#/components/schemas/TransactionWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["transaction"]}}}]},{"allOf":[{"$ref":"#/components/schemas/FinancialWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["financial"]}}}]},{"allOf":[{"$ref":"#/components/schemas/LegalWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["legal"]}}}]},{"allOf":[{"$ref":"#/components/schemas/MediaServiceWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["media"]}}}]},{"allOf":[{"$ref":"#/components/schemas/MarketingWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["marketing"]}}}]},{"allOf":[{"$ref":"#/components/schemas/ManagementWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["management"]}}}]},{"allOf":[{"$ref":"#/components/schemas/ConstructionWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["construction"]}}}]},{"allOf":[{"$ref":"#/components/schemas/RelocationWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["relocation"]}}}]},{"allOf":[{"$ref":"#/components/schemas/FurnitureWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["furniture"]}}}]},{"allOf":[{"$ref":"#/components/schemas/AppliancesWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["appliances"]}}}]},{"allOf":[{"$ref":"#/components/schemas/FixturesAndLightingWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["fixtures_and_lighting"]}}}]},{"allOf":[{"$ref":"#/components/schemas/BuildingMaterialsWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["building_materials"]}}}]},{"allOf":[{"$ref":"#/components/schemas/ToolsAndEquipmentWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["tools_and_equipment"]}}}]},{"allOf":[{"$ref":"#/components/schemas/VehiclesAndMachineryWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["vehicles_and_machinery"]}}}]},{"allOf":[{"$ref":"#/components/schemas/DecorAndFurnishingsWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["decor_and_furnishings"]}}}]},{"allOf":[{"$ref":"#/components/schemas/OutdoorAndLandscapingWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["outdoor_and_landscaping"]}}}]},{"allOf":[{"$ref":"#/components/schemas/JointVentureWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["joint_venture"]}}}]},{"allOf":[{"$ref":"#/components/schemas/InvestmentWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["investment"]}}}]},{"allOf":[{"$ref":"#/components/schemas/FranchiseWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["franchise"]}}}]},{"allOf":[{"$ref":"#/components/schemas/BrokerageCooperationWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["brokerage_cooperation"]}}}]},{"allOf":[{"$ref":"#/components/schemas/ServiceAllianceWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["service_alliance"]}}}]},{"allOf":[{"$ref":"#/components/schemas/MentorshipWire"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","enum":["mentorship"]}}}]}]},"ContentHeader":{"type":"object","description":"Universal content fields shared across all categories.\nExcludes `search_vector` (tsvector) and `location_path` (ltree) which\nare trigger/generated and not representable in sqlx.","required":["id","author_id","organization_id","title","side","content_type","category","visibility","allow_reshare","status","psgc_codes","subtypes","created_at","updated_at"],"properties":{"allow_reshare":{"type":"boolean"},"author_id":{"$ref":"#/components/schemas/SnowflakeId"},"category":{"type":"string"},"content_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"intended_for":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId","description":"Target member for gated content (Editor/Agent delegation). NULL for self-posted."}]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"psgc_codes":{"type":"array","items":{"type":"string"}},"side":{"$ref":"#/components/schemas/ContentSideEnum"},"status":{"type":"string"},"subtypes":{"type":"array","items":{"type":"string"}},"title":{"type":"string"},"transaction_types":{"type":["array","null"],"items":{"type":"string"},"description":"Transaction types (for_sale, for_rent). Required for RE/item, null for service/partnership."},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}},"ContentMatchResponse":{"type":"object","description":"Full match with resolved org projections.","required":["id","profile","content_a_id","content_b_id","org_a_id","org_b_id","score","factors","created_at","updated_at"],"properties":{"content_a_id":{"$ref":"#/components/schemas/SnowflakeId"},"content_b_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"dismissed_by_a":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"dismissed_by_a_at":{"type":["string","null"],"format":"date-time"},"dismissed_by_b":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"dismissed_by_b_at":{"type":["string","null"],"format":"date-time"},"factors":{},"id":{"$ref":"#/components/schemas/SnowflakeId"},"org_a":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"org_a_id":{"$ref":"#/components/schemas/SnowflakeId"},"org_b":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"org_b_id":{"$ref":"#/components/schemas/SnowflakeId"},"profile":{"type":"string"},"score":{"type":"number","format":"float"},"updated_at":{"type":"string","format":"date-time"}}},"ContentOverride":{"type":"object","required":["id","content_id","created_by","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"target_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}},"ContentOverrideResponse":{"type":"object","description":"Content override with resolved org projection.","required":["id","content_id","created_by","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"created_by":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"target_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}},"ContentReshare":{"type":"object","required":["id","content_id","reshared_by","reshared_organization_id","visibility","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_by":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}},"ContentReshareResponse":{"type":"object","description":"Content reshare with resolved org projections.","required":["id","content_id","reshared_by","reshared_organization_id","visibility","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_by":{"$ref":"#/components/schemas/SnowflakeId"},"reshared_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"reshared_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}},"ContentResponse":{"allOf":[{"$ref":"#/components/schemas/ContentHeader"},{"type":"object","properties":{"attrs":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ContentAttrsWire","description":"Category-specific typed attrs. The inner tag is the category name.\nPresent on the full tier; omitted on Summary and Standard."}]},"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserSummary"}]},"organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PriceWire"}]}}}],"description":"Full view: header + price + projections + category attrs under\nthe category name as key (option C wire format).\n\nOnly one category field is ever `Some`. The key acts as a type discriminator."},"ContentSideEnum":{"type":"string","enum":["supply","demand"]},"ContentStandard":{"allOf":[{"$ref":"#/components/schemas/ContentHeader"},{"type":"object","properties":{"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserSummary"}]},"organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PriceWire"}]}}}],"description":"Standard view: header + price + author/org projections. No category attrs."},"ContentStatsDaily":{"type":"object","required":["content_id","date","views","unique_views","inquiries","saves","shares","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"date":{"type":"string","format":"date"},"inquiries":{"type":"integer","format":"int32"},"saves":{"type":"integer","format":"int32"},"shares":{"type":"integer","format":"int32"},"unique_views":{"type":"integer","format":"int32"},"updated_at":{"type":"string","format":"date-time"},"views":{"type":"integer","format":"int32"}}},"CreateApiKeyRequest":{"type":"object","required":["name"],"properties":{"expires_at":{"type":["string","null"],"format":"date-time","description":"Optional explicit expiry. If omitted, defaults to\n`auth.default_api_key_ttl` from config (default 365 days)."},"name":{"type":"string"},"scopes":{"type":["array","null"],"items":{"type":"string"}}}},"CreateBundlePriceRequest":{"type":"object","required":["billing_cycle","amount","currency","effective_from"],"properties":{"amount":{"type":"string"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"},"currency":{"type":"string"},"effective_from":{"type":"string","format":"date"},"effective_to":{"type":["string","null"],"format":"date"}}},"CreateBundleRequest":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"]},"name":{"type":"string"}}},"CreateContentBody":{"type":"object","description":"Create a content item. `side` and `content_type` come from the route.","required":["category","psgc_codes","subtypes","attrs"],"properties":{"attrs":{"$ref":"#/components/schemas/ContentAttrsWire","description":"Category-specific typed attrs. Variant must match `category`."},"category":{"type":"string","description":"Category within the content type (residential, commercial, etc.)."},"description":{"type":["string","null"]},"intended_for":{"type":["integer","null"],"format":"int64","description":"Target member user ID (required for Editors, optional for admins)."},"price_currency":{"type":["string","null"],"description":"Price currency (defaults to PHP)."},"price_period":{"type":["string","null"],"description":"Price period: one_time, monthly, yearly, etc."},"price_range":{"type":["array","null"],"items":{"type":"number","format":"double"},"description":"Price as [min, max] range. Required for categories with pricing."},"price_unit":{"type":["string","null"],"description":"Price unit: total, sqm, etc."},"psgc_codes":{"type":"array","items":{"type":"string"},"description":"PSGC location codes."},"subtypes":{"type":"array","items":{"type":"string"},"description":"Subtypes within the category (e.g. condo, house_and_lot for residential)."},"title":{"type":["string","null"]},"transaction_types":{"type":["array","null"],"items":{"type":"string"},"description":"Transaction types (for_sale, for_rent). Required for RE/item, null for service/partnership."},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VisibilityEnum","description":"Visibility level (defaults to private)."}]}}},"CreateEdgeRequest":{"type":"object","required":["content_id","to_organization_id","role"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"type":"string"},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"CreateEventRequest":{"type":"object","required":["title"],"properties":{"data":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Value"}]},"event_type":{"type":["string","null"]},"title":{"type":"string"},"visibility":{"type":["string","null"]}}},"CreateInquiryRequest":{"type":"object","required":["source"],"properties":{"data":{},"demand_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"source":{"type":"string"},"supply_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"CreateInvoiceLineRequest":{"type":"object","required":["type","description","quantity","amount"],"properties":{"amount":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"string"},"type":{"type":"string"},"unit_price":{"type":["string","null"]}}},"CreateInvoiceRequest":{"type":"object","required":["period_start","period_end","due_date"],"properties":{"due_date":{"type":"string","format":"date"},"notes":{"type":["string","null"]},"period_end":{"type":"string","format":"date"},"period_start":{"type":"string","format":"date"}}},"CreateManagedDomainRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"CreateOrgRelationshipRequest":{"type":"object","required":["to_organization_id","type"],"properties":{"data":{},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"type":{"type":"string"}}},"CreateOrganizationRequest":{"type":"object","required":["name"],"properties":{"data":{},"name":{"type":"string"},"slug":{"type":["string","null"]}}},"CreateOverrideRequest":{"type":"object","required":["capability","grant_type"],"properties":{"capability":{"type":"string"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"price":{"type":["string","null"]},"quota_spec":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/QuotaSpec"}]},"reason":{"type":["string","null"]}}},"CreatePackRequest":{"type":"object","required":["name","credits","price"],"properties":{"credits":{"type":"integer","format":"int32"},"name":{"type":"string"},"price":{"type":"string"}}},"CreatePaymentRequest":{"type":"object","required":["invoice_id","amount","payment_method"],"properties":{"amount":{"type":"string"},"currency":{"type":["string","null"]},"invoice_id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]}}},"CreateRegistrationRequest":{"type":"object","properties":{"data":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Value"}]},"role":{"type":["string","null"]},"user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"CreateReservedSubdomainRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Single subdomain label (lowercase alnum + hyphen, 1–63 chars, no\nleading/trailing hyphen). Normalized via trim + lowercase before\nvalidation."},"reason":{"type":["string","null"],"description":"Optional free-text reason for the reservation. Surfaced in admin UI."}}},"CreateSessionRequest":{"type":"object","required":["title","sort_order"],"properties":{"data":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Value"}]},"session_type":{"type":["string","null"]},"sort_order":{"type":"integer","format":"int32"},"title":{"type":"string"}}},"CreateShareLinkRequest":{"type":"object","properties":{"expires_in":{"type":["string","null"],"description":"How long the link should be valid, e.g. \"7d\", \"24h\", \"30m\".\nOmit for a link that never expires."}}},"CreateSiteRequest":{"type":"object","required":["name","slug"],"properties":{"description":{"type":["string","null"]},"from_site_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId","description":"Optional source: fork an existing site by ID."}]},"from_site_slug":{"type":["string","null"],"description":"Optional source: fork an existing site by slug."},"mode":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ForkMode","description":"`fork` copies bytes; `theme` creates an overlay referencing the source.\nRequired when from_site_id or from_site_slug is provided."}]},"name":{"type":"string"},"slug":{"type":"string","description":"URL-safe identifier. Must be unique across the instance.\nUsed for the auto-allocated preview hostname and as a human-readable\nalternative to the numeric site ID."},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VisibilityEnum","description":"Default visibility. Defaults to `private` if omitted."}]}}},"CreateUserRelationshipRequest":{"type":"object","required":["user_id","type"],"properties":{"data":{},"type":{"type":"string"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"CreateViewingRequest":{"type":"object","required":["source"],"properties":{"data":{},"demand_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"source":{"type":"string"},"supply_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"CreditBalanceResponse":{"type":"object","required":["organization_id","balance"],"properties":{"balance":{"type":"integer","format":"int32"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"CreditPack":{"type":"object","required":["id","name","credits","price","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"credits":{"type":"integer","format":"int32"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"price":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"CreditPurchase":{"type":"object","required":["id","organization_id","credit_pack_id","amount","credits_received","payment_method","status","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_pack_id":{"$ref":"#/components/schemas/SnowflakeId"},"credits_received":{"type":"integer","format":"int32"},"currency":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"CreditTransaction":{"type":"object","required":["id","organization_id","amount","type","created_at"],"properties":{"amount":{"type":"integer","format":"int32"},"capability":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"credit_pack_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"note":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"reference_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"type":{"type":"string"}}},"DateTimeRange":{"type":"array","items":{"type":"string","format":"date-time"},"maxItems":2,"minItems":2},"DecorAndFurnishingsWire":{"type":"object","properties":{"colors":{"type":["array","null"],"items":{"type":"string"}},"condition":{"type":["array","null"],"items":{"type":"string"}},"dimensions_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"material":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"room_suitability":{"type":["array","null"],"items":{"type":"string"}},"style":{"type":["array","null"],"items":{"type":"string"}}}},"DeleteFileRequest":{"type":"object","required":["message"],"properties":{"base_ref":{"type":["string","null"]},"message":{"type":"string"}}},"DeletedResponse":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean"}}},"DiffFileResponse":{"type":"object","required":["path","status"],"properties":{"path":{"type":"string"},"status":{"type":"string"}}},"DiffResponse":{"type":"object","required":["files","patch"],"properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/DiffFileResponse"}},"patch":{"type":"string"}}},"DisableTotpRequest":{"type":"object","required":["password"],"properties":{"password":{"type":"string"}}},"DistributionEdge":{"type":"object","required":["id","content_id","from_organization_id","to_organization_id","role","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"type":"string"},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}},"DistributionEdgeResponse":{"type":"object","description":"Distribution edge with resolved org projections.","required":["id","content_id","from_organization_id","to_organization_id","role","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"from_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"type":"string"},"to_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}},"DueDiligenceWire":{"type":"object","properties":{"accepts_rush":{"type":["boolean","null"]},"certifications":{"type":["array","null"],"items":{"type":"string"}},"coverage_radius_km_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"experience_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"fee_structure":{"type":["string","null"]},"languages":{"type":["array","null"],"items":{"type":"string"}},"next_available_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DateTimeRange"}]},"notes":{"type":["string","null"]},"on_site_required":{"type":["boolean","null"]},"portfolio_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"response_time_hours_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"service_scope":{"type":["array","null"],"items":{"type":"string"}},"target_categories":{"type":["array","null"],"items":{"type":"string"}}}},"EnableTotpRequest":{"type":"object","required":["code"],"properties":{"code":{"type":"string"}}},"Event":{"type":"object","required":["id","organization_id","title","visibility","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"data":{},"event_type":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"status":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"visibility":{"type":"string"}}},"EventRegistration":{"type":"object","required":["id","event_id","role","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"event_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"invoice_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"payment_window_expires":{"type":["string","null"],"format":"date-time"},"queue_position":{"type":["integer","null"],"format":"int32"},"role":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"EventSession":{"type":"object","required":["id","organization_id","title","sort_order","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"data":{},"event_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"session_type":{"type":["string","null"]},"sort_order":{"type":"integer","format":"int32"},"title":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"FacetBucket":{"type":"object","description":"A single bucket in a faceted count result.","required":["value","count"],"properties":{"count":{"type":"integer","format":"int64"},"label":{"type":["string","null"]},"value":{"type":"string"}}},"FacetResponse":{"type":"object","description":"Response from a faceted count query.","required":["facets","total"],"properties":{"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/FacetBucket"}},"propertyNames":{"type":"string"}},"total":{"type":"integer","format":"int64"}}},"FileWrite":{"type":"object","required":["path","content"],"properties":{"content":{"type":"string","description":"Base64-encoded file content."},"path":{"type":"string"}}},"FinancialWire":{"type":"object","properties":{"branch_offices_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"commission_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"fee_structure":{"type":["string","null"]},"interest_rate_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"lender_network":{"type":["array","null"],"items":{"type":"string"}},"licenses":{"type":["array","null"],"items":{"type":"string"}},"loan_amount_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"loan_term_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"notes":{"type":["string","null"]},"property_types_supported":{"type":["array","null"],"items":{"type":"string"}},"years_in_business_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"FixturesAndLightingWire":{"type":"object","properties":{"compatible_systems":{"type":["array","null"],"items":{"type":"string"}},"condition":{"type":["array","null"],"items":{"type":"string"}},"dimensions_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"finish":{"type":["array","null"],"items":{"type":"string"}},"installation_difficulty":{"type":["string","null"]},"material":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"power_consumption_watts_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"style":{"type":["array","null"],"items":{"type":"string"}}}},"ForgotPasswordRequest":{"type":"object","required":["email"],"properties":{"email":{"type":"string"}}},"ForgotPasswordResponse":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"reset_token":{"type":["string","null"]}}},"ForkMode":{"type":"string","enum":["fork","theme"]},"FranchiseWire":{"type":"object","properties":{"brand_id":{"type":["integer","null"],"format":"int64"},"exclusive_territory":{"type":["boolean","null"]},"existing_locations_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"marketing_fee_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"min_capital_required_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"notes":{"type":["string","null"]},"royalty_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"success_rate_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"support_provided":{"type":["array","null"],"items":{"type":"string"}},"term_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"territory_psgc_codes":{"type":["array","null"],"items":{"type":"string"}},"training_provided":{"type":["array","null"],"items":{"type":"string"}}}},"FurnitureWire":{"type":"object","properties":{"assembly_required":{"type":["boolean","null"]},"colors":{"type":["array","null"],"items":{"type":"string"}},"condition":{"type":["array","null"],"items":{"type":"string"}},"delivery_included":{"type":["boolean","null"]},"depth_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"height_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"materials":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"style":{"type":["array","null"],"items":{"type":"string"}},"weight_kg_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"width_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"year_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"HealthResponse":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}}},"ImportBundlesRequest":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":"Filesystem path to a bundles YAML file. Resolved relative to the api\nprocess's cwd. Operators typically pass `\"bundles.yml\"`."}}},"ImportBundlesResponse":{"type":"object","required":["bundles_upserted","items_upserted","items_removed"],"properties":{"bundles_upserted":{"type":"integer","minimum":0},"items_removed":{"type":"integer","minimum":0},"items_upserted":{"type":"integer","minimum":0}}},"IndustrialWire":{"type":"object","properties":{"ceiling_height_m_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"column_spacing_m_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"crane_options":{"type":["array","null"],"items":{"type":"string"}},"floor_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"floor_load_capacity_kpa_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"forklift_access":{"type":["boolean","null"]},"is_foreclosed":{"type":["boolean","null"]},"loading_docks_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"lot_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"notes":{"type":["string","null"]},"office_space_sqm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"power_capacity_kw_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"power_phase":{"type":["array","null"],"items":{"type":"string"}},"temperature_control":{"type":["array","null"],"items":{"type":"string"}},"title_statuses":{"type":["array","null"],"items":{"type":"string"}},"truck_access":{"type":["array","null"],"items":{"type":"string"}}}},"InquiryChannel":{"type":"string","enum":["email","phone","sms","chat","portal","walk_in"]},"InquiryData":{"type":"object","properties":{"channel":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/InquiryChannel"}]},"contact_email":{"type":["string","null"]},"contact_name":{"type":["string","null"]},"contact_phone":{"type":["string","null"]},"message":{"type":["string","null"]},"priority":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Priority"}]},"proposed_date":{"type":["string","null"],"format":"date-time"}},"additionalProperties":{}},"IntRange":{"type":"array","items":{"type":"integer"},"maxItems":2,"minItems":2},"Interaction":{"type":"object","required":["id","organization_id","source","interaction_type","status","data","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{"$ref":"#/components/schemas/InteractionData"},"demand_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"from_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"interaction_type":{"type":"string"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"proposed_date":{"type":["string","null"],"format":"date-time"},"source":{"type":"string"},"status":{"type":"string"},"supply_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}},"InteractionData":{"oneOf":[{"$ref":"#/components/schemas/InquiryData"},{"$ref":"#/components/schemas/ViewingRequestData"},{"$ref":"#/components/schemas/ResponseData"},{"$ref":"#/components/schemas/SystemMatchData"},{"$ref":"#/components/schemas/NoteData"}],"description":"Type-dispatched interaction data. Each variant corresponds to an\n`interaction_type` value and defines the expected JSONB shape."},"InvestmentWire":{"type":"object","properties":{"accredited_investor_required":{"type":["boolean","null"]},"asset_classes":{"type":["array","null"],"items":{"type":"string"}},"distribution_frequency":{"type":["array","null"],"items":{"type":"string"}},"expected_return_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"holding_period_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"lock_up_period_months_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"minimum_investment_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"notes":{"type":["string","null"]},"prior_returns_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"risk_tolerance":{"type":["array","null"],"items":{"type":"string"}},"secured_by":{"type":["array","null"],"items":{"type":"string"}},"track_record_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"Invoice":{"type":"object","required":["id","organization_id","period_start","period_end","subtotal","total_adjustments","total_amount","status","due_date","created_at","updated_at"],"properties":{"checkout_session_id":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"due_date":{"type":"string","format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"paid_at":{"type":["string","null"],"format":"date-time"},"payment_url":{"type":["string","null"]},"period_end":{"type":"string","format":"date"},"period_start":{"type":"string","format":"date"},"sent_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"subtotal":{"type":"string"},"total_adjustments":{"type":"string"},"total_amount":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"InvoiceLine":{"type":"object","required":["id","invoice_id","type","description","amount","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invoice_id":{"$ref":"#/components/schemas/SnowflakeId"},"quantity":{"type":["string","null"]},"type":{"type":"string"},"unit_price":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}},"InvoiceWithLines":{"allOf":[{"$ref":"#/components/schemas/Invoice"},{"type":"object","required":["lines"],"properties":{"lines":{"type":"array","items":{"$ref":"#/components/schemas/InvoiceLine"}}}}]},"JointVentureWire":{"type":"object","properties":{"contribution_types":{"type":["array","null"],"items":{"type":"string"}},"equity_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"exit_strategies":{"type":["array","null"],"items":{"type":"string"}},"experience_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"is_first_time":{"type":["boolean","null"]},"max_concurrent_projects_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"notes":{"type":["string","null"]},"offering_roles":{"type":["array","null"],"items":{"type":"string"}},"open_to_minority_stake":{"type":["boolean","null"]},"project_categories":{"type":["array","null"],"items":{"type":"string"}},"requires_legal_due_diligence":{"type":["boolean","null"]},"risk_tolerance":{"type":["array","null"],"items":{"type":"string"}},"seeking_roles":{"type":["array","null"],"items":{"type":"string"}},"specializations":{"type":["array","null"],"items":{"type":"string"}},"target_irr_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"target_market_segments":{"type":["array","null"],"items":{"type":"string"}},"timeline_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"LegalWire":{"type":"object","properties":{"accepts_pro_bono":{"type":["boolean","null"]},"bar_admissions":{"type":["array","null"],"items":{"type":"string"}},"case_volume_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"experience_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"fee_structure":{"type":["string","null"]},"notes":{"type":["string","null"]},"practice_areas":{"type":["array","null"],"items":{"type":"string"}}}},"ListResponse_ContentHeader":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Universal content fields shared across all categories.\nExcludes `search_vector` (tsvector) and `location_path` (ltree) which\nare trigger/generated and not representable in sqlx.","required":["id","author_id","organization_id","title","side","content_type","category","visibility","allow_reshare","status","psgc_codes","subtypes","created_at","updated_at"],"properties":{"allow_reshare":{"type":"boolean"},"author_id":{"$ref":"#/components/schemas/SnowflakeId"},"category":{"type":"string"},"content_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"intended_for":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId","description":"Target member for gated content (Editor/Agent delegation). NULL for self-posted."}]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"psgc_codes":{"type":"array","items":{"type":"string"}},"side":{"$ref":"#/components/schemas/ContentSideEnum"},"status":{"type":"string"},"subtypes":{"type":"array","items":{"type":"string"}},"title":{"type":"string"},"transaction_types":{"type":["array","null"],"items":{"type":"string"},"description":"Transaction types (for_sale, for_rent). Required for RE/item, null for service/partnership."},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_ContentMatchResponse":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Full match with resolved org projections.","required":["id","profile","content_a_id","content_b_id","org_a_id","org_b_id","score","factors","created_at","updated_at"],"properties":{"content_a_id":{"$ref":"#/components/schemas/SnowflakeId"},"content_b_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"dismissed_by_a":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"dismissed_by_a_at":{"type":["string","null"],"format":"date-time"},"dismissed_by_b":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"dismissed_by_b_at":{"type":["string","null"],"format":"date-time"},"factors":{},"id":{"$ref":"#/components/schemas/SnowflakeId"},"org_a":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"org_a_id":{"$ref":"#/components/schemas/SnowflakeId"},"org_b":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"org_b_id":{"$ref":"#/components/schemas/SnowflakeId"},"profile":{"type":"string"},"score":{"type":"number","format":"float"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_ContentStandard":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ContentHeader"},{"type":"object","properties":{"author":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserSummary"}]},"organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/PriceWire"}]}}}],"description":"Standard view: header + price + author/org projections. No category attrs."}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_CreditTransaction":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","amount","type","created_at"],"properties":{"amount":{"type":"integer","format":"int32"},"capability":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"credit_pack_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"note":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"reference_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"type":{"type":"string"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_DistributionEdgeResponse":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Distribution edge with resolved org projections.","required":["id","content_id","from_organization_id","to_organization_id","role","created_at","updated_at"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"from_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"type":"string"},"to_organization":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgSummary"}]},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_Event":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","title","visibility","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"data":{},"event_type":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"status":{"type":"string"},"title":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"visibility":{"type":"string"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_EventRegistration":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","event_id","role","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"event_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"invoice_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"payment_window_expires":{"type":["string","null"],"format":"date-time"},"queue_position":{"type":["integer","null"],"format":"int32"},"role":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_EventSession":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","title","sort_order","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"created_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"data":{},"event_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"session_type":{"type":["string","null"]},"sort_order":{"type":"integer","format":"int32"},"title":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_Interaction":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","source","interaction_type","status","data","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{"$ref":"#/components/schemas/InteractionData"},"demand_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"from_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"interaction_type":{"type":"string"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"proposed_date":{"type":["string","null"],"format":"date-time"},"source":{"type":"string"},"status":{"type":"string"},"supply_content_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_Invoice":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","period_start","period_end","subtotal","total_adjustments","total_amount","status","due_date","created_at","updated_at"],"properties":{"checkout_session_id":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"due_date":{"type":"string","format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"paid_at":{"type":["string","null"],"format":"date-time"},"payment_url":{"type":["string","null"]},"period_end":{"type":"string","format":"date"},"period_start":{"type":"string","format":"date"},"sent_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"subtotal":{"type":"string"},"total_adjustments":{"type":"string"},"total_amount":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_MembershipResponse":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Membership with resolved user projection (CR-010).\n\nFor public (anonymous) access, `source` and `invited_by` are omitted and\n`user` contains only opted-in profile data. For authenticated org member\naccess, all fields are present and `user` contains standard fields for\nall users regardless of opt-in.","required":["id","user_id","organization_id","role","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"$ref":"#/components/schemas/RoleEnum"},"source":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserStandard"}]},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_MembershipWithOrg":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Membership row joined with its organization's standard projection.\nUsed by the `GET /me/memberships` endpoint.","required":["id","user_id","organization_id","role","status","organization_name","is_personal","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_personal":{"type":"boolean"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_name":{"type":"string"},"organization_slug":{"type":["string","null"]},"role":{"$ref":"#/components/schemas/RoleEnum"},"status":{"type":"string"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_OrgRelationship":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","from_organization_id","to_organization_id","type","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"expires_at":{"type":["string","null"],"format":"date-time"},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"type":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_OrgSubscription":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","bundle_id","status","started_at","created_at","updated_at"],"properties":{"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"current_period_end":{"type":["string","null"],"format":"date"},"current_period_start":{"type":["string","null"],"format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":"string","format":"date-time"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_OrgUserRelationship":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","user_id","type","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_Payment":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","invoice_id","amount","payment_method","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invoice_id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]},"received_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_Site":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","name","slug","visibility","deploy_ref","draft_ref","forkable","listed_as_template","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"deploy_ref":{"type":"string"},"description":{"type":["string","null"]},"draft_ref":{"type":"string"},"forkable":{"type":"boolean"},"forked_from_commit":{"type":["string","null"]},"forked_from_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"listed_as_template":{"type":"boolean"},"name":{"type":"string"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"repo_path":{"type":["string","null"]},"slug":{"type":"string"},"status":{"type":"string"},"theme_of":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListResponse_SiteHostname":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","site_id","name","is_primary","serves_preview","status","created_at","updated_at"],"properties":{"cert_status":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_primary":{"type":"boolean"},"name":{"type":"string"},"redirect_mode":{"type":["string","null"]},"serves_preview":{"type":"boolean"},"site_id":{"$ref":"#/components/schemas/SnowflakeId"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}}},"pagination":{"$ref":"#/components/schemas/PaginationMeta"}}},"ListingMediaUpload":{"type":"object","description":"Multipart body schema for `POST /listings/{content_type}/{id}/media`.\nField shapes match the runtime `Multipart` extractor; this struct exists\nonly to populate the OpenAPI `request_body` definition.","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Media file bytes."},"label":{"type":["string","null"],"description":"Human-readable label shown alongside the asset."},"role":{"type":["string","null"],"description":"Attachment role (e.g. `photo`, `video`, `document`). Optional — repo\nsupplies a default when omitted."},"sort_order":{"type":["integer","null"],"format":"int32","description":"Sort order within the content's attachment list."}}},"LogEntryResponse":{"type":"object","required":["hash","author","date","message"],"properties":{"author":{"type":"string"},"date":{"type":"string"},"hash":{"type":"string"},"message":{"type":"string"}}},"LoginRequest":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string"},"password":{"type":"string"}}},"ManagedDomain":{"type":"object","required":["id","name","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"ManagementWire":{"type":"object","properties":{"available_24_7":{"type":["boolean","null"]},"bonded":{"type":["boolean","null"]},"coverage_radius_km_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"fee_structure":{"type":["string","null"]},"insured":{"type":["boolean","null"]},"licenses":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"portfolio_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"property_types_supported":{"type":["array","null"],"items":{"type":"string"}},"response_time_hours_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"service_frequency":{"type":["array","null"],"items":{"type":"string"}},"team_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"MarketingWire":{"type":"object","properties":{"case_studies_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"conversion_rate_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"fee_structure":{"type":["string","null"]},"lead_volume_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"monthly_budget_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"notes":{"type":["string","null"]},"platforms":{"type":["array","null"],"items":{"type":"string"}},"target_audiences":{"type":["array","null"],"items":{"type":"string"}},"tracked_metrics":{"type":["array","null"],"items":{"type":"string"}},"years_experience_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"MeResponse":{"type":"object","properties":{"capabilities":{"type":["array","null"],"items":{"type":"string"}},"org":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OrgStandard"}]},"role":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/RoleEnum"}]},"user":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/MeUser"}]}}},"MeUser":{"type":"object","required":["id","email"],"properties":{"email":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":["string","null"]}}},"MediaServiceWire":{"type":"object","properties":{"deliverable_formats":{"type":["array","null"],"items":{"type":"string"}},"equipment":{"type":["array","null"],"items":{"type":"string"}},"fee_structure":{"type":["string","null"]},"notes":{"type":["string","null"]},"package_tier":{"type":["array","null"],"items":{"type":"string"}},"portfolio_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"specializations":{"type":["array","null"],"items":{"type":"string"}},"style":{"type":["array","null"],"items":{"type":"string"}},"turnaround_days_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"years_experience_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"Membership":{"type":"object","required":["id","user_id","organization_id","role","status","source","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"$ref":"#/components/schemas/RoleEnum"},"source":{"type":"string"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"MembershipResponse":{"type":"object","description":"Membership with resolved user projection (CR-010).\n\nFor public (anonymous) access, `source` and `invited_by` are omitted and\n`user` contains only opted-in profile data. For authenticated org member\naccess, all fields are present and `user` contains standard fields for\nall users regardless of opt-in.","required":["id","user_id","organization_id","role","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invited_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"role":{"$ref":"#/components/schemas/RoleEnum"},"source":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/UserStandard"}]},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"MembershipWithOrg":{"type":"object","description":"Membership row joined with its organization's standard projection.\nUsed by the `GET /me/memberships` endpoint.","required":["id","user_id","organization_id","role","status","organization_name","is_personal","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_personal":{"type":"boolean"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_name":{"type":"string"},"organization_slug":{"type":["string","null"]},"role":{"$ref":"#/components/schemas/RoleEnum"},"status":{"type":"string"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"MemorialWire":{"type":"object","properties":{"capacity_persons_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"cemetery_id":{"type":["integer","null"],"format":"int64"},"existing_remains_count_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"level":{"type":["string","null"]},"maintenance_included":{"type":["boolean","null"]},"notes":{"type":["string","null"]},"perpetual_care":{"type":["boolean","null"]},"religion":{"type":["array","null"],"items":{"type":"string"}},"section":{"type":["string","null"]}}},"MentorshipWire":{"type":"object","properties":{"certification_provided":{"type":["boolean","null"]},"cohort_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"coverage_psgc_codes":{"type":["array","null"],"items":{"type":"string"}},"experience_offered_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"experience_sought_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"format":{"type":["array","null"],"items":{"type":"string"}},"meeting_frequency":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"specializations":{"type":["array","null"],"items":{"type":"string"}},"time_commitment_hours_per_month_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]}}},"MoveHostnameRequest":{"type":"object","required":["target_site_id"],"properties":{"target_site_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"NoteData":{"type":"object","properties":{"message":{"type":["string","null"]},"priority":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Priority"}]}},"additionalProperties":{}},"NumRange":{"type":"array","items":{"type":"number","format":"decimal"},"maxItems":2,"minItems":2},"OrgAssetUpload":{"type":"object","description":"Multipart body schema for `POST /organization/asset`. The `role` field\nlives on the URL as a query parameter; only the file bytes are in the body.","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Asset file bytes (logo or favicon)."}}},"OrgBillingProfile":{"type":"object","required":["organization_id","billing_cycle","billing_anchor_date","created_at","updated_at"],"properties":{"billing_anchor_date":{"type":"string","format":"date"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"},"created_at":{"type":"string","format":"date-time"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"pending_billing_cycle":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/BillingCycleEnum"}]},"pending_effective_date":{"type":["string","null"],"format":"date"},"updated_at":{"type":"string","format":"date-time"},"updated_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"OrgCapability":{"type":"object","required":["id","organization_id","capability","grant_type","source","created_at","updated_at"],"properties":{"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"source":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"OrgCapabilityOverride":{"type":"object","required":["id","organization_id","capability","grant_type","created_at","updated_at"],"properties":{"capability":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"credit_cost":{"type":["integer","null"],"format":"int32"},"grant_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"price":{"type":["string","null"]},"quota":{"type":["integer","null"],"format":"int32"},"quota_window":{"type":["string","null"]},"reason":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time"}}},"OrgRelationship":{"type":"object","required":["id","from_organization_id","to_organization_id","type","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"expires_at":{"type":["string","null"],"format":"date-time"},"from_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"to_organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"type":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"OrgStandard":{"type":"object","description":"Org identity + settings. Used by OrgContext and in responses that need\norg configuration (e.g. /me, window.__LN.org) but not the full data blob.","required":["id","name","status","is_personal","accepts_applications","member_directory"],"properties":{"accepts_applications":{"type":"boolean"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_personal":{"type":"boolean"},"member_directory":{"type":"string"},"name":{"type":"string"},"slug":{"type":["string","null"]},"status":{"type":"string"}}},"OrgSubscription":{"type":"object","required":["id","organization_id","bundle_id","status","started_at","created_at","updated_at"],"properties":{"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"},"created_at":{"type":"string","format":"date-time"},"current_period_end":{"type":["string","null"],"format":"date"},"current_period_start":{"type":["string","null"],"format":"date"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":"string","format":"date-time"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"OrgSummary":{"type":"object","description":"Minimal org info for embedding in other responses.","required":["id","name","slug"],"properties":{"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":"string"},"slug":{"type":"string"}}},"OrgUserRelationship":{"type":"object","required":["id","organization_id","user_id","type","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"data":{},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"started_at":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"},"type":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"Organization":{"type":"object","required":["id","name","status","is_personal","accepts_applications","member_directory","created_at","updated_at"],"properties":{"accepts_applications":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"data":{},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_personal":{"type":"boolean"},"member_directory":{"type":"string"},"name":{"type":"string"},"public_invite_token":{"type":["string","null"]},"slug":{"type":["string","null"]},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"OutdoorAndLandscapingWire":{"type":"object","properties":{"condition":{"type":["array","null"],"items":{"type":"string"}},"dimensions_mm_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"installation_required":{"type":["boolean","null"]},"material":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"power_source":{"type":["array","null"],"items":{"type":"string"}},"weather_resistance":{"type":["array","null"],"items":{"type":"string"}}}},"OverrideRequest":{"type":"object","required":["content_id"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"target_user_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]}}},"PaginationMeta":{"type":"object","required":["total","limit","offset","has_more"],"properties":{"has_more":{"type":"boolean"},"limit":{"type":"integer","format":"int64"},"offset":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"Payment":{"type":"object","required":["id","organization_id","invoice_id","amount","payment_method","created_at","updated_at"],"properties":{"amount":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"currency":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"invoice_id":{"$ref":"#/components/schemas/SnowflakeId"},"notes":{"type":["string","null"]},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]},"received_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"}}},"PriceWire":{"type":"object","description":"Grouped price: original range + currency/period/unit.\n`rate` and canonical range are internal — not exposed.","required":["range","currency","period","unit"],"properties":{"currency":{"type":"string"},"period":{"type":"string"},"range":{"$ref":"#/components/schemas/NumRange"},"unit":{"type":"string"}}},"Priority":{"type":"string","enum":["low","normal","high","urgent"]},"PromoteRequest":{"type":"object","description":"Promote request body. Unified endpoint covering both forward promotes\n(promote draft tip or a specific commit) and rollback (re-promote an older\nrelease by tag).","required":["message"],"properties":{"commit":{"type":["string","null"],"description":"Promote a specific commit on `draft` (must be reachable from `draft`).\nMutually exclusive with `tag`."},"message":{"type":"string","description":"Required: commit message captured on the new `main` commit."},"tag":{"type":["string","null"],"description":"Re-promote an older release. Format: `release/N`. Mutually exclusive\nwith `commit`. Rollback produces a new `release/N+1` with the same\ntree as the target."}}},"Psgc":{"type":"object","required":["code","name","level","region_code","full_name","path"],"properties":{"city_class":{"type":["string","null"]},"city_mun_code":{"type":["string","null"]},"code":{"type":"string"},"full_name":{"type":"string"},"income_class":{"type":["string","null"]},"level":{"type":"string"},"name":{"type":"string"},"parent_code":{"type":["string","null"]},"path":{"type":"string"},"population":{"type":["integer","null"],"format":"int32"},"province_code":{"type":["string","null"]},"region_code":{"type":"string"},"urban_rural":{"type":["string","null"]}}},"PublicInquiryRequest":{"type":"object","description":"Anonymous inquiry submission (public, no auth).","required":["email","content_id"],"properties":{"content_id":{"type":"integer","format":"int64","description":"The content ID being inquired about."},"email":{"type":"string","description":"Email of the inquiring person (required)."},"message":{"type":["string","null"],"description":"Message to the listing owner."},"name":{"type":["string","null"],"description":"Name of the inquiring person."},"phone":{"type":["string","null"],"description":"Phone number."}}},"PublicRequirementRequest":{"type":"object","description":"Anonymous requirement submission (public, no auth).","required":["email","category","psgc_codes","subtypes"],"properties":{"category":{"type":"string","description":"Category (e.g. residential)."},"content_type":{"type":["string","null"],"description":"Content type (defaults to real_estate)."},"description":{"type":["string","null"],"description":"Description of what they're looking for."},"email":{"type":"string","description":"Email of the submitter (required)."},"name":{"type":["string","null"],"description":"Name of the submitter."},"phone":{"type":["string","null"],"description":"Phone number."},"psgc_codes":{"type":"array","items":{"type":"string"},"description":"PSGC location codes."},"subtypes":{"type":"array","items":{"type":"string"},"description":"Category subtypes (e.g. condo, house_and_lot for residential)."},"title":{"type":["string","null"],"description":"Title of the requirement."},"transaction_types":{"type":["array","null"],"items":{"type":"string"},"description":"Transaction types (for_sale, for_rent). Optional — None means no preference."}}},"PurchaseRequest":{"type":"object","required":["credit_pack_id","payment_method"],"properties":{"credit_pack_id":{"$ref":"#/components/schemas/SnowflakeId"},"payment_method":{"type":"string"},"payment_reference":{"type":["string","null"]}}},"QuotaSpec":{"type":"object","required":["quota"],"properties":{"quota":{"type":"integer"},"window":{"type":"string","description":"ISO 8601 duration string (e.g. P1D, PT1H). Null means total (no rate window)."}}},"RefreshRequest":{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string"}}},"RegisterRequest":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string"},"name":{"type":["string","null"]},"password":{"type":"string"}}},"RegisterResponse":{"type":"object","required":["message","verification_token"],"properties":{"message":{"type":"string"},"verification_token":{"type":"string"}}},"Release":{"type":"object","required":["release_number","tag","commit","created_at","message"],"properties":{"commit":{"type":"string","description":"Commit SHA the tag points at."},"created_at":{"type":"string","description":"ISO-8601 creation time of the commit."},"message":{"type":"string","description":"Promoter-supplied message from the commit."},"release_number":{"type":"integer","format":"int64","description":"Monotonically increasing per-site release counter parsed from the tag\n(`release/N`).","minimum":0},"tag":{"type":"string","description":"Full tag name — `release/N`."}}},"RelocationWire":{"type":"object","properties":{"crew_size_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"fee_structure":{"type":["string","null"]},"insurance_included":{"type":["boolean","null"]},"notes":{"type":["string","null"]},"package_tier":{"type":["array","null"],"items":{"type":"string"}},"same_day_available":{"type":["boolean","null"]},"service_destination_psgc_codes":{"type":["array","null"],"items":{"type":"string"}},"service_origin_psgc_codes":{"type":["array","null"],"items":{"type":"string"}},"services_included":{"type":["array","null"],"items":{"type":"string"}},"truck_capacity_cuft_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"years_experience_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"ReservedSubdomain":{"type":"object","required":["name","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"name":{"type":"string"},"reason":{"type":["string","null"]}}},"ResetPasswordRequest":{"type":"object","required":["token","new_password"],"properties":{"new_password":{"type":"string"},"token":{"type":"string"}}},"ReshareRequest":{"type":"object","required":["content_id","visibility"],"properties":{"content_id":{"$ref":"#/components/schemas/SnowflakeId"},"target_organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"visibility":{"type":"string"}}},"ResidentialWire":{"type":"object","properties":{"amenities":{"type":["array","null"],"items":{"type":"string"}},"availability_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DateTimeRange"}]},"bathrooms_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"bedrooms_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"developer_id":{"type":["integer","null"],"format":"int64"},"financing_options":{"type":["array","null"],"items":{"type":"string"}},"floor_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"floor_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"furnishing_options":{"type":["array","null"],"items":{"type":"string"}},"is_assumable":{"type":["boolean","null"]},"is_foreclosed":{"type":["boolean","null"]},"is_pre_selling":{"type":["boolean","null"]},"lease_term_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DateTimeRange"}]},"lot_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"notes":{"type":["string","null"]},"parking_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"pet_friendly":{"type":["boolean","null"]},"purchase_timeline":{"type":["array","null"],"items":{"type":"string"}},"total_floors_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"views":{"type":["array","null"],"items":{"type":"string"}},"year_built_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"year_renovated_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"ResponseData":{"type":"object","properties":{"in_reply_to":{"type":["string","null"]},"linked_content_id":{"type":["string","null"]},"message":{"type":["string","null"]},"priority":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Priority"}]}},"additionalProperties":{}},"RoleEnum":{"type":"string","enum":["admin","organization_admin","member","editor"]},"ServiceAllianceWire":{"type":"object","properties":{"co_branding":{"type":["boolean","null"]},"exclusivity":{"type":["array","null"],"items":{"type":"string"}},"marketing_commitment_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"min_volume_per_month_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"notes":{"type":["string","null"]},"payment_structure":{"type":["array","null"],"items":{"type":"string"}},"revenue_share_pct_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"service_categories":{"type":["array","null"],"items":{"type":"string"}},"target_geographies":{"type":["array","null"],"items":{"type":"string"}},"term_months_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"years_in_business_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"Session":{"type":"object","required":["id","user_id","device_trusted","consumer_type","expires_at","created_at","updated_at"],"properties":{"consumer_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"device_hash":{"type":["string","null"]},"device_trusted":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"last_refreshed_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"ShareLinkResponse":{"type":"object","required":["id","token","url","resource_type","resource_id","permissions","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"permissions":{"type":"string"},"resource_id":{"type":"string"},"resource_type":{"type":"string"},"token":{"type":"string"},"url":{"type":"string"}}},"Site":{"type":"object","required":["id","organization_id","name","slug","visibility","deploy_ref","draft_ref","forkable","listed_as_template","status","created_at","updated_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"deploy_ref":{"type":"string"},"description":{"type":["string","null"]},"draft_ref":{"type":"string"},"forkable":{"type":"boolean"},"forked_from_commit":{"type":["string","null"]},"forked_from_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"listed_as_template":{"type":"boolean"},"name":{"type":"string"},"organization_id":{"$ref":"#/components/schemas/SnowflakeId"},"repo_path":{"type":["string","null"]},"slug":{"type":"string"},"status":{"type":"string"},"theme_of":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"updated_at":{"type":"string","format":"date-time"},"visibility":{"$ref":"#/components/schemas/VisibilityEnum"}}},"SiteHostname":{"type":"object","required":["id","site_id","name","is_primary","serves_preview","status","created_at","updated_at"],"properties":{"cert_status":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_primary":{"type":"boolean"},"name":{"type":"string"},"redirect_mode":{"type":["string","null"]},"serves_preview":{"type":"boolean"},"site_id":{"$ref":"#/components/schemas/SnowflakeId"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"SiteHostnameStatsDaily":{"type":"object","required":["site_hostname_id","date","page_views","unique_visitors","created_at","updated_at"],"properties":{"avg_time_seconds":{"type":["integer","null"],"format":"int32"},"bounce_rate":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"date":{"type":"string","format":"date"},"page_views":{"type":"integer","format":"int32"},"site_hostname_id":{"$ref":"#/components/schemas/SnowflakeId"},"source_breakdown":{},"top_pages":{},"unique_visitors":{"type":"integer","format":"int32"},"updated_at":{"type":"string","format":"date-time"}}},"SnowflakeId":{"type":"string","description":"Snowflake ID (64-bit integer serialized as string)"},"StatusDefinition":{"type":"object","required":["id","entity_type","code","label","sort_order","is_terminal","is_default","created_at","updated_at"],"properties":{"code":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"entity_type":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"is_default":{"type":"boolean"},"is_terminal":{"type":"boolean"},"label":{"type":"string"},"sort_order":{"type":"integer","format":"int32"},"updated_at":{"type":"string","format":"date-time"}}},"StatusHistory":{"type":"object","required":["id","entity_type","entity_id","to_status","created_at"],"properties":{"changed_by":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"created_at":{"type":"string","format":"date-time"},"entity_id":{"$ref":"#/components/schemas/SnowflakeId"},"entity_type":{"type":"string"},"from_status":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"reason":{"type":["string","null"]},"to_status":{"type":"string"}}},"StatusTransition":{"type":"object","required":["id","entity_type","from_status","to_status","created_at"],"properties":{"created_at":{"type":"string","format":"date-time"},"entity_type":{"type":"string"},"from_status":{"type":"string"},"id":{"$ref":"#/components/schemas/SnowflakeId"},"organization_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SnowflakeId"}]},"to_status":{"type":"string"}}},"SubscribeRequest":{"type":"object","required":["bundle_id"],"properties":{"bundle_id":{"$ref":"#/components/schemas/SnowflakeId"}}},"SystemMatchData":{"type":"object","properties":{"match_factors":{},"match_score":{"type":["number","null"],"format":"double"},"source_match_id":{"type":["string","null"]}},"additionalProperties":{}},"ToolsAndEquipmentWire":{"type":"object","properties":{"brand_id":{"type":["integer","null"],"format":"int64"},"condition":{"type":["array","null"],"items":{"type":"string"}},"included_accessories":{"type":["array","null"],"items":{"type":"string"}},"notes":{"type":["string","null"]},"power_source":{"type":["array","null"],"items":{"type":"string"}},"power_specs_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"rental_period_days_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"year_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"TotpChallengeResponse":{"type":"object","required":["requires_totp","challenge_token"],"properties":{"challenge_token":{"type":"string"},"requires_totp":{"type":"boolean"}}},"TotpRequest":{"type":"object","required":["challenge_token","code"],"properties":{"challenge_token":{"type":"string"},"code":{"type":"string"}}},"TotpSetupResponse":{"type":"object","required":["secret","otpauth_uri"],"properties":{"otpauth_uri":{"type":"string"},"secret":{"type":"string"}}},"TransactionWire":{"type":"object","properties":{"accepts_remote_signing":{"type":["boolean","null"]},"bonded_amount_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"certifications":{"type":["array","null"],"items":{"type":"string"}},"coverage_radius_km_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"experience_years_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"fee_structure":{"type":["string","null"]},"handles_government_filing":{"type":["boolean","null"]},"next_available_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DateTimeRange"}]},"notes":{"type":["string","null"]},"target_categories":{"type":["array","null"],"items":{"type":"string"}}}},"TreeEntryResponse":{"type":"object","required":["mode","obj_type","hash","path"],"properties":{"hash":{"type":"string"},"mode":{"type":"string"},"obj_type":{"type":"string"},"path":{"type":"string"}}},"UpdateAdjustmentsRequest":{"type":"object","required":["total_adjustments"],"properties":{"total_adjustments":{"type":"string"}}},"UpdateContentBody":{"type":"object","properties":{"allow_reshare":{"type":["boolean","null"]},"description":{"type":["string","null"]},"price_currency":{"type":["string","null"],"description":"Price currency."},"price_period":{"type":["string","null"],"description":"Price period."},"price_range":{"type":["array","null"],"items":{"type":"number","format":"double"},"description":"Price as [min, max] range."},"price_unit":{"type":["string","null"],"description":"Price unit."},"psgc_codes":{"type":["array","null"],"items":{"type":"string"},"description":"Replace PSGC location codes."},"subtypes":{"type":["array","null"],"items":{"type":"string"},"description":"Replace subtypes."},"title":{"type":["string","null"]},"transaction_types":{"type":["array","null"],"items":{"type":"string"},"description":"Replace transaction types."},"visibility":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VisibilityEnum","description":"Visibility level."}]}}},"UpdateDataRequest":{"type":"object","required":["data"],"properties":{"data":{}}},"UpdateEventRequest":{"type":"object","properties":{"data":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Value"}]},"event_type":{"type":["string","null"]},"title":{"type":["string","null"]},"visibility":{"type":["string","null"]}}},"UpdateEventStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateHostnameRequest":{"type":"object","properties":{"is_primary":{"type":["boolean","null"]},"redirect_mode":{"type":["string","null"]}}},"UpdateInvoiceStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateManagedDomainRequest":{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"New status. One of `active`, `disabled`."}}},"UpdateMediaRequest":{"type":"object","required":["sort_order"],"properties":{"sort_order":{"type":"integer","format":"int32"}}},"UpdateMembershipRoleRequest":{"type":"object","required":["role"],"properties":{"role":{"$ref":"#/components/schemas/RoleEnum"}}},"UpdateMembershipStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateOrganizationRequest":{"type":"object","properties":{"data":{},"member_directory":{"type":["string","null"]},"name":{"type":["string","null"]},"slug":{"type":["string","null"]}}},"UpdateOrganizationStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdatePackStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateProfileRequest":{"type":"object","properties":{"data":{},"name":{"type":["string","null"]}}},"UpdateRegistrationStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateRelationshipStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateSiteStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateStatusBody":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpdateStatusRequest":{"type":"object","required":["status"],"properties":{"reason":{"type":["string","null"]},"status":{"type":"string"}}},"UpsertBillingProfileRequest":{"type":"object","required":["billing_cycle","billing_anchor_date"],"properties":{"billing_anchor_date":{"type":"string","format":"date"},"billing_cycle":{"$ref":"#/components/schemas/BillingCycleEnum"}}},"UserStandard":{"type":"object","description":"Standard user projection for member listings and posted_as (CR-004, CR-010).\nFor anonymous access, only resolved for users with `data.public_profile = true`.\nFor authenticated org member access, resolved for all users.","required":["id"],"properties":{"areas_served":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":["string","null"]},"phone":{"type":["string","null"]},"photo":{"type":["string","null"]},"prc_number":{"type":["string","null"]},"specialization":{"type":["string","null"]}}},"UserSummary":{"type":"object","description":"Minimal user info for embedding in content responses (CR-012).\nAlways available — no opt-in gate.","required":["id"],"properties":{"id":{"$ref":"#/components/schemas/SnowflakeId"},"name":{"type":["string","null"]},"photo":{"type":["string","null"]},"prc_number":{"type":["string","null"]}}},"VacantLotWire":{"type":"object","properties":{"corner_lot":{"type":["boolean","null"]},"frontage_m_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"intended_use_categories":{"type":["array","null"],"items":{"type":"string"}},"is_foreclosed":{"type":["boolean","null"]},"lot_area":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AreaWire"}]},"notes":{"type":["string","null"]},"road_access":{"type":["array","null"],"items":{"type":"string"}},"slope_levels":{"type":["array","null"],"items":{"type":"string"}},"title_statuses":{"type":["array","null"],"items":{"type":"string"}},"utilities_available":{"type":["array","null"],"items":{"type":"string"}}}},"Value":{},"VehiclesAndMachineryWire":{"type":"object","properties":{"condition":{"type":["array","null"],"items":{"type":"string"}},"engine_capacity_cc_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"fuel_type":{"type":["array","null"],"items":{"type":"string"}},"make_id":{"type":["integer","null"],"format":"int64"},"mileage_km_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]},"model":{"type":["string","null"]},"notes":{"type":["string","null"]},"or_cr_complete":{"type":["boolean","null"]},"payload_capacity_tons_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NumRange"}]},"rental_period":{"type":["array","null"],"items":{"type":"string"}},"transmission":{"type":["array","null"],"items":{"type":"string"}},"year_range":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IntRange"}]}}},"VerifyEmailRequest":{"type":"object","required":["token"],"properties":{"token":{"type":"string"}}},"View":{"type":"string","description":"Response detail level.","enum":["summary","standard","full"]},"ViewingRequestData":{"type":"object","properties":{"attendees":{"type":["integer","null"],"format":"int32"},"contact_name":{"type":["string","null"]},"contact_phone":{"type":["string","null"]},"notes":{"type":["string","null"]},"priority":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Priority"}]},"proposed_date":{"type":["string","null"],"format":"date-time"},"viewing_type":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ViewingType"}]}},"additionalProperties":{}},"ViewingType":{"type":"string","enum":["in_person","virtual"]},"VisibilityEnum":{"type":"string","enum":["private","organization","network","public"]},"WriteFilesRequest":{"type":"object","required":["files","message"],"properties":{"base_ref":{"type":["string","null"]},"files":{"type":"array","items":{"$ref":"#/components/schemas/FileWrite"}},"message":{"type":"string"}}}},"securitySchemes":{"api_key":{"type":"apiKey","in":"header","name":"X-API-Key"},"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"bearer":[]},{"api_key":[]}]}