{"openapi":"3.1.0","info":{"title":"Vivid API","description":"API used by the vivid experience team.","version":"UNKNOWN"},"paths":{"/v1/accounts":{"get":{"tags":["Accounts"],"summary":"List accounts","description":"Return accounts filtered by name, state, and/or membership of the requesting user.","operationId":"list_accounts","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"owner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Owner Id"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"State"}},{"name":"has_user_role","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has User Role"}},{"name":"idp_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idp Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_AccountWithRedactedFields_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Accounts"],"summary":"Create an account","operationId":"create_account","security":[{"JWTBearerAuthenticator":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}":{"get":{"tags":["Accounts"],"summary":"Return account by id","operationId":"get_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"tags":["Accounts"],"summary":"Update an account","operationId":"update_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Accounts"],"summary":"Initiates deletion of an account","operationId":"delete_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/name/{name}":{"get":{"tags":["Accounts"],"summary":"Get account by name","description":"Retrieve an account by name.","operationId":"get_account_by_name","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":39,"title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/customer":{"get":{"tags":["Accounts"],"summary":"Return an account's customer billing details","operationId":"get_account_customer","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerBillingInfo"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"204":{"description":"No customer record found"}}},"patch":{"tags":["Accounts"],"summary":"Update an account's customer billing details","operationId":"update_account_customer","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountCustomerPayload"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/subscription":{"get":{"tags":["Accounts"],"summary":"Return an account's subscription billing details","operationId":"get_account_subscription","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionBillingInfo"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"204":{"description":"No subscription record found"}}},"patch":{"tags":["Accounts"],"summary":"Update an account's subscription","operationId":"update_account_subscription","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountSubscriptionPayload"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/setup_intent":{"post":{"tags":["Accounts"],"summary":"Create Setup Intent","operationId":"create_setup_intent","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupIntentPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/suspend":{"post":{"tags":["Accounts"],"summary":"Suspend an account","operationId":"suspend_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendAccountPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/resume":{"post":{"tags":["Accounts"],"summary":"Resume a suspended account","operationId":"resume_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/link":{"post":{"tags":["Accounts"],"summary":"Link an account to a source provider","description":"Note: For local development, the GH app is set to only be installed on the posit-hosted org. The installation\nID is 55609918. You can use this ID to test the GH integration locally.","operationId":"link_source_provider","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitHubLinkSourceProviderPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/name/{name}/available":{"get":{"tags":["Accounts"],"summary":"Check account name availability","description":"Check if the account name is available or not.","operationId":"check_account_name_availability","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":39,"title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountNameAvailability"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/unlink":{"post":{"tags":["Accounts"],"summary":"Unlink an account from a source provider","operationId":"unlink_source_provider","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitHubUnlinkSourceProviderPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountWithRedactedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/lucid":{"post":{"tags":["Accounts"],"summary":"Link a shinyapps.io account","description":"Link a shinyapps.io account and grant the equivalent paid plan.","operationId":"link_lucid_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkLucidAccountPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"tags":["Accounts"],"summary":"List linked shinyapps.io accounts","description":"List the shinyapps.io accounts linked to this Connect Cloud account.","operationId":"list_lucid_accounts","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LucidAccount"},"title":"Response List Lucid Accounts"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/lucid/{lucid_account_id}/unlink":{"post":{"tags":["Accounts"],"summary":"Unlink a shinyapps.io account","description":"Remove the link between a shinyapps.io account and this Connect Cloud account.","operationId":"unlink_lucid_account","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"lucid_account_id","in":"path","required":true,"schema":{"type":"integer","title":"Lucid Account Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/invitations":{"post":{"tags":["Account Invitations"],"summary":"Create account invitations","operationId":"create_account_invitations","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountInvitationsPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountInvitationsResult"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"tags":["Account Invitations"],"summary":"List account invitations","operationId":"list_account_invitations","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"accepted_time__isnull","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accepted Time  Isnull"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_AccountInvitation_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/account_invitations/{account_invitation_id}":{"get":{"tags":["Account Invitations"],"summary":"Get account invitation","operationId":"get_account_invitation","parameters":[{"name":"account_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Invitation Id"}},{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInvitationForRecipient"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Account Invitations"],"summary":"Delete account invitation","operationId":"delete_account_invitation","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Invitation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/account_invitations/{account_invitation_id}/resend":{"post":{"tags":["Account Invitations"],"summary":"Resend account invitation","operationId":"resend_account_invitation","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Invitation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendInvitationPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInvitation"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/account_invitations/{account_invitation_id}/accept":{"post":{"tags":["Account Invitations"],"summary":"Accept account invitation","operationId":"accept_account_invitation","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Invitation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInvitationPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInvitation"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/transfers":{"post":{"tags":["Account Transfers"],"summary":"Create account transfer","operationId":"create_account_transfer","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountTransferPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTransfer"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"tags":["Account Transfers"],"summary":"List account transfers","operationId":"list_account_transfers","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"accepted_time__isnull","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accepted Time  Isnull"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_AccountTransfer_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/account_transfers/{transfer_id}":{"get":{"tags":["Account Transfers"],"summary":"Get account transfer","operationId":"get_account_transfer","parameters":[{"name":"transfer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transfer Id"}},{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTransferForRecipient"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Account Transfers"],"summary":"Delete account transfer","operationId":"delete_account_transfer","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"transfer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transfer Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/account_transfers/{transfer_id}/complete":{"post":{"tags":["Account Transfers"],"summary":"Complete account transfer","operationId":"complete_account_transfer","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"transfer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transfer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptTransferPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTransfer"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/oauth/token":{"post":{"tags":["Authentication"],"summary":"Exchange OAuth code for token","description":"Exchange a Lucid OAuth code for a Vivid JWT and additional data.","operationId":"request_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LucidOAuthCodePayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/authorization":{"post":{"tags":["Authorization"],"summary":"Check authorization","description":"Check the authorization of a resource and permission against the current user.","operationId":"check_authorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationCheckResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/billing/cancel":{"post":{"tags":["Billing"],"summary":"Create subscription cancellation URL","description":"Create a Stripe billing portal URL to cancel subscription.","operationId":"create_subscription_cancel_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCancelUrlPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCancel"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/billing/manage":{"post":{"tags":["Billing"],"summary":"Generate a Stripe portal URL","operationId":"create_portal_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePortalUrlPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagementPortalResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/contents":{"get":{"tags":["Contents"],"summary":"Return content for an account","operationId":"list_contents","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"State"}},{"name":"access","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceAccess"},{"type":"null"}],"title":"Access"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Content Type"}},{"name":"author_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Author Id"}},{"name":"author_id__neq","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Author Id  Neq"}},{"name":"has_user_role","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has User Role"}},{"name":"domain_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Domain Id"}},{"name":"oauth_integration_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Oauth Integration Id"}},{"name":"current_revision__order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Revision  Order By"}},{"name":"current_revision__limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Current Revision  Limit"}},{"name":"current_revision__offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Current Revision  Offset"}},{"name":"current_revision__include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Current Revision  Include Total"}},{"name":"current_revision__content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Current Revision  Content Type"}},{"name":"current_revision__content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Current Revision  Content Id"}},{"name":"current_revision__state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"Current Revision  State"}},{"name":"current_revision__search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Revision  Search"}},{"name":"next_revision__order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Revision  Order By"}},{"name":"next_revision__limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Next Revision  Limit"}},{"name":"next_revision__offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Next Revision  Offset"}},{"name":"next_revision__include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Next Revision  Include Total"}},{"name":"next_revision__content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Next Revision  Content Type"}},{"name":"next_revision__content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next Revision  Content Id"}},{"name":"next_revision__state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"Next Revision  State"}},{"name":"next_revision__search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Revision  Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_ContentWithPermissionGatedFields_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Contents"],"summary":"Create content","operationId":"create_content","security":[{"JWTBearerAuthenticator":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentWithPermissionGatedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}":{"patch":{"tags":["Contents"],"summary":"Update content","operationId":"update_content","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"new_bundle","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"New Bundle"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UpdateContentPayload"},{"type":"null"}],"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentWithPermissionGatedFields"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"tags":["Contents"],"summary":"Return content","description":"Return a `Content`.\n\n`view=lean` returns a minimal projection for internal service-to-service\ncallers (e.g. `vivid-gatekeeper`). It is restricted to principals that hold\n`content:read:internal` on the content — the same gate that controls the\ninternal fields on the standard response — and skips the thumbnail blob,\nsecrets, schedules, revisions, author/domain joins, and the account row.","operationId":"get_content","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"view","in":"query","required":false,"schema":{"anyOf":[{"const":"lean","type":"string"},{"type":"null"}],"title":"View"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Contents"],"summary":"Delete content","operationId":"delete_content","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/vanity_name/available":{"get":{"tags":["Contents"],"summary":"Check vanity name availability","description":"Check for duplicate content using the same vanity domain.","operationId":"check_vanity_name_available","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"vanity_name","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Vanity Name"}},{"name":"domain_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanityNameAvailable"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/revisions":{"get":{"tags":["Contents"],"summary":"Return revisions for content","operationId":"get_content_revisions","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Content Type"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"State"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_Revision_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/publish":{"post":{"tags":["Contents"],"summary":"Publish content","operationId":"publish_content","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}},{"name":"x-vivid-internal-config","in":"header","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"X-Vivid-Internal-Config"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Data passed in failed validation","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/republish":{"post":{"tags":["Contents"],"summary":"Re-publish content","operationId":"republish_content","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"user-agent","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User-Agent"}},{"name":"x-vivid-internal-config","in":"header","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"X-Vivid-Internal-Config"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Data passed in failed validation","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/private_link_token":{"post":{"tags":["Contents"],"summary":"Regenerate content private link token","operationId":"regenerate_content_private_link_token","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentPrivateLinkToken"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/github_token/refresh":{"post":{"tags":["Contents"],"summary":"Regenerate GitHub token associated with content","operationId":"refresh_github_token","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentGitHubToken"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/invitations":{"post":{"tags":["Content Invitations"],"summary":"Create content invitations","operationId":"create_content_invitations","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentInvitationsPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentInvitationsResult"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"tags":["Content Invitations"],"summary":"List content invitations","operationId":"list_content_invitations","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"accepted_time__isnull","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accepted Time  Isnull"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_ContentInvitation_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/content_invitations/{content_invitation_id}":{"get":{"tags":["Content Invitations"],"summary":"Get content invitation","operationId":"get_content_invitation","parameters":[{"name":"content_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Invitation Id"}},{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentInvitationForRecipient"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Content Invitations"],"summary":"Delete content invitation","operationId":"delete_content_invitation","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Invitation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/content_invitations/{content_invitation_id}/resend":{"post":{"tags":["Content Invitations"],"summary":"Resend content invitation","operationId":"resend_content_invitation","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Invitation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendInvitationPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentInvitation"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/content_invitations/{content_invitation_id}/accept":{"post":{"tags":["Content Invitations"],"summary":"Accept content invitation","operationId":"accept_content_invitation","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Invitation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInvitationPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentInvitation"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/schedules":{"get":{"tags":["Content Schedules"],"summary":"Get the schedule for a content","operationId":"get_content_schedules","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_ContentSchedule_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Content Schedules"],"summary":"Create a schedule for a content","operationId":"create_content_schedule","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentSchedulePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentSchedule"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/schedules/{schedule_id}":{"patch":{"tags":["Content Schedules"],"summary":"Update a content schedule","operationId":"update_content_schedule","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContentSchedulePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentSchedule"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Content Schedules"],"summary":"Delete a content schedule","operationId":"delete_content_schedule","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"tags":["Accounts"],"summary":"List domains","description":"Return domains matching the filter.","operationId":"list_domains","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id"}},{"name":"content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"wildcard","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Wildcard"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DomainStatus"},{"type":"null"}],"title":"Status"}},{"name":"status__neq","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DomainStatus"},{"type":"null"}],"title":"Status  Neq"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_Domain_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Accounts"],"summary":"Create a domain","operationId":"create_domain","security":[{"JWTBearerAuthenticator":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDomainPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{domain_id}":{"get":{"tags":["Accounts"],"summary":"Return domain by id","operationId":"get_domain","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Accounts"],"summary":"Delete a domain","operationId":"delete_domain","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Domain Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{domain_id}/verify":{"post":{"tags":["Accounts"],"summary":"Verify a domain","operationId":"verify_domain","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Domain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVerification"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/license/entitlements/{entitlement_type}":{"get":{"tags":["Entitlements"],"summary":"Return entitlement info","operationId":"get_entitlement","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"entitlement_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/EntitlementType"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DefaultMinEntitlement"},{"$ref":"#/components/schemas/DefaultMaxEntitlement"},{"$ref":"#/components/schemas/DefaultFlagEntitlement"},{"$ref":"#/components/schemas/OverrideFlagEntitlement"},{"$ref":"#/components/schemas/OverrideMinEntitlement"},{"$ref":"#/components/schemas/OverrideMaxEntitlement"},{"type":"null"}],"title":"Response Get Entitlement"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations":{"get":{"tags":["OAuth Integrations"],"summary":"List OAuth integrations for an account","operationId":"list_integrations","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id"}},{"name":"content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_OAuthIntegration_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["OAuth Integrations"],"summary":"Create an OAuth integration","operationId":"create_integration","security":[{"JWTBearerAuthenticator":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOAuthIntegrationPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthIntegration"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/callback":{"get":{"tags":["OAuth Integrations"],"summary":"OAuth provider callback","operationId":"oauth_callback","parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},{"name":"error_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Description"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/{integration_id}":{"get":{"tags":["OAuth Integrations"],"summary":"Get an OAuth integration by ID","operationId":"get_integration","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthIntegration"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"tags":["OAuth Integrations"],"summary":"Update an OAuth integration","operationId":"update_integration","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOAuthIntegrationPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthIntegration"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["OAuth Integrations"],"summary":"Delete an OAuth integration","operationId":"delete_integration","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/{integration_id}/logout":{"post":{"tags":["OAuth Integrations"],"summary":"Revoke OAuth session for an integration","operationId":"logout_integration","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/{integration_id}/login":{"post":{"tags":["OAuth Integrations"],"summary":"Initiate OAuth login for an integration","operationId":"login_integration","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id"}},{"name":"redirect_url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Url"}}],"responses":{"302":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"tags":["OAuth Integrations"],"summary":"Get OAuth login URL for an integration","operationId":"get_login_url","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id"}},{"name":"redirect_url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginUrlResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/credentials":{"post":{"tags":["OAuth Integrations"],"summary":"Exchange token for OAuth credentials","operationId":"get_credentials","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialsResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/repositories":{"get":{"tags":["Repositories"],"summary":"Search repositories","description":"Return all repositories within the user's account, matching the given search (prefix match). Also supports exact match for any public repository.","operationId":"get_repositories","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SourceProvider"},{"type":"null"}],"default":"github","title":"Provider"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-updated","title":"Order By"}},{"name":"exact","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Exact"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"include_private","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Private"}},{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Repository"},"title":"Response Get Repositories"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/repositories/{repo_owner}/{repo_name}/refs":{"get":{"tags":["Repositories"],"summary":"Search repository refs","description":"Return branches and tags or commits for the given repo and search value (prefix match). If `search_commits` is True, the search should be a SHA (7 or 40 characters long exact match)","operationId":"get_repository_refs","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"repo_owner","in":"path","required":true,"schema":{"type":"string","title":"Repo Owner"}},{"name":"repo_name","in":"path","required":true,"schema":{"type":"string","title":"Repo Name"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SourceProvider"},{"type":"null"}],"default":"github","title":"Provider"}},{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"search_commits","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Search Commits"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","default":"","title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Ref"},"title":"Response Get Repository Refs"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/repositories/{repo_owner}/{repo_name}/files":{"get":{"tags":["Repositories"],"summary":"Get repository file","description":"Return the matching file (exact match on path + filename) for the given repo and ref, or None if not found.","operationId":"get_repository_files","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"repo_owner","in":"path","required":true,"schema":{"type":"string","title":"Repo Owner"}},{"name":"repo_name","in":"path","required":true,"schema":{"type":"string","title":"Repo Name"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SourceProvider"},{"type":"null"}],"default":"github","title":"Provider"}},{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"search","in":"query","required":true,"schema":{"type":"string","title":"Search"}},{"name":"ref_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/GitRefType"},{"type":"null"}],"title":"Ref Type"}},{"name":"ref_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Filepath"},{"type":"null"}],"title":"Response Get Repository Files"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/repositories/{repo_owner}/{repo_name}/filepaths":{"get":{"tags":["Repositories"],"summary":"Search repository filepaths","description":"Search for filepaths (matching any part) for the given repo and ref.","operationId":"get_repository_filepaths","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"repo_owner","in":"path","required":true,"schema":{"type":"string","title":"Repo Owner"}},{"name":"repo_name","in":"path","required":true,"schema":{"type":"string","title":"Repo Name"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SourceProvider"},{"type":"null"}],"default":"github","title":"Provider"}},{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"search","in":"query","required":true,"schema":{"type":"string","title":"Search"}},{"name":"ref_name","in":"query","required":true,"schema":{"type":"string","title":"Ref Name"}},{"name":"file_extensions","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Extensions"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Filepath"},"title":"Response Get Repository Filepaths"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/revisions/{revision_id}":{"get":{"tags":["Revisions"],"summary":"Return a revision","operationId":"get_revision","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"revision_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Revision Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Revision"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/revisions/{revision_id}/refresh_upload_url":{"post":{"tags":["Revisions"],"summary":"Refresh bundle upload URL for a pending revision","operationId":"refresh_bundle_upload_url","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"revision_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Revision Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshBundleUploadUrlResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/shinyapps/accounts":{"get":{"tags":["ShinyApps"],"summary":"List my shinyapps.io accounts","description":"List the shinyapps.io accounts owned by the current user's linked lucid user.","operationId":"list_my_shinyapps_accounts","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"The Connect Cloud account the migration UI is currently working in. Each returned account's link_status is computed relative to it.","title":"Account Id"},"description":"The Connect Cloud account the migration UI is currently working in. Each returned account's link_status is computed relative to it."},{"name":"oauth_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"An optional lucid-auth OAuth authorization code. When provided, vivid-api exchanges it for a lucid access token and returns the lucid user and token alongside the accounts.","title":"Oauth Code"},"description":"An optional lucid-auth OAuth authorization code. When provided, vivid-api exchanges it for a lucid access token and returns the lucid user and token alongside the accounts."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShinyAppsAccountsResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/shinyapps/applications":{"get":{"tags":["ShinyApps"],"summary":"List shinyapps.io applications","description":"List shinyapps.io applications for a linked shinyapps account, filterable by migration status.","operationId":"list_shinyapps_applications","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Total"}},{"name":"lucid_account_id","in":"query","required":true,"schema":{"type":"integer","title":"Lucid Account Id"}},{"name":"migration_state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MigrationState"},{"type":"null"}],"title":"Migration State"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_ShinyAppsApplication_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/shinyapps/applications/{lucid_app_id}":{"get":{"tags":["ShinyApps"],"summary":"Get a shinyapps.io application","description":"Get a single shinyapps.io application in the same shape the list endpoint returns. An application that has been migrated, or has a migration queued, is returned whatever its shinyapps.io status, matching the list endpoint's migration_state-filtered views, and keeps its shinyapps.io fields until the application is removed there. Returns 404 for any application the list endpoint would not return: one on another shinyapps account, of another type, or one with no migrated or queued migration that is not sleeping or running on shinyapps.io.","operationId":"get_shinyapps_application","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"lucid_app_id","in":"path","required":true,"schema":{"type":"string","title":"Lucid App Id"}},{"name":"lucid_account_id","in":"query","required":true,"schema":{"type":"integer","description":"The linked shinyapps.io (lucid-server) account id.","title":"Lucid Account Id"},"description":"The linked shinyapps.io (lucid-server) account id."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShinyAppsApplication"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/shinyapps/applications/{lucid_app_id}/migrations":{"get":{"tags":["ShinyApps"],"summary":"Get application migration history","description":"Get the migration request history and migration metadata for a shinyapps.io application.","operationId":"get_application_migration_history","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"lucid_app_id","in":"path","required":true,"schema":{"type":"string","title":"Lucid App Id"}},{"name":"lucid_account_id","in":"query","required":true,"schema":{"type":"integer","description":"The linked shinyapps.io (lucid-server) account id.","title":"Lucid Account Id"},"description":"The linked shinyapps.io (lucid-server) account id."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationMigrationHistory"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/shinyapps/migrate":{"post":{"tags":["ShinyApps"],"summary":"Enqueue shinyapps.io applications for migration or finalization","operationId":"enqueue_migration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigratePayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrateResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/usage/summary":{"post":{"tags":["Usage"],"summary":"Get usage summary","description":"Return total wall-clock time and credits for an account, an author within an account, or a single content item, optionally grouped by content. Content rows are enriched with the content item's current content type and CPU/memory limits. Account/author content breakdowns may be filtered by current content type. A content-grouped query may be sorted by content title, last-published time, total credits (the default), or total time, and paged with `limit`/`offset`. Only content with usage in the window is included.","operationId":"get_usage_summary","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSummaryQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSummaryResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/metrics/summary":{"post":{"tags":["Usage"],"summary":"Get metrics summary","description":"Return CPU and memory utilization ratios for an account, an author within an account, or a single content item, optionally grouped by content. Content rows are enriched with the content item's current content type, title, and last-published time. Account/author content breakdowns may be filtered by current content type. A content-grouped query may be sorted by content title, last-published time, or either utilization ratio (CPU utilization descending is the default), and paged with `limit`/`offset`. Every active content item in the scope is included -- content with no usage in the window comes back with null utilization ratios.","operationId":"get_metrics_summary","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsSummaryQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsSummaryResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/usage/series":{"post":{"tags":["Usage"],"summary":"Get usage series","description":"Return usage as a time series for an account, an author within an account, or a single content item, optionally grouped by content. A content-grouped query may be sorted by content title, total credits, or total time, and paged with `limit`/`offset`.","operationId":"get_usage_series","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSeriesQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSeriesResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/usage/period_credits_by_account":{"post":{"tags":["Usage"],"summary":"Get per-account credit usage","description":"Return per-account credit usage over each account's billing period.","operationId":"get_period_credits_by_account","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountPeriodUsageQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountPeriodUsageResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/usage/raw/{content_id}":{"get":{"tags":["Usage"],"summary":"Fetch raw usage frames","description":"Stream every raw usage frame for a single content item within the window as CSV, without the aggregation/proration the summary and series endpoints apply. Gated by the content-usage read permission and by license type.","operationId":"get_raw_usage","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Start of the query window (inclusive).","title":"From"},"description":"Start of the query window (inclusive)."},{"name":"until","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"End of the query window (inclusive).","title":"Until"},"description":"End of the query window (inclusive)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/usage/content/{content_id}/contiguous":{"post":{"tags":["Usage"],"summary":"Get contiguous content usage","description":"Return raw usage frames for one content item as maximal runs of exactly adjacent frames with equal phase and pod ID. Frames overlapping the requested window retain their original database timestamps even when a boundary falls outside the request.","operationId":"get_contiguous_usage","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContiguousUsageQuery"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContiguousUsageResponse"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/users/me":{"get":{"tags":["Users"],"summary":"Return the current user","operationId":"get_user_me","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"security":[{"JWTBearerAuthenticator":[]}]}},"/v1/users/{user_id}":{"get":{"tags":["Users"],"summary":"Return a user","operationId":"get_user","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"tags":["Users"],"summary":"Update a user","operationId":"update_user","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Users"],"summary":"Initiates deletion of a user","operationId":"delete_user","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/users":{"get":{"tags":["Users"],"summary":"Return users by filter","operationId":"list_users","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"lucid_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lucid Id"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"State"}},{"name":"display_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_User_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Users"],"summary":"Create a user (TESTING PURPOSES ONLY)","operationId":"create_user","security":[{"JWTBearerAuthenticator":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/users":{"get":{"tags":["Account Roles"],"summary":"Return account members","operationId":"list_account_members","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/AccountRole"},{"type":"null"}],"title":"Role"}},{"name":"user_display_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Display Name"}},{"name":"user__order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User  Order By"}},{"name":"user__limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"User  Limit"}},{"name":"user__offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"User  Offset"}},{"name":"user__include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"User  Include Total"}},{"name":"user__lucid_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User  Lucid Id"}},{"name":"user__state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"User  State"}},{"name":"user__display_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User  Display Name"}},{"name":"user__email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User  Email"}},{"name":"user__search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User  Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_UserAccountRole_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Account Roles"],"summary":"Add account member","operationId":"add_account_member","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountMemberPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccountRole"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/accounts/{account_id}/users/{user_id}":{"patch":{"tags":["Account Roles"],"summary":"Update account member","operationId":"update_account_member","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountMemberPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UserAccountRole"},{"type":"null"}],"title":"Response Update Account Member"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Account Roles"],"summary":"Remove account member","operationId":"delete_account_member","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/users":{"get":{"tags":["Content Roles"],"summary":"Return content members","operationId":"list_content_members","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"enum":["collaborator","viewer"],"type":"string"},{"type":"null"}],"title":"Role"}},{"name":"content__order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content  Order By"}},{"name":"content__limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Content  Limit"}},{"name":"content__offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Content  Offset"}},{"name":"content__include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Content  Include Total"}},{"name":"content__id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content  Id"}},{"name":"content__account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content  Account Id"}},{"name":"content__state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"Content  State"}},{"name":"content__access","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceAccess"},{"type":"null"}],"title":"Content  Access"}},{"name":"content__search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content  Search"}},{"name":"content__content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Content  Content Type"}},{"name":"content__author_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content  Author Id"}},{"name":"content__author_id__neq","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content  Author Id  Neq"}},{"name":"content__has_user_role","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Content  Has User Role"}},{"name":"content__domain_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content  Domain Id"}},{"name":"content__oauth_integration_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content  Oauth Integration Id"}},{"name":"current_revision__order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Revision  Order By"}},{"name":"current_revision__limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Current Revision  Limit"}},{"name":"current_revision__offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Current Revision  Offset"}},{"name":"current_revision__include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Current Revision  Include Total"}},{"name":"current_revision__content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Current Revision  Content Type"}},{"name":"current_revision__content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Current Revision  Content Id"}},{"name":"current_revision__state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"Current Revision  State"}},{"name":"current_revision__search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Revision  Search"}},{"name":"next_revision__order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Revision  Order By"}},{"name":"next_revision__limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":25,"title":"Next Revision  Limit"}},{"name":"next_revision__offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"default":0,"title":"Next Revision  Offset"}},{"name":"next_revision__include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Next Revision  Include Total"}},{"name":"next_revision__content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Next Revision  Content Type"}},{"name":"next_revision__content_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next Revision  Content Id"}},{"name":"next_revision__state","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ResourceState"},{"type":"null"}],"title":"Next Revision  State"}},{"name":"next_revision__search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Revision  Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResults_UserContentRole_"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"tags":["Content Roles"],"summary":"Add content member","operationId":"add_content_member","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContentMemberPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContentRole"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/contents/{content_id}/users/{user_id}":{"patch":{"tags":["Content Roles"],"summary":"Update content member","operationId":"update_content_member","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContentMemberPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContentRole"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"tags":["Content Roles"],"summary":"Remove content member","operationId":"delete_content_member","security":[{"JWTBearerAuthenticator":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/internal/webhook/publish":{"post":{"tags":["Webhooks"],"summary":"Handle publish events","operationId":"handle_publish_event","responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/internal/webhook/unpublish":{"post":{"tags":["Webhooks"],"summary":"Handle unpublish events","operationId":"handle_unpublish_event","responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/external/webhook/github":{"post":{"tags":["Webhooks"],"summary":"Handle GitHub events","operationId":"handle_github_event","parameters":[{"name":"x-github-event","in":"header","required":true,"schema":{"type":"string","title":"X-Github-Event"}},{"name":"x-github-delivery","in":"header","required":true,"schema":{"type":"string","title":"X-Github-Delivery"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/internal/status":{"get":{"tags":["Internal"],"summary":"Health check to see if the service is up and receiving requests.","operationId":"get_status","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Status"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/internal/version":{"get":{"tags":["Internal"],"summary":"Get the version this service is currently running.","operationId":"get_version","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Version"}}}},"422":{"description":"Data passed in failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}},"components":{"schemas":{"APIError":{"properties":{"error":{"type":"string","title":"Error","examples":["These weren't the droids you were looking for."]},"error_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Type","examples":["droids_not_found"]},"error_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Error Args","examples":[{"droid_names":["R2-D2","C3-PO"]}]}},"type":"object","required":["error"],"title":"APIError"},"AWS":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"{idp_authorization_uri}"},"token_uri":{"type":"string","title":"Token Uri","default":"{idp_token_uri}"},"template":{"type":"string","const":"aws","title":"Template","default":"aws"},"idp_authorization_uri":{"type":"string","maxLength":1024,"title":"Idp Authorization Uri"},"idp_token_uri":{"type":"string","maxLength":1024,"title":"Idp Token Uri"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"offline_access openid"},"role_arn":{"type":"string","maxLength":1024,"title":"Role Arn"},"sts_region":{"type":"string","maxLength":1024,"title":"Sts Region","default":"us-east-1"},"session_duration":{"type":"string","maxLength":1024,"title":"Session Duration","default":"3600"}},"type":"object","required":["client_id","idp_authorization_uri","idp_token_uri","role_arn"],"title":"AWS"},"AcceptInvitationPayload":{"properties":{"code":{"type":"string","title":"Code","description":"The code that was sent to the recipient to accept the invitation."}},"type":"object","required":["code"],"title":"AcceptInvitationPayload"},"AcceptTransferPayload":{"properties":{"code":{"type":"string","title":"Code","description":"The code that was sent to the recipient to complete the ownership transfer."}},"type":"object","required":["code"],"title":"AcceptTransferPayload"},"Account":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"name":{"type":"string","maxLength":39,"minLength":1,"title":"Name","description":"The name of the account."},"display_name":{"type":"string","maxLength":250,"minLength":1,"title":"Display Name","description":"The display name of the account."},"account_type":{"$ref":"#/components/schemas/AccountType","description":"The type of account."},"access":{"type":"string","enum":["private","public"],"title":"Access","description":"Whether the account is publicly viewable ('public') or requires membership ('private'). Individual accounts are always 'public'."},"owner_id":{"type":"string","format":"uuid","title":"Owner Id","description":"The ID of the user who owns the account."},"state":{"$ref":"#/components/schemas/ResourceState","description":"The state of the account."},"license":{"$ref":"#/components/schemas/License","description":"The account license."},"linked_github":{"type":"boolean","title":"Linked Github","description":"Whether the account is linked to a GitHub app."},"github_apps":{"items":{"$ref":"#/components/schemas/GitHubApp"},"type":"array","title":"Github Apps","description":"GitHub apps linked to the account."},"idp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idp Id","description":"The IdP ID of the account if the account is SSO enabled."},"sso_enabled":{"type":"boolean","title":"Sso Enabled","description":"Whether the account is SSO enabled or not."},"suspended_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended Reason","description":"The reason the account is suspended."},"suspended_reason_code":{"anyOf":[{"$ref":"#/components/schemas/SuspendedReasonCode"},{"type":"null"}],"description":"The code for the reason the account is suspended."},"suspended_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended By","description":"The email of the user who suspended the account."},"suspended_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended On","description":"The time the account was suspended."},"role":{"anyOf":[{"$ref":"#/components/schemas/AccountRole"},{"type":"null"}],"description":"The role the requesting user has for the account."},"account_controls":{"additionalProperties":{"type":"boolean"},"propertyNames":{"$ref":"#/components/schemas/AccountControlType"},"type":"object","title":"Account Controls","description":"Per-account control toggles, merged with per-control defaults. Populated server-side; not read from the ORM directly."}},"type":"object","required":["id","created_time","updated_time","name","display_name","account_type","access","owner_id","state","license","linked_github","github_apps","sso_enabled"],"title":"Account"},"AccountControlType":{"type":"string","enum":["content.access:update:public","content.invitation:create:external_guest","invitation:accept:mismatched_email","ai_features"],"title":"AccountControlType"},"AccountGroup":{"properties":{"type":{"type":"string","const":"account","title":"Type","default":"account"},"id":{"type":"string","title":"Id","description":"The queried account's id."}},"type":"object","required":["id"],"title":"AccountGroup","description":"A result row describing a whole account."},"AccountInvitation":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The account ID for which this invitation will grant a role."},"role":{"type":"string","enum":["admin","publisher","viewer","guest"],"title":"Role","description":"The role to assign to the invited user."},"email_address":{"type":"string","format":"email","title":"Email Address","description":"The email address that will receive the invitation."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"The invitation's message to display to the invited users."},"expires_time":{"type":"string","format":"date-time","title":"Expires Time","description":"The time at which the invitation will expire."},"accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted Time","description":"The time at which the invitation was accepted."},"recipient":{"anyOf":[{"$ref":"#/components/schemas/InvitationUser"},{"type":"null"}],"description":"The user who received the invitation."},"sender":{"$ref":"#/components/schemas/InvitationUser","description":"The user who sent the invitation."},"is_expired":{"type":"boolean","title":"Is Expired","description":"Whether this invitation has expired."}},"type":"object","required":["id","created_time","updated_time","account_id","role","email_address","message","expires_time","recipient","sender","is_expired"],"title":"AccountInvitation"},"AccountInvitationForRecipient":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The account ID for which this invitation will grant a role."},"account_name":{"type":"string","title":"Account Name","description":"The name of the account for which this invitation will grant a role."},"account_display_name":{"type":"string","title":"Account Display Name","description":"The display name of the account."},"sender_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Display Name","description":"The display name of the user who sent the invitation. Null if the sender no longer exists."},"role":{"$ref":"#/components/schemas/AccountRole","description":"The role to assign to the invited user."},"is_expired":{"type":"boolean","title":"Is Expired","description":"Whether this invitation has expired."},"accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted Time","description":"The time the invitation was accepted."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"The invitation's message to display to the invited users."}},"type":"object","required":["account_id","account_name","account_display_name","sender_display_name","role","is_expired","accepted_time","message"],"title":"AccountInvitationForRecipient"},"AccountNameAvailability":{"properties":{"available":{"type":"boolean","title":"Available","description":"Whether an account name is available."}},"type":"object","required":["available"],"title":"AccountNameAvailability"},"AccountPeriodUsageQuery":{"properties":{"from":{"type":"string","format":"date-time","title":"From","description":"Start of the discovery window used to find active accounts (inclusive)."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the discovery window (exclusive)."},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","description":"Maximum number of accounts to return.","default":100},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Opaque pagination cursor from a previous response's `next_cursor`. Omit for the first page."}},"type":"object","required":["from","until"],"title":"AccountPeriodUsageQuery","description":"Per-account credit usage over each account's own billing period.\n\nOne paginated call does the whole chain internally: discover accounts with any usage in the\nshared `[from, until)` discovery window, resolve each one's billing period, then total each\naccount's credit usage over *its own* billing period. Callers supply no per-account windows.\n\nPaginated by account_id via an opaque cursor, enumerating the accounts active in the window one\npage at a time. Always totals `credits`, so there is no `metrics` field."},"AccountPeriodUsageResponse":{"properties":{"from":{"type":"string","format":"date-time","title":"From","description":"Echoes the request's discovery-window start."},"until":{"type":"string","format":"date-time","title":"Until","description":"Echoes the request's discovery-window end."},"results":{"items":{"$ref":"#/components/schemas/AccountPeriodUsageResult"},"type":"array","title":"Results"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Pass as `cursor` on the next request to fetch the next page of accounts."}},"type":"object","required":["from","until","results"],"title":"AccountPeriodUsageResponse"},"AccountPeriodUsageResult":{"properties":{"account_id":{"type":"string","title":"Account Id"},"from":{"type":"string","format":"date-time","title":"From","description":"Start of the billing period this account's totals cover (its own, not the discovery window)."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the billing period this account's totals cover (exclusive)."},"allotment":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Allotment","description":"The account's credit allotment for this billing period, if known."},"used":{"type":"number","title":"Used","description":"Credits used over the billing period."},"offset":{"type":"number","title":"Offset","description":"Any active granted credit offset for this billing period, already netted against enforcement decisions but reported here for visibility. 0 when no grant is active.","default":0.0}},"type":"object","required":["account_id","from","until","used"],"title":"AccountPeriodUsageResult"},"AccountRole":{"type":"string","enum":["owner","admin","publisher","viewer","guest","no_role"],"title":"AccountRole"},"AccountRoleAccountInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The id of the account."},"account_type":{"$ref":"#/components/schemas/AccountType","description":"The type of account."},"name":{"type":"string","title":"Name","description":"The name of the account."},"display_name":{"type":"string","title":"Display Name","description":"The display name of the account."}},"type":"object","required":["id","account_type","name","display_name"],"title":"AccountRoleAccountInfo"},"AccountRoleInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The id of the user."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The id of the account."},"role":{"$ref":"#/components/schemas/AccountRole","description":"The role of the user on the account."},"account":{"$ref":"#/components/schemas/AccountRoleAccountInfo","description":"The account of the role."}},"type":"object","required":["id","created_time","updated_time","user_id","account_id","role","account"],"title":"AccountRoleInfo"},"AccountTransfer":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The account ID whose ownership will be transferred."},"email_address":{"type":"string","format":"email","title":"Email Address","description":"The email address the transfer was sent to."},"expires_time":{"type":"string","format":"date-time","title":"Expires Time","description":"The time at which the transfer will expire."},"accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted Time","description":"The time at which the transfer was accepted."},"recipient":{"anyOf":[{"$ref":"#/components/schemas/InvitationUser"},{"type":"null"}],"description":"The user who accepted the transfer, if any."},"sender":{"anyOf":[{"$ref":"#/components/schemas/InvitationUser"},{"type":"null"}],"description":"The user who initiated the transfer."},"is_expired":{"type":"boolean","title":"Is Expired","description":"Whether this transfer has expired."}},"type":"object","required":["id","created_time","updated_time","account_id","email_address","expires_time","recipient","sender","is_expired"],"title":"AccountTransfer"},"AccountTransferForRecipient":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The account ID whose ownership will be transferred."},"account_name":{"type":"string","title":"Account Name","description":"The name of the account whose ownership will be transferred."},"account_display_name":{"type":"string","title":"Account Display Name","description":"The display name of the account."},"sender_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Display Name","description":"The display name of the user who initiated the transfer. Null if the sender no longer exists."},"is_expired":{"type":"boolean","title":"Is Expired","description":"Whether this transfer has expired."},"accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted Time","description":"The time the transfer was accepted."}},"type":"object","required":["account_id","account_name","account_display_name","sender_display_name","is_expired","accepted_time"],"title":"AccountTransferForRecipient"},"AccountType":{"type":"string","enum":["individual","organization"],"title":"AccountType"},"AccountWithRedactedFields":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"name":{"type":"string","maxLength":39,"minLength":1,"title":"Name","description":"The name of the account."},"display_name":{"type":"string","maxLength":250,"minLength":1,"title":"Display Name","description":"The display name of the account."},"account_type":{"$ref":"#/components/schemas/AccountType","description":"The type of account."},"access":{"type":"string","enum":["private","public"],"title":"Access","description":"Whether the account is publicly viewable ('public') or requires membership ('private'). Individual accounts are always 'public'."},"owner_id":{"type":"string","format":"uuid","title":"Owner Id","description":"The ID of the user who owns the account."},"state":{"$ref":"#/components/schemas/ResourceState","description":"The state of the account."},"license":{"anyOf":[{"$ref":"#/components/schemas/License"},{"type":"string","const":"REDACTED"}],"title":"License","description":"The account license. May be 'REDACTED' if the caller lacks license read permission."},"linked_github":{"type":"boolean","title":"Linked Github","description":"Whether the account is linked to a GitHub app."},"github_apps":{"items":{"$ref":"#/components/schemas/GitHubApp"},"type":"array","title":"Github Apps","description":"GitHub apps linked to the account."},"idp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idp Id","description":"The IdP ID of the account if the account is SSO enabled."},"sso_enabled":{"type":"boolean","title":"Sso Enabled","description":"Whether the account is SSO enabled or not."},"suspended_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended Reason","description":"The reason the account is suspended."},"suspended_reason_code":{"anyOf":[{"$ref":"#/components/schemas/SuspendedReasonCode"},{"type":"null"}],"description":"The code for the reason the account is suspended."},"suspended_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended By","description":"The email of the user who suspended the account."},"suspended_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended On","description":"The time the account was suspended."},"role":{"anyOf":[{"$ref":"#/components/schemas/AccountRole"},{"type":"null"}],"description":"The role the requesting user has for the account."},"account_controls":{"anyOf":[{"additionalProperties":{"type":"boolean"},"propertyNames":{"$ref":"#/components/schemas/AccountControlType"},"type":"object"},{"type":"string","const":"REDACTED"}],"title":"Account Controls","description":"Account controls. May be 'REDACTED' if the caller lacks account-control read permission."}},"type":"object","required":["id","created_time","updated_time","name","display_name","account_type","access","owner_id","state","license","linked_github","github_apps","sso_enabled"],"title":"AccountWithRedactedFields","description":"Account as returned by the API. Permission-gated fields may be redacted to the REDACTED sentinel.\n\n`Account` keeps strict field types for internal use; only this response variant widens gated fields, so\ninternal code holding an `Account` never has to handle a redacted value."},"Address":{"properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"The address city."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"The address country."},"line1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line1","description":"The address line 1."},"line2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line2","description":"The address line 2."},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code","description":"The address postal code."},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"The address state."}},"type":"object","title":"Address"},"AppMode":{"type":"string","enum":["api","shiny","rmd-shiny","rmd-static","jupyter-static","static","python-api","python-dash","python-streamlit","python-bokeh","python-fastapi","quarto-python-shiny","quarto-shiny","quarto-static","python-shiny","jupyter-voila"],"title":"AppMode"},"ApplicationMigrationHistory":{"properties":{"lucid_app_id":{"type":"string","title":"Lucid App Id","description":"The shinyapps.io (lucid-server) application id."},"lucid_account_id":{"type":"integer","title":"Lucid Account Id","description":"The linked shinyapps.io account id."},"cc_account_id":{"type":"string","format":"uuid","title":"Cc Account Id","description":"The linked Connect Cloud account id."},"content_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id","description":"vivid-api Content id when this application has been migrated, else null."},"content_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Url","description":"The Connect Cloud URL of the migrated content's current revision, if any."},"content_current_revision_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Current Revision Id","description":"The content's current (promoted) revision id. Compare against a migrate request's vivid_revision_id to detect a republish since migration."},"finalized":{"type":"boolean","title":"Finalized","description":"True once the migration has been finalized (redirect set up, upstream terminated).","default":false},"migration_state":{"$ref":"#/components/schemas/MigrationState","description":"Current migration progress derived from vivid-api Content and Revision state."},"publish_log_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Log Channel","description":"Log channel for the most recent publish attempt, if any."},"publish_error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Error Code","description":"Publish error code when migration_state is PUBLISH_FAILED, else null."},"requests":{"items":{"$ref":"#/components/schemas/MigrationRequestRecord"},"type":"array","title":"Requests","description":"All migration requests for this application, newest first."}},"type":"object","required":["lucid_app_id","lucid_account_id","cc_account_id","migration_state","requests"],"title":"ApplicationMigrationHistory","description":"Migration history and current migration metadata for one shinyapps.io application."},"AuthenticationResponse":{"properties":{"token":{"type":"string","title":"Token","description":"The authentication token."},"suggested_account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Account Name","description":"The suggested account name."}},"type":"object","required":["token","suggested_account_name"],"title":"AuthenticationResponse"},"AuthorGroup":{"properties":{"type":{"type":"string","const":"author","title":"Type","default":"author"},"id":{"type":"string","title":"Id","description":"The queried author's user id."}},"type":"object","required":["id"],"title":"AuthorGroup","description":"A result row describing one author's usage within an account."},"AuthorInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The id of the author user."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"display_name":{"type":"string","title":"Display Name","description":"The display name of the user."},"avatar_url":{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$","title":"Avatar Url","description":"The URL of the user's avatar."}},"type":"object","required":["id","created_time","updated_time","display_name","avatar_url"],"title":"AuthorInfo"},"AuthorizationCheckRequest":{"properties":{"resource_type":{"$ref":"#/components/schemas/ResourceType","description":"The type of resource to check authorization for."},"resource_id":{"type":"string","title":"Resource Id","description":"The ID of the resource to check authorization for."},"permission":{"$ref":"#/components/schemas/Permission","description":"The permission to check authorization for."}},"type":"object","required":["resource_type","resource_id","permission"],"title":"AuthorizationCheckRequest"},"AuthorizationCheckResponse":{"properties":{"authorized":{"type":"boolean","title":"Authorized","description":"Whether the principal has the requested permission."},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Token to use for authorization."}},"type":"object","required":["authorized"],"title":"AuthorizationCheckResponse"},"Azure":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize"},"token_uri":{"type":"string","title":"Token Uri","default":"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"},"template":{"type":"string","const":"azure","title":"Template","default":"azure"},"tenant_id":{"type":"string","maxLength":1024,"title":"Tenant Id"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"offline_access openid profile email"}},"type":"object","required":["client_id","tenant_id"],"title":"Azure"},"AzureOpenAI":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize"},"token_uri":{"type":"string","title":"Token Uri","default":"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"},"template":{"type":"string","const":"azure-openai","title":"Template","default":"azure-openai"},"tenant_id":{"type":"string","maxLength":1024,"title":"Tenant Id"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"https://cognitiveservices.azure.com/.default offline_access"}},"type":"object","required":["client_id","tenant_id"],"title":"AzureOpenAI"},"BillingCancel":{"properties":{"cancel_url":{"type":"string","title":"Cancel Url","description":"The Stripe URL to redirect the user to for canceling the subscription."}},"type":"object","required":["cancel_url"],"title":"BillingCancel"},"BuildContext":{"properties":{"r_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"R Version","description":"The R version for the revision."},"python_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Python Version","description":"The Python version for the revision."},"quarto_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quarto Version","description":"The Quarto version for the revision."}},"type":"object","title":"BuildContext"},"CertificateErrorCode":{"type":"string","enum":["missing_dns_record","caa_blocked","other"],"title":"CertificateErrorCode"},"CertificateErrorDetail":{"properties":{"code":{"$ref":"#/components/schemas/CertificateErrorCode","description":"A machine-readable error code indicating the type of error encountered. Common errors have specific codes, while less common errors are categorized under 'other'."},"message":{"type":"string","title":"Message","description":"An english, human-readable message describing the error."}},"type":"object","required":["code","message"],"title":"CertificateErrorDetail"},"CertificateStatus":{"properties":{"usable":{"type":"boolean","title":"Usable","description":"True if the domain has a deployed TLS certificate at the present moment.","default":false},"state":{"$ref":"#/components/schemas/DCVState","description":"The current state of the domain's TLS certificate."},"error_detail":{"anyOf":[{"$ref":"#/components/schemas/CertificateErrorDetail"},{"type":"null"}],"description":"If the state is ERROR, this field contains details about the error."},"verified_records":{"items":{"$ref":"#/components/schemas/DnsRecordRecommendation"},"type":"array","title":"Verified Records","description":"List of DNS records that have been configured and verified for certificate issuance or renewal."},"add_records":{"items":{"$ref":"#/components/schemas/DnsRecordRecommendation"},"type":"array","title":"Add Records","description":"List of DNS records that should be added to enable certificate issuance or renewal. Populated with the required dns-01 record during initial issuance."},"remove_records":{"items":{"$ref":"#/components/schemas/DnsRecordRecommendation"},"type":"array","title":"Remove Records","description":"List of DNS records that should be removed to enable certificate issuance or renewal."}},"type":"object","required":["state"],"title":"CertificateStatus"},"ConnectOptions-Input":{"properties":{"client_reconnect_timeout":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Client Reconnect Timeout","description":"The amount of time in seconds to allow a user connection to be restored. If a zero value, reconnects will be disabled. Defaults to 15s if not set."},"conn_timeout":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":0.0},{"type":"null"}],"title":"Conn Timeout","description":"Maximum time in seconds allowed without data sent or received across a client connection (0 for infinite). Defaults to 3600s (1hour) if not set."},"disconnect_delay":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Disconnect Delay","description":"Time in seconds before a SockJS detached session is closed. Defaults to 45s if not set."},"heartbeat_delay":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Heartbeat Delay","description":"Time in seconds between SockJS heartbeat events; help keeps long-running connections alive. Defaults to 25s if not set."},"idle_timeout":{"anyOf":[{"type":"integer","maximum":60.0,"minimum":1.0},{"type":"null"}],"title":"Idle Timeout","description":"Minimum time in seconds to keep a worker process alive after it goes idle. Defaults to 5s if not set."},"init_timeout":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":1.0},{"type":"null"}],"title":"Init Timeout","description":"Maximum time in seconds to wait for an app to start. Defaults to 60s if not set."},"read_timeout":{"anyOf":[{"type":"integer","maximum":14400.0,"minimum":0.0},{"type":"null"}],"title":"Read Timeout","description":"Maximum time in seconds allowed without data received from a client connection (0 for infinite). Defaults to 3600s (1 hour) if not set."},"sched_load_factor":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Sched Load Factor","description":"A value between 0 and 1 which determines how lazily additional processes are spawned to handle incoming load for this process. Defaults to 0.5 if not set."},"sched_max_conns":{"anyOf":[{"type":"integer","maximum":200.0,"minimum":1.0},{"type":"null"}],"title":"Sched Max Conns","description":"The maximum number of connections per process. Defaults to 20 if not set."},"sched_max_proc":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"Sched Max Proc","description":"The maximum number of processes per container. Defaults to 10 if not set."},"sched_min_proc":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Sched Min Proc","description":"The minimum number of processes per container, regardless of load factor."},"shiny_isolation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shiny Isolation","description":"Specifies if a multi-Shiny R Markdown document deployment attempts to serve all documents from a single process. Disable if interactive documents expect in-process shared state. Defaults to true if not set."},"shiny_stale_worker_redirects":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shiny Stale Worker Redirects","description":"Specifies that multi-Shiny R Markdown document deployments shall redirect to cleaned paths from paths containing stale worker identifiers. Defaults to true if not set."}},"additionalProperties":false,"type":"object","title":"ConnectOptions"},"ConnectOptions-Output":{"additionalProperties":true,"type":"object"},"ContentEmbeddedOAuthIntegration":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The ID of the OAuth integration."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"template":{"$ref":"#/components/schemas/OAuthIntegrationTemplate","description":"The template of the OAuth integration."},"name":{"type":"string","maxLength":1024,"minLength":1,"title":"Name","description":"A human-readable name for the integration."},"description":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Description","description":"An optional description of the integration."}},"type":"object","required":["id","created_time","updated_time","template","name"],"title":"ContentEmbeddedOAuthIntegration"},"ContentGitHubToken":{"properties":{"github_token_encrypted":{"type":"string","title":"Github Token Encrypted","description":"The GitHub token (encrypted) used to publish a content."},"github_token_expiration":{"type":"string","format":"date-time","title":"Github Token Expiration","description":"When the token expires."},"github_installation_id":{"type":"integer","title":"Github Installation Id","description":"The GitHub app installation id."}},"type":"object","required":["github_token_encrypted","github_token_expiration","github_installation_id"],"title":"ContentGitHubToken"},"ContentGroup":{"properties":{"type":{"type":"string","const":"content","title":"Type","default":"content"},"id":{"type":"string","title":"Id","description":"The content item's id."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The content item's title, or `null` when no content record exists for this id -- e.g. usage recorded against content that has since been hard-deleted. Such rows are kept rather than dropped so a page's rows still sum to the queried total."}},"type":"object","required":["id","name"],"title":"ContentGroup","description":"A result row describing one content item."},"ContentInvitation":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"content_id":{"type":"string","format":"uuid","title":"Content Id","description":"The content ID for which this invitation will grant a role."},"role":{"type":"string","enum":["collaborator","viewer"],"title":"Role","description":"The role to assign to the invited user."},"email_address":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email Address","description":"The email address that will receive the invitation."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"The invitation's message to display to the invited users."},"expires_time":{"type":"string","format":"date-time","title":"Expires Time","description":"The time at which the invitation will expire."},"accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted Time","description":"The time at which the invitation was accepted."},"recipient":{"anyOf":[{"$ref":"#/components/schemas/InvitationUser"},{"type":"null"}],"description":"The user who received the invitation."},"sender":{"$ref":"#/components/schemas/InvitationUser","description":"The user who sent the invitation."},"is_expired":{"type":"boolean","title":"Is Expired","description":"Whether this invitation has expired."}},"type":"object","required":["id","created_time","updated_time","content_id","role","email_address","message","expires_time","recipient","sender","is_expired"],"title":"ContentInvitation"},"ContentInvitationForRecipient":{"properties":{"sender_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Display Name","description":"The display name of the user who sent the invitation. Null if the sender no longer exists."},"account_name":{"type":"string","title":"Account Name","description":"The name of the account this content is part of."},"content_id":{"type":"string","format":"uuid","title":"Content Id","description":"The content ID for which this invitation will grant a role."},"content_title":{"type":"string","title":"Content Title","description":"The title of the content."},"role":{"$ref":"#/components/schemas/ContentRole","description":"The role to assign to the invited user."},"is_expired":{"type":"boolean","title":"Is Expired","description":"Whether this invitation has expired."},"accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Accepted Time","description":"The time the invitation was accepted."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"The invitation's message to display to the invited user."}},"type":"object","required":["sender_display_name","account_name","content_id","content_title","role","is_expired","accepted_time","message"],"title":"ContentInvitationForRecipient"},"ContentPrivateLinkToken":{"properties":{"private_link_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Private Link Token","description":"The private link token used to access the content."}},"type":"object","required":["private_link_token"],"title":"ContentPrivateLinkToken"},"ContentRole":{"type":"string","enum":["collaborator","viewer","no_role"],"title":"ContentRole"},"ContentRoleInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The id of the user."},"content_id":{"type":"string","format":"uuid","title":"Content Id","description":"The id of the content."},"role":{"$ref":"#/components/schemas/ContentRole","description":"The role of the user on the content."}},"type":"object","required":["id","created_time","updated_time","user_id","content_id","role"],"title":"ContentRoleInfo"},"ContentRoleMemberUser":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The id of the member user."},"display_name":{"type":"string","title":"Display Name","description":"The display name of the member user."},"email":{"type":"string","title":"Email","description":"The email of the member user."},"avatar_url":{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$","title":"Avatar Url","description":"The URL of the user's avatar."},"account_role":{"anyOf":[{"$ref":"#/components/schemas/AccountRole"},{"type":"null"}],"description":"The account role of the content member user on the content's account, if any."}},"type":"object","required":["id","display_name","email","avatar_url"],"title":"ContentRoleMemberUser"},"ContentSchedule":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"content_id":{"type":"string","format":"uuid","title":"Content Id"},"cron_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cron Expression"},"execute_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Execute On"},"enabled":{"type":"boolean","title":"Enabled"},"execute_after":{"type":"string","format":"date-time","title":"Execute After"},"timezone":{"type":"string","title":"Timezone","default":"UTC"},"last_executed":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Executed"},"processing_started":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processing Started"}},"type":"object","required":["id","created_time","updated_time","content_id","enabled","execute_after"],"title":"ContentSchedule"},"ContentType":{"type":"string","enum":["bokeh","dash","jupyter","quarto","shiny","streamlit","rmarkdown","static"],"title":"ContentType"},"ContentWithPermissionGatedFields":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title","description":"The title of the content."},"description":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Description","description":"The description of the content."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The ID of the account that owns the content."},"state":{"$ref":"#/components/schemas/ResourceState","description":"The state of the content."},"access":{"$ref":"#/components/schemas/ResourceAccess","description":"The access level of the content."},"default_robots_policy":{"$ref":"#/components/schemas/RobotsPolicy","description":"The default robots.txt policy served when the content does not supply its own."},"current_revision":{"anyOf":[{"$ref":"#/components/schemas/Revision"},{"type":"null"}],"description":"The current revision of the content."},"next_revision":{"anyOf":[{"$ref":"#/components/schemas/Revision"},{"type":"null"}],"description":"The next revision of the content."},"secrets":{"items":{"$ref":"#/components/schemas/Secret"},"type":"array","title":"Secrets","description":"The secrets for the content."},"private_link_enabled":{"type":"boolean","title":"Private Link Enabled","description":"Whether access is gated on the private link."},"vanity_domain":{"anyOf":[{"type":"string","maxLength":63,"minLength":1},{"type":"null"}],"title":"Vanity Domain","description":"The vanity domain to be used as a portion of the subdomain in the content URL."},"vanity_name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Vanity Name","description":"The vanity name to be used as a portion of the subdomain in the content URL."},"domain_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Domain Id","description":"The ID of the domain the content is published to."},"auto_publish":{"type":"boolean","title":"Auto Publish","description":"Whether the content should be auto-published."},"source_repository_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Repository Url","description":"The source repository URL for the content."},"source_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Branch","description":"The source branch for the content."},"lucid_app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lucid App Id","description":"The shinyapps.io application ID this content was migrated from, if any."},"thumbnail_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Image","description":"The base64-encoded thumbnail image data."},"thumbnail_format":{"anyOf":[{"$ref":"#/components/schemas/ImageFormat"},{"type":"null"}],"description":"The format of the thumbnail image, e.g., image/jpeg."},"show_thumbnail":{"$ref":"#/components/schemas/Thumbnail","description":"Whether to show the captured thumbnail or a placeholder."},"author_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Author Id","description":"The ID of the author of the content."},"author":{"anyOf":[{"$ref":"#/components/schemas/AuthorInfo"},{"type":"null"}],"description":"Info on the author of the content."},"user_roles":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ContentRoleInfo"},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"string","const":"REDACTED"}],"title":"User Roles","description":"The user-content roles of this content, by user id."},"role":{"anyOf":[{"$ref":"#/components/schemas/ContentRole"},{"type":"null"}],"description":"The role the requesting user has for the content."},"schedules":{"items":{"$ref":"#/components/schemas/ContentSchedule"},"type":"array","title":"Schedules","description":"The schedules for the content."},"oauth_integrations":{"items":{"$ref":"#/components/schemas/ContentEmbeddedOAuthIntegration"},"type":"array","title":"Oauth Integrations","description":"The OAuth integrations associated with this content."},"oauth_client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string","const":"REDACTED"},{"type":"null"}],"title":"Oauth Client Id","description":"The ID of the OAuth2 client in lucid-auth for this content."},"private_link_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Private Link Token","description":"The private link token used to access the content."},"private_link_token_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Private Link Token Hash","description":"The hash of the private link token."}},"type":"object","required":["id","created_time","updated_time","title","description","account_id","state","access","default_robots_policy","current_revision","next_revision","secrets","private_link_enabled","vanity_domain","vanity_name","auto_publish","source_repository_url","source_branch","thumbnail_image","thumbnail_format","show_thumbnail","user_roles","schedules","oauth_integrations","oauth_client_id","private_link_token","private_link_token_hash"],"title":"ContentWithPermissionGatedFields"},"ContiguousUsagePoint":{"properties":{"from":{"type":"string","format":"date-time","title":"From"},"until":{"type":"string","format":"date-time","title":"Until"},"phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase"},"pod_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pod Id"},"values":{"$ref":"#/components/schemas/UsageValues"}},"type":"object","required":["from","until","phase","pod_id","values"],"title":"ContiguousUsagePoint","description":"One maximal run of exactly adjacent raw frames with the same phase and pod."},"ContiguousUsageQuery":{"properties":{"from":{"type":"string","format":"date-time","title":"From","description":"Start of the query window (inclusive)."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the query window (exclusive)."},"timezone":{"type":"string","title":"Timezone","description":"Accepted for consistency with other usage queries; returned timestamps remain untransformed.","default":"UTC"}},"type":"object","required":["from","until"],"title":"ContiguousUsageQuery","description":"Window for contiguous raw-frame usage for one content item."},"ContiguousUsageResponse":{"properties":{"from":{"type":"string","format":"date-time","title":"From"},"until":{"type":"string","format":"date-time","title":"Until"},"points":{"items":{"$ref":"#/components/schemas/ContiguousUsagePoint"},"type":"array","title":"Points"}},"type":"object","required":["from","until","points"],"title":"ContiguousUsageResponse"},"CreateAccountInvitationsPayload":{"properties":{"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"The invitation's message to display to the invited users."},"invitations":{"items":{"$ref":"#/components/schemas/CreateAccountInvitationsPayloadItem"},"type":"array","maxItems":100,"title":"Invitations","description":"Users to invite to the account, with associated account roles."}},"type":"object","required":["message","invitations"],"title":"CreateAccountInvitationsPayload"},"CreateAccountInvitationsPayloadItem":{"properties":{"email_address":{"type":"string","format":"email","title":"Email Address","description":"The email address that will receive the invitation."},"role":{"type":"string","enum":["admin","publisher","viewer"],"title":"Role","description":"The role to assign to the invited user."}},"type":"object","required":["email_address","role"],"title":"CreateAccountInvitationsPayloadItem"},"CreateAccountInvitationsResult":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountInvitation"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"CreateAccountInvitationsResult"},"CreateAccountMemberPayload":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The id of the user to add to the account."},"role":{"type":"string","enum":["admin","publisher","viewer"],"title":"Role","description":"The role of the user on the account."}},"type":"object","required":["user_id","role"],"title":"CreateAccountMemberPayload"},"CreateAccountPayload":{"properties":{"name":{"type":"string","maxLength":39,"minLength":1,"title":"Name","description":"The name of the account."},"display_name":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Display Name","description":"The display name of the account."},"account_type":{"$ref":"#/components/schemas/AccountType","description":"The type of account.","default":"individual"},"state":{"type":"string","const":"active","title":"State","description":"The state of the account.","default":"active"},"owner_id":{"type":"string","format":"uuid","title":"Owner Id","description":"The ID of the user who owns the account."},"use_reserved_name":{"type":"boolean","title":"Use Reserved Name","description":"Whether to bypass the reserved name check. Requires `account.name:create:bypass_reserved` permission.","default":false},"license":{"anyOf":[{"$ref":"#/components/schemas/CreateLicensePayload"},{"type":"null"}],"description":"The account license."},"idp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idp Id","description":"The IdP ID of the account if the account is SSO enabled."}},"type":"object","required":["name","owner_id"],"title":"CreateAccountPayload"},"CreateAccountTransferPayload":{"properties":{"email_address":{"type":"string","format":"email","title":"Email Address","description":"The email address to transfer account ownership to. Need not be an existing user."}},"type":"object","required":["email_address"],"title":"CreateAccountTransferPayload"},"CreateCancelUrlPayload":{"properties":{"account_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id","description":"The account ID to cancel the subscription for."},"return_url":{"type":"string","title":"Return Url","description":"Where Stripe will return the user if they decide not to cancel."},"success_url":{"type":"string","title":"Success Url","description":"Where the user will be redirected after the subscription is canceled."}},"type":"object","required":["return_url","success_url"],"title":"CreateCancelUrlPayload"},"CreateContentInvitationsPayload":{"properties":{"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"The invitation's message to display to the invited users."},"email_invitations":{"items":{"$ref":"#/components/schemas/CreateContentInvitationsPayloadEmailItem"},"type":"array","maxItems":100,"title":"Email Invitations","description":"Emails of users to invite to the content."},"recipient_invitations":{"items":{"$ref":"#/components/schemas/CreateContentInvitationsPayloadRecipientItem"},"type":"array","maxItems":100,"title":"Recipient Invitations","description":"Identified users to invite to the content."}},"type":"object","required":["message","email_invitations","recipient_invitations"],"title":"CreateContentInvitationsPayload"},"CreateContentInvitationsPayloadEmailItem":{"properties":{"email_address":{"type":"string","format":"email","title":"Email Address","description":"The email address that will receive the invitation."}},"type":"object","required":["email_address"],"title":"CreateContentInvitationsPayloadEmailItem"},"CreateContentInvitationsPayloadRecipientItem":{"properties":{"recipient_id":{"type":"string","format":"uuid","title":"Recipient Id","description":"Id of the user who will receive the invitation."},"role":{"type":"string","enum":["collaborator","viewer"],"title":"Role","description":"The role to assign to the invited user."}},"type":"object","required":["recipient_id","role"],"title":"CreateContentInvitationsPayloadRecipientItem"},"CreateContentInvitationsResult":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentInvitation"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"CreateContentInvitationsResult"},"CreateContentMemberPayload":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The id of the user to add to the content."},"role":{"type":"string","const":"viewer","title":"Role","description":"The role of the user on the content."}},"type":"object","required":["user_id"],"title":"CreateContentMemberPayload"},"CreateContentPayload":{"properties":{"title":{"type":"string","maxLength":250,"minLength":1,"title":"Title","description":"The title of the content."},"description":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Description","description":"The description of the content."},"lucid_app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lucid App Id","description":"The shinyapps.io application ID this content was migrated from, if any."},"next_revision":{"$ref":"#/components/schemas/CreateRevisionPayload","description":"The next revision of the content."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The ID of the account that owns the content."},"state":{"type":"string","const":"active","title":"State","description":"The state of the content.","default":"active"},"access":{"$ref":"#/components/schemas/ResourceAccess","description":"The access level of the content.","default":"public"},"default_robots_policy":{"$ref":"#/components/schemas/RobotsPolicy","description":"The default robots.txt policy served when the content does not supply its own.","default":"disallow_all"},"secrets":{"anyOf":[{"items":{"$ref":"#/components/schemas/CreateSecretPayload"},"type":"array"},{"type":"null"}],"title":"Secrets","description":"The secrets for the content."},"vanity_name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Vanity Name","description":"The vanity name used to construct a vanity domain."},"domain_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Domain Id","description":"The ID of the domain the content is published to."},"auto_publish":{"type":"boolean","title":"Auto Publish","description":"Whether the content should be auto-published.","default":false},"oauth_integrations":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Oauth Integrations"}},"type":"object","required":["title","next_revision","account_id"],"title":"CreateContentPayload"},"CreateContentSchedulePayload":{"properties":{"cron_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cron Expression"},"execute_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Execute On"},"enabled":{"type":"boolean","title":"Enabled"},"timezone":{"type":"string","title":"Timezone","default":"UTC"}},"type":"object","required":["enabled"],"title":"CreateContentSchedulePayload"},"CreateDomainPayload":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The ID of the account that owns the domain."},"wildcard":{"type":"boolean","title":"Wildcard","description":"Whether or not the domain is a wildcard domain."},"name":{"type":"string","title":"Name","description":"The name of the domain."}},"type":"object","required":["account_id","wildcard","name"],"title":"CreateDomainPayload"},"CreateLicensePayload":{"properties":{"type":{"$ref":"#/components/schemas/LicenseType","description":"The license type.","default":"free"}},"type":"object","title":"CreateLicensePayload"},"CreateOAuthIntegrationPayload":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The ID of the account that owns the integration."},"name":{"type":"string","maxLength":1024,"minLength":1,"title":"Name","description":"A human-readable name for the integration."},"description":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Description","description":"An optional description of the integration."},"config":{"oneOf":[{"$ref":"#/components/schemas/AWS"},{"$ref":"#/components/schemas/Azure"},{"$ref":"#/components/schemas/AzureOpenAI"},{"$ref":"#/components/schemas/Databricks"},{"$ref":"#/components/schemas/GoogleBigQuery"},{"$ref":"#/components/schemas/GoogleDrive"},{"$ref":"#/components/schemas/GoogleSheets"},{"$ref":"#/components/schemas/GoogleVertexAI"},{"$ref":"#/components/schemas/Snowflake"},{"$ref":"#/components/schemas/Supabase"}],"title":"Config","description":"The integration configuration. Must include a 'template' discriminator field and all required fields for the chosen template. Secret fields are required.","discriminator":{"propertyName":"template","mapping":{"aws":"#/components/schemas/AWS","azure":"#/components/schemas/Azure","azure-openai":"#/components/schemas/AzureOpenAI","bigquery":"#/components/schemas/GoogleBigQuery","databricks":"#/components/schemas/Databricks","drive":"#/components/schemas/GoogleDrive","sheets":"#/components/schemas/GoogleSheets","snowflake":"#/components/schemas/Snowflake","supabase":"#/components/schemas/Supabase","vertex-ai":"#/components/schemas/GoogleVertexAI"}}}},"type":"object","required":["account_id","name","config"],"title":"CreateOAuthIntegrationPayload"},"CreatePortalUrlPayload":{"properties":{"account_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Account Id","description":"The account ID to generate the portal URL for."},"return_url":{"type":"string","title":"Return Url","description":"Where Stripe will redirect the user once they're done."}},"type":"object","required":["return_url"],"title":"CreatePortalUrlPayload"},"CreateRevisionPayload":{"properties":{"content_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id","description":"The ID of the content this revision belongs to."},"state":{"type":"string","const":"active","title":"State","description":"The state of the revision.","default":"active"},"primary_file":{"type":"string","maxLength":250,"minLength":1,"title":"Primary File","description":"The primary file for the revision."},"source_type":{"$ref":"#/components/schemas/SourceType","description":"The source type for the revision.","default":"git"},"source_provider":{"$ref":"#/components/schemas/SourceProvider","description":"The source provider for the revision.","default":"github"},"source_repository_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Repository Url","description":"The URL of the source repository for the revision."},"source_ref":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Source Ref","description":"The source reference for the revision."},"source_ref_type":{"anyOf":[{"$ref":"#/components/schemas/GitRefType"},{"type":"null"}],"description":"The source reference type for the revision."},"source_bundle_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Bundle Id","description":"The ID of the source bundle for the revision."},"source_bundle_upload_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Bundle Upload Url","description":"The upload URL for the source bundle."},"app_mode":{"anyOf":[{"$ref":"#/components/schemas/AppMode"},{"type":"null"}],"description":"The Connect app mode for the revision."},"content_type":{"$ref":"#/components/schemas/ContentType","description":"The content type for the revision."},"trigger":{"anyOf":[{"$ref":"#/components/schemas/RevisionTrigger"},{"type":"null"}],"description":"The trigger for the revision. Revisions triggered by github webhook are `automated`; others are `manual`."},"memory":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Memory","description":"The memory limit, in MiB, for the revision."},"cpu":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu","description":"The CPU limit, in number of cores, for the revision."},"execution_time_limit":{"type":"integer","maximum":5760.0,"minimum":1.0,"title":"Execution Time Limit","description":"The execution time limit, in minutes, for the revision.","default":60},"operating_system":{"$ref":"#/components/schemas/OperatingSystem","description":"The operating system for the revision.","default":"jammy"},"r_version":{"anyOf":[{"$ref":"#/components/schemas/RVersion"},{"type":"null"}],"description":"The R version for the revision."},"python_version":{"anyOf":[{"$ref":"#/components/schemas/RequestPythonVersion"},{"type":"null"}],"description":"The Python version for the revision."},"python_environment_management":{"$ref":"#/components/schemas/EnvironmentManagement","description":"Who provisions the Python environment: 'platform' (Connect Cloud builds the venv at publish, the default) or 'app' (the app builds its own environment at runtime via reticulate). Settable at content creation and changeable afterward via a revision override on the content update endpoint; carried forward unchanged on republish and rebuild. The shinyapps.io migration sends 'app' for R apps whose original manifest has no Python section.","default":"platform"},"quarto_version":{"anyOf":[{"$ref":"#/components/schemas/QuartoVersion"},{"type":"null"}],"description":"The Quarto version for the revision."},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commit Sha","description":"The commit SHA for the revision."},"secrets_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secrets Hash","description":"The hash of the secrets for the revision."},"connect_options":{"anyOf":[{"$ref":"#/components/schemas/ConnectOptions-Input"},{"type":"null"}],"description":"Connect options."}},"type":"object","required":["primary_file","content_type"],"title":"CreateRevisionPayload"},"CreateSecretPayload":{"properties":{"name":{"type":"string","maxLength":250,"minLength":1,"pattern":"^[a-zA-Z_]+[a-zA-Z0-9_]*$","title":"Name","description":"The name of the secret. Must be alphanumeric and underscores only. May not start with a digit. May not be all underscores."},"value":{"type":"string","maxLength":4096,"minLength":1,"format":"password","title":"Value","description":"The value of the secret.","writeOnly":true}},"type":"object","required":["name","value"],"title":"CreateSecretPayload"},"CreateSetupIntentPayload":{"properties":{"license_type":{"$ref":"#/components/schemas/LicenseType","description":"The license type to create a setup intent for."}},"type":"object","required":["license_type"],"title":"CreateSetupIntentPayload"},"CreateUserPayload":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"The email address of the user."},"display_name":{"type":"string","maxLength":250,"title":"Display Name","description":"The display name of the user."},"system_role":{"$ref":"#/components/schemas/SystemRole","description":"The system role of the user.","default":"user"},"state":{"type":"string","const":"active","title":"State","description":"The state of the user.","default":"active"},"github_avatar_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Github Avatar Url","description":"The URL of the user's GitHub avatar."},"lucid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lucid Id","description":"The Lucid ID of the user."},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bio","description":"The bio of the user."},"org":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Org","description":"The organization of the user."},"location":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Location","description":"The location of the user."},"website":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Website","description":"The website of the user."},"social_handles":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5,"description":"List of social media handles."},{"type":"null"}],"title":"Social Handles","description":"The social handles of the user."}},"type":"object","required":["email","display_name"],"title":"CreateUserPayload"},"CredentialsRequest":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"subject_token":{"type":"string","title":"Subject Token"},"subject_token_type":{"type":"string","title":"Subject Token Type"},"requested_token_type":{"type":"string","title":"Requested Token Type","default":"urn:ietf:params:oauth:token-type:access_token"},"integration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Integration Id"}},"type":"object","required":["grant_type","subject_token","subject_token_type"],"title":"CredentialsRequest"},"CredentialsResponse":{"properties":{"next_refresh_time":{"type":"string","format":"date-time","title":"Next Refresh Time"},"token":{"$ref":"#/components/schemas/CredentialsTokenResponse"}},"type":"object","required":["next_refresh_time","token"],"title":"CredentialsResponse"},"CredentialsTokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"issued_token_type":{"type":"string","title":"Issued Token Type","default":"urn:ietf:params:oauth:token-type:access_token"},"token_type":{"type":"string","title":"Token Type"},"expires_in":{"type":"integer","minimum":0.0,"title":"Expires In","description":"Seconds until the access token expires."}},"type":"object","required":["access_token","token_type","expires_in"],"title":"CredentialsTokenResponse"},"CustomerBillingInfo":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of customer in Stripe."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"The email of the customer in Stripe"},"billing_address":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Billing Address","description":"The address of the customer in Stripe."},"tax_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Id","description":"The Tax ID of the customer in Stripe."}},"type":"object","required":["billing_address"],"title":"CustomerBillingInfo"},"DCVState":{"type":"string","enum":["provisioning","ready","error"],"title":"DCVState"},"Databricks":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://{workspace_host}/oidc/oauth2/v2.0/authorize"},"token_uri":{"type":"string","title":"Token Uri","default":"https://{workspace_host}/oidc/oauth2/v2.0/token"},"template":{"type":"string","const":"databricks","title":"Template","default":"databricks"},"workspace_host":{"type":"string","maxLength":1024,"title":"Workspace Host"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"all-apis sql offline_access openid profile email"}},"type":"object","required":["client_id","workspace_host"],"title":"Databricks"},"DefaultFlagEntitlement":{"additionalProperties":true,"type":"object"},"DefaultMaxEntitlement":{"additionalProperties":true,"type":"object"},"DefaultMinEntitlement":{"additionalProperties":true,"type":"object"},"DnsRecordRecommendation":{"properties":{"type":{"type":"string","title":"Type","description":"The DNS record type, e.g. 'A', 'CNAME', 'TXT'."},"name":{"type":"string","title":"Name","description":"The DNS record name as subdomain (e.g. 'foo', '_acme-challenge', or '@' for apex domains). Ready to copy-paste into DNS providers"},"zone":{"type":"string","title":"Zone","description":"The DNS zone/base domain (e.g. 'mydomain.com')"},"value":{"type":"string","title":"Value","description":"The DNS record value"}},"type":"object","required":["type","name","zone","value"],"title":"DnsRecordRecommendation"},"Domain":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The ID of the account that owns the domain."},"name":{"type":"string","title":"Name","description":"The name of the domain."},"wildcard":{"type":"boolean","title":"Wildcard","description":"Whether or not the domain is a wildcard domain."},"status":{"$ref":"#/components/schemas/DomainStatus","description":"The status of the domain."},"content_count":{"type":"integer","title":"Content Count","description":"How many pieces of content are using this domain."},"full_name":{"type":"string","title":"Full Name","description":"Same value as `name` unless it's a wildcard domain. If it's a wildcard domain it will be '*.name'."}},"type":"object","required":["id","created_time","updated_time","account_id","name","wildcard","status","content_count","full_name"],"title":"Domain"},"DomainStatus":{"type":"string","enum":["verified","verified_warning","unverified"],"title":"DomainStatus"},"DomainVerification":{"properties":{"domain":{"$ref":"#/components/schemas/Domain"},"routing_status":{"$ref":"#/components/schemas/RoutingStatus","description":"Status of DNS routing for the domain"},"certificate_status":{"$ref":"#/components/schemas/CertificateStatus","description":"Status of TLS certificate for the domain"}},"type":"object","required":["domain","routing_status","certificate_status"],"title":"DomainVerification"},"EntitlementType":{"type":"string","enum":["account_publish_private_repo_flag","account_private_content_flag","account_apps_max","account_cpu_max","account_memory_max","account_private_link_flag","account_bundle_max_bytes","account_content_schedule_flag","account_domain_max","account_oauth_integration_max","account_sso_flag","account_seat_max","account_raw_usage_flag","account_monthly_credits_max"],"title":"EntitlementType"},"EnvironmentManagement":{"type":"string","enum":["platform","app"],"title":"EnvironmentManagement"},"Filepath":{"properties":{"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"The full path of the repository and reference."}},"type":"object","title":"Filepath"},"GitHubApp":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"github_account":{"type":"string","title":"Github Account","description":"The GitHub account login associated with the app."},"installation_id":{"type":"integer","title":"Installation Id","description":"The GitHub app's installation ID."},"permissions":{"additionalProperties":{"type":"string"},"type":"object","title":"Permissions","description":"The permissions granted to the GitHub app."}},"type":"object","required":["id","created_time","updated_time","github_account","installation_id","permissions"],"title":"GitHubApp"},"GitHubLinkSourceProviderPayload":{"properties":{"provider":{"type":"string","const":"github","title":"Provider","description":"The source provider to link to.","default":"github"},"installation_id":{"type":"integer","title":"Installation Id","description":"The installation ID of the GitHub app."}},"type":"object","required":["installation_id"],"title":"GitHubLinkSourceProviderPayload"},"GitHubRepoVisibility":{"type":"string","enum":["public","private","internal"],"title":"GitHubRepoVisibility"},"GitHubUnlinkSourceProviderPayload":{"properties":{"provider":{"type":"string","const":"github","title":"Provider","description":"The source provider to link to.","default":"github"},"installation_id":{"type":"integer","title":"Installation Id","description":"The installation ID of the GitHub app."}},"type":"object","required":["installation_id"],"title":"GitHubUnlinkSourceProviderPayload"},"GitRefType":{"type":"string","enum":["branch","tag","commit"],"title":"GitRefType"},"GoogleBigQuery":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://accounts.google.com/o/oauth2/auth"},"token_uri":{"type":"string","title":"Token Uri","default":"https://oauth2.googleapis.com/token"},"template":{"type":"string","const":"bigquery","title":"Template","default":"bigquery"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigquery.insertdata"}},"type":"object","required":["client_id"],"title":"GoogleBigQuery"},"GoogleDrive":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://accounts.google.com/o/oauth2/auth"},"token_uri":{"type":"string","title":"Token Uri","default":"https://oauth2.googleapis.com/token"},"template":{"type":"string","const":"drive","title":"Template","default":"drive"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"https://www.googleapis.com/auth/drive"}},"type":"object","required":["client_id"],"title":"GoogleDrive"},"GoogleSheets":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://accounts.google.com/o/oauth2/auth"},"token_uri":{"type":"string","title":"Token Uri","default":"https://oauth2.googleapis.com/token"},"template":{"type":"string","const":"sheets","title":"Template","default":"sheets"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive"}},"type":"object","required":["client_id"],"title":"GoogleSheets"},"GoogleVertexAI":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://accounts.google.com/o/oauth2/auth"},"token_uri":{"type":"string","title":"Token Uri","default":"https://oauth2.googleapis.com/token"},"template":{"type":"string","const":"vertex-ai","title":"Template","default":"vertex-ai"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"https://www.googleapis.com/auth/cloud-platform"}},"type":"object","required":["client_id"],"title":"GoogleVertexAI"},"Grouping":{"type":"string","enum":["none","content"],"title":"Grouping","description":"How to break down results within an account- or author-filtered query.\n\nWhich filters each grouping is available for is `GROUPABLE_WITHIN`, below."},"ImageFormat":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp"],"title":"ImageFormat"},"Interval":{"type":"string","enum":["1m","1h","1d","1w","1mo"],"title":"Interval","description":"Time-bucket width for usage series queries."},"InvitationUser":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the user."},"display_name":{"type":"string","title":"Display Name","description":"The display name of the user."}},"type":"object","required":["id","display_name"],"title":"InvitationUser"},"License":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"type":{"$ref":"#/components/schemas/LicenseType","description":"The license type.","default":"free"},"compute_credits_exceeded_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Compute Credits Exceeded Until","description":"The moment until which usage-generating activity is paused because the account exceeded its compute-credit allotment (= billing cycle end). Null when not paused."},"compute_credits_exceeded":{"type":"boolean","title":"Compute Credits Exceeded","description":"Whether the account has exceeded its compute credit allotment, i.e. `compute_credits_exceeded_until` is in the future.","default":false},"compute_credits_warning_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Compute Credits Warning Until","description":"The moment until which the account is considered to be approaching its compute-credit limit (= billing cycle end): the usage-enforcement job won't re-send the warning email before this, and the app can use it to show an 'approaching your limit' banner. Null if not currently in the warning state."},"compute_credits_warned":{"type":"boolean","title":"Compute Credits Warned","description":"Whether the account has been warned about approaching its compute credit allotment this cycle, i.e. `compute_credits_warning_until` is in the future.","default":false},"compute_credits_offset":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Compute Credits Offset","description":"A granted, time-limited amount of bonus compute credits that nets against the account's computed usage while active. Null when no grant is set."},"compute_credits_offset_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Compute Credits Offset Until","description":"The moment until which `compute_credits_offset` is active. Typically the billing cycle end, but any future moment is accepted. Null when no grant is set."},"compute_credits_offset_active":{"type":"boolean","title":"Compute Credits Offset Active","description":"Whether a granted credit offset is currently active, i.e. `compute_credits_offset` is positive and `compute_credits_offset_until` is in the future.","default":false},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The associated account id."},"cycle_anchor":{"type":"string","format":"date-time","title":"Cycle Anchor","description":"The cycle anchor for the license."},"activates":{"type":"string","format":"date-time","title":"Activates","description":"The date the license became active."},"cancels":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancels","description":"The date the license cancels."},"entitlements":{"additionalProperties":true,"propertyNames":{"$ref":"#/components/schemas/EntitlementType"},"type":"object","title":"Entitlements","description":"The entitlements dict for the license."},"cycle_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cycle Start Date","description":"The start of the current cycle date"},"cycle_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cycle End Date","description":"The end of the current cycle date"}},"type":"object","required":["id","created_time","updated_time","account_id","cycle_anchor","activates"],"title":"License"},"LicenseType":{"type":"string","enum":["free","individual_basic","individual_basic_annual","individual_enhanced","individual_enhanced_annual","organization_advanced","organization_advanced_annual","individual_custom","organization_custom","organization_enterprise"],"title":"LicenseType"},"LinkLucidAccountPayload":{"properties":{"lucid_account_id":{"type":"integer","title":"Lucid Account Id","description":"The shinyapps.io account id to link."},"lucid_access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lucid Access Token","description":"A lucid-auth OAuth access token belonging to the calling user, used to verify the user owns the shinyapps.io account and to read its subscription details. If omitted, ownership is verified via the vivid user's linked lucid identity."}},"type":"object","required":["lucid_account_id"],"title":"LinkLucidAccountPayload"},"ListResults_AccountInvitation_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountInvitation"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[AccountInvitation]"},"ListResults_AccountTransfer_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountTransfer"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[AccountTransfer]"},"ListResults_AccountWithRedactedFields_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountWithRedactedFields"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[AccountWithRedactedFields]"},"ListResults_ContentInvitation_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentInvitation"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[ContentInvitation]"},"ListResults_ContentSchedule_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentSchedule"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[ContentSchedule]"},"ListResults_ContentWithPermissionGatedFields_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ContentWithPermissionGatedFields"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[ContentWithPermissionGatedFields]"},"ListResults_Domain_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Domain"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[Domain]"},"ListResults_OAuthIntegration_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/OAuthIntegration"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[OAuthIntegration]"},"ListResults_Revision_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Revision"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[Revision]"},"ListResults_ShinyAppsApplication_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ShinyAppsApplication"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[ShinyAppsApplication]"},"ListResults_UserAccountRole_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserAccountRole"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[UserAccountRole]"},"ListResults_UserContentRole_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserContentRole"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[UserContentRole]"},"ListResults_User_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/User"},"type":"array","title":"Data","description":"The retrieved data."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The total number of items that match the filter. Will be `null` if `include_total` in given filter is `false`."},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset","description":"The offset of the data."}},"type":"object","required":["data"],"title":"ListResults[User]"},"LoginUrlResponse":{"properties":{"url":{"type":"string","title":"Url","description":"The OAuth authorization URL to redirect the user to."}},"type":"object","required":["url"],"title":"LoginUrlResponse"},"LucidAccount":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The Connect Cloud account id this mapping is for."},"lucid_account_id":{"type":"integer","title":"Lucid Account Id","description":"The shinyapps.io account id."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The shinyapps.io account name (URL slug)."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Human-friendly shinyapps.io account name, if set."},"type":{"anyOf":[{"$ref":"#/components/schemas/AccountType"},{"type":"null"}],"description":"shinyapps.io account type (individual or organization)."},"subscription_type":{"anyOf":[{"$ref":"#/components/schemas/LucidSubscriptionType"},{"type":"null"}],"description":"The shinyapps.io subscription tier; null when lucid-server does not report a known tier."},"owner":{"anyOf":[{"$ref":"#/components/schemas/LucidAccountOwner"},{"type":"null"}],"description":"The shinyapps.io user who owns this account, so callers can tell which shinyapps.io identity a linked account came from. Null when lucid-server does not report an owner."}},"type":"object","required":["id","created_time","updated_time","account_id","lucid_account_id"],"title":"LucidAccount"},"LucidAccountOwner":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Null when lucid-server does not report the owner's email to us."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"picture_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture Url"}},"type":"object","required":["id"],"title":"LucidAccountOwner","description":"The shinyapps.io user who owns a shinyapps.io account.\n\nDistinct from LucidUserDisplay, which describes the calling user and so\nalways has an email. This is a third party, and lucid-server only reports\ntheir email to a caller permitted to see it, so `email` may be null."},"LucidApplicationStatus":{"type":"string","enum":["pending","running","terminated","sleeping","purged"],"title":"LucidApplicationStatus","description":"lucid-server application status.\n\nThe full set lucid-server reports, mirroring lucid-core's\n`ApplicationStatus`. lucid-server owns these values; if it ever adds one,\nthis enum (and the migration UI) must be updated to match."},"LucidApplicationType":{"type":"string","enum":["shiny","connect","ide","jupyter","static","positron"],"title":"LucidApplicationType","description":"lucid-server application type.\n\nThe full set lucid-server reports, mirroring lucid-server's\n`ApplicationType`. The shinyapps migration only deals with `SHINY` apps\n(the list endpoint filters on it), but the field carries whatever\nlucid-server returns. lucid-server owns these values; if it ever adds one,\nthis enum must be updated to match."},"LucidOAuthCodePayload":{"properties":{"code":{"type":"string","title":"Code"},"redirect_uri":{"type":"string","title":"Redirect Uri","default":"https://connect.posit.cloud/auth"}},"type":"object","required":["code"],"title":"LucidOAuthCodePayload"},"LucidSubscriptionType":{"type":"string","enum":["beta","free","starter","basic","standard","professional"],"title":"LucidSubscriptionType"},"LucidUserDisplay":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"picture_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture Url"}},"type":"object","required":["id","email","display_name"],"title":"LucidUserDisplay","description":"Safe subset of LucidUser for API responses — excludes GitHub credentials."},"ManagementPortalResponse":{"properties":{"portal_url":{"type":"string","title":"Portal Url","description":"The URL to the Stripe billing portal session to manage payment methods, invoices, etc."}},"type":"object","required":["portal_url"],"title":"ManagementPortalResponse"},"MemberUser":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The id of the member user."},"display_name":{"type":"string","title":"Display Name","description":"The display name of the member user."},"email":{"type":"string","title":"Email","description":"The email of the member user."},"avatar_url":{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$","title":"Avatar Url","description":"The URL of the user's avatar."}},"type":"object","required":["id","display_name","email","avatar_url"],"title":"MemberUser"},"MetricValues":{"properties":{"wall_clock":{"type":"number","title":"Wall Clock","description":"Wall-clock time elapsed, in seconds."},"credits":{"type":"number","title":"Credits","description":"Credits consumed."},"cpu_utilization_ratio_to_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu Utilization Ratio To Limit","description":"Duration-weighted CPU utilization as a fraction of the CPU limit in the point, or `null` when no frame in the point reported CPU utilization or a CPU limit."},"memory_utilization_ratio_to_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Utilization Ratio To Limit","description":"Duration-weighted memory utilization as a fraction of the memory limit in the point, or `null` when no frame in the point reported memory utilization or a memory limit."},"connections":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Connections","description":"Duration-weighted average number of concurrent connections in the point's window, averaged across only frames that reported a count, or `null` when no frame in the point reported one. A reported zero remains `0`; the counter is schema-version-2 and serve-phase only. This is an average across reporting frames in the group, so it is a per-entity count only at `group_by=content` (or for a content-filtered query), not a summed connection total at account or author scope."},"processes":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Processes","description":"Duration-weighted average number of worker processes in the point's window, averaged across only frames that reported a count, or `null` when no frame in the point reported one. A reported zero remains `0`. This is an average across reporting frames in the group, so it is a per-entity count only at `group_by=content` (or for a content-filtered query), not a summed process total at account or author scope."},"cpu_limit":{"type":"number","title":"Cpu Limit","description":"The CPU limit in force during the bucket, in cores -- the peak `MAX(cpu_limit_cores)` gauge over the bucket, so it reflects the limit actually applied in-window rather than the content's current configuration. `0` only when no frame in the bucket reported a limit; a zero-usage boundary bucket can still carry the limit that was in force. This is the peak limit per *group*, so it's a per-entity allocation only at `group_by=content` (or a content-filtered query); at account/author scope it's the single largest content's limit in the bucket, not a summed allocation."},"memory_limit":{"type":"number","title":"Memory Limit","description":"The memory limit in force during the bucket, in bytes -- the peak `MAX(mem_limit_bytes)` gauge over the bucket (bytes, matching the raw gauge; divide by 1048576 for MiB). `0` only when no frame in the bucket reported a limit; a zero-usage boundary bucket can still carry the limit that was in force. This is the peak limit per *group*, so it's a per-entity allocation only at `group_by=content` (or a content-filtered query); at account/author scope it's the single largest content's limit in the bucket, not a summed allocation."}},"type":"object","required":["wall_clock","credits","cpu_utilization_ratio_to_limit","memory_utilization_ratio_to_limit","connections","processes","cpu_limit","memory_limit"],"title":"MetricValues","description":"The metric values a `/usage/series` point carries: wall-clock and credit totals,\nduration-weighted CPU, memory, connection, and process averages, and in-window limit gauges\n(`cpu_limit`, `memory_limit`). The request has no `metrics` field to narrow this down, so every\npoint carries this same fixed set -- the union of what the two summary endpoints expose plus the\nlimit gauges, minus the raw ingredients that only exist to feed the summary averages."},"MetricsGroupResult":{"properties":{"group":{"oneOf":[{"$ref":"#/components/schemas/UsageContentGroup"},{"$ref":"#/components/schemas/AccountGroup"},{"$ref":"#/components/schemas/AuthorGroup"}],"title":"Group","description":"The entity this row describes. A content item when results are grouped by content; otherwise the queried entity itself. Note the type follows the grouping when one is applied and the filter otherwise, so a `content`-filtered ungrouped query still yields a `content` group.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/AccountGroup","author":"#/components/schemas/AuthorGroup","content":"#/components/schemas/UsageContentGroup"}}},"values":{"$ref":"#/components/schemas/UtilizationValues"}},"type":"object","required":["group","values"],"title":"MetricsGroupResult","description":"One row of a `POST /metrics/summary` response: a content group (with cpu/memory limits) and\nits utilization ratios."},"MetricsSummaryQuery":{"properties":{"view":{"$ref":"#/components/schemas/MetricsSummaryView-Input","description":"Filter, grouping, and ordering for this query."},"from":{"type":"string","format":"date-time","title":"From","description":"Start of the query window (inclusive)."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the query window (exclusive)."},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","description":"Maximum number of groups to return.","default":100},"offset":{"type":"integer","minimum":0.0,"title":"Offset","description":"Number of groups to skip before the returned page.","default":0},"include_total":{"type":"boolean","title":"Include Total","description":"Also compute `total`, the number of groups this query can return. Costs an extra query.","default":false}},"type":"object","required":["view","from","until"],"title":"MetricsSummaryQuery","description":"`POST /metrics/summary` request: a `UsageQuery` whose `view` narrows `sort` to the metrics\nendpoint's fields (see `MetricsSummaryView`)."},"MetricsSummaryResponse":{"properties":{"from":{"type":"string","format":"date-time","title":"From"},"until":{"type":"string","format":"date-time","title":"Until"},"view":{"$ref":"#/components/schemas/MetricsSummaryView-Output","description":"The view that answered the query, echoing the request's own `view` with `sort` resolved to the ordering actually applied."},"results":{"items":{"$ref":"#/components/schemas/MetricsGroupResult"},"type":"array","title":"Results"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The number of content groups this query can page through, present only when `include_total` was set. The metrics view counts every active content item in the filtered scope, including those with no usage in the window (which come back with null utilization ratios)."}},"type":"object","required":["from","until","view","results"],"title":"MetricsSummaryResponse"},"MetricsSummarySort":{"properties":{"direction":{"$ref":"#/components/schemas/SortDirection","description":"Ordering direction; defaults to descending.","default":"desc"},"field":{"type":"string","enum":["content_title","content_type","last_published","cpu_utilization_ratio_to_limit","memory_utilization_ratio_to_limit","connections","processes"],"title":"Field","description":"Which key to order rows by.","default":"cpu_utilization_ratio_to_limit"}},"type":"object","title":"MetricsSummarySort","description":"How to order the group rows of a `POST /metrics/summary` query. Legal fields:\n`content_title`, `content_type`, `last_published`, `cpu_utilization_ratio_to_limit`,\n`memory_utilization_ratio_to_limit`, `connections`, `processes`;\n`direction` defaults to **descending**. It shares `UsageSortBase`; see `UsageSummarySort` for\nwhy the default is desc (partial-sort composition). The omit-sort default\n(`cpu_utilization_ratio_to_limit` descending) is on `MetricsSummaryView._default_sort`."},"MetricsSummaryView-Input":{"properties":{"group_by":{"$ref":"#/components/schemas/Grouping","description":"`none` for a single total for the filtered entity; `content` for a breakdown by content.","default":"none"},"filter":{"oneOf":[{"$ref":"#/components/schemas/UsageSummaryAccountFilter"},{"$ref":"#/components/schemas/UsageContentFilter"},{"$ref":"#/components/schemas/UsageSummaryAuthorFilter"}],"title":"Filter","description":"The single entity to report usage for.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/UsageSummaryAccountFilter","author":"#/components/schemas/UsageSummaryAuthorFilter","content":"#/components/schemas/UsageContentFilter"}}},"sort":{"anyOf":[{"$ref":"#/components/schemas/MetricsSummarySort"},{"type":"null"}],"description":"How to order the group rows. Omit for the endpoint's default. Only meaningful when `group_by` is set -- an ungrouped query returns exactly one row. Responses echo this object back with `sort` filled in, so it always reports the ordering applied."}},"type":"object","required":["filter"],"title":"MetricsSummaryView","description":"`UsageView` for `POST /metrics/summary`: narrows `sort` to the metrics endpoint's fields and\ndefaults a grouped query to `cpu_utilization_ratio_to_limit` descending."},"MetricsSummaryView-Output":{"properties":{"group_by":{"$ref":"#/components/schemas/Grouping","description":"`none` for a single total for the filtered entity; `content` for a breakdown by content.","default":"none"},"filter":{"oneOf":[{"$ref":"#/components/schemas/UsageSummaryAccountFilter"},{"$ref":"#/components/schemas/UsageContentFilter"},{"$ref":"#/components/schemas/UsageSummaryAuthorFilter"}],"title":"Filter","description":"The single entity to report usage for.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/UsageSummaryAccountFilter","author":"#/components/schemas/UsageSummaryAuthorFilter","content":"#/components/schemas/UsageContentFilter"}}},"sort":{"anyOf":[{"$ref":"#/components/schemas/MetricsSummarySort"},{"type":"null"}],"description":"How to order the group rows. Omit for the endpoint's default. Only meaningful when `group_by` is set -- an ungrouped query returns exactly one row. Responses echo this object back with `sort` filled in, so it always reports the ordering applied."}},"type":"object","required":["filter"],"title":"MetricsSummaryView","description":"`UsageView` for `POST /metrics/summary`: narrows `sort` to the metrics endpoint's fields and\ndefaults a grouped query to `cpu_utilization_ratio_to_limit` descending."},"MigratePayload":{"properties":{"lucid_account_id":{"type":"integer","title":"Lucid Account Id","description":"The shinyapps.io account ID."},"action":{"$ref":"#/components/schemas/MigrationAction","description":"Whether to migrate or finalize the apps."},"lucid_app_ids":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Lucid App Ids","description":"shinyapps.io application IDs to process."},"unstage":{"type":"boolean","title":"Unstage","description":"When true, lucid2vivid unstages (scales to zero) each migrated content once it is published, so a bulk migration does not leave many containers running. Applies to migrate actions; ignored for finalize/unmigrate.","default":false}},"type":"object","required":["lucid_account_id","action","lucid_app_ids"],"title":"MigratePayload"},"MigrateResponse":{"properties":{"enqueued":{"type":"integer","title":"Enqueued"},"skipped_already_in_progress":{"type":"integer","title":"Skipped Already In Progress"},"skipped_already_migrated":{"type":"integer","title":"Skipped Already Migrated"},"skipped_not_migrated":{"type":"integer","title":"Skipped Not Migrated"},"request_ids":{"items":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"type":"array","title":"Request Ids"}},"type":"object","required":["enqueued","skipped_already_in_progress","skipped_already_migrated","skipped_not_migrated","request_ids"],"title":"MigrateResponse"},"MigrationAction":{"type":"string","enum":["migrate","finalize","unmigrate"],"title":"MigrationAction"},"MigrationErrorCode":{"type":"string","enum":["app_ownership_mismatch","bundle_download_failed","invalid_lucid_account_id","manifest_invalid","unsupported_app_mode","lucid_app_not_found","lucid2vivid_unreachable","publish_failed","publish_timeout","redirect_setup_failed","lucid_terminate_failed","redirect_clear_failed","lucid_redeploy_failed","internal_error","content_deleted"],"title":"MigrationErrorCode"},"MigrationRequestRecord":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"action":{"$ref":"#/components/schemas/MigrationAction"},"status":{"$ref":"#/components/schemas/MigrationStatus"},"attempts":{"type":"integer","title":"Attempts","description":"How many times lucid2vivid has tried this request."},"error_code":{"anyOf":[{"$ref":"#/components/schemas/MigrationErrorCode"},{"type":"null"}],"description":"Set when the request failed or is retrying."},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error","description":"Raw error text from the last attempt, for engineers."},"migration_warnings":{"items":{"type":"string"},"type":"array","title":"Migration Warnings","description":"Compatibility warning codes captured on a successful migrate."},"content_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id","description":"vivid-api Content this request acted on; null for a migrate that has not succeeded."},"lucid_deployment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lucid Deployment Id","description":"shinyapps.io deployment id that was migrated; set once a migrate knows it, else null."},"vivid_revision_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Vivid Revision Id","description":"vivid revision the migration produced; set once a migrate knows it, else null."},"created_time":{"type":"string","format":"date-time","title":"Created Time"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time"}},"type":"object","required":["id","action","status","attempts","created_time","updated_time"],"title":"MigrationRequestRecord","description":"A single migration request row in an application's migration history."},"MigrationState":{"type":"string","enum":["NOT_STARTED","QUEUED","IN_PROGRESS","PUBLISH_FAILED","PREVIEW","FINALIZING","COMPLETE"],"title":"MigrationState","description":"Where a single shinyapps.io application is in the migration flow.\n\nDoubles as the list endpoint's view filter: passing one of the\nfilterable states (IN_PROGRESS, PUBLISH_FAILED, PREVIEW, COMPLETE) lists\nthe applications in that state, while omitting the filter lists every\napplication.\n\nQUEUED covers a submitted migrate request that has no Content yet. It is\nnot independently filterable, but `?migration_state=IN_PROGRESS` returns\nQUEUED apps alongside genuinely in-progress ones: both are apps whose\nfirst migration is underway, and the UI's \"In Progress\" tab wants them\ntogether. QUEUED apps have no Content row, so a name captured at enqueue\ntime (LucidMigrationRequest.lucid_app_name) gives them something to sort\nand paginate by; the IN_PROGRESS view is a union of Content rows in the\nin-progress DB view and those queued requests.\n\nNOT_STARTED and FINALIZING remain per-row states only and are rejected as\na `?migration_state=` filter, since no query can page them: NOT_STARTED\napps have no migration record at all, and FINALIZING covers a submitted\nfinalize request on an app that has been migrated (has a Content,\ncurrent_revision_id is not null, finalized=False) but not yet finalized —\ndeliberately not PREVIEW, since a finalize-in-flight app and a\nnever-finalized app would otherwise be indistinguishable to the UI.\nFINALIZING rows do appear in the PREVIEW filter's results, though:\nPREVIEW's underlying query also matches a finalize-in-flight app, so those\nrows are relabeled FINALIZING to stay consistent with the unfiltered list\nand the per-app detail endpoint, even though `?migration_state=FINALIZING`\nitself is rejected."},"MigrationStatus":{"type":"string","enum":["pending","in_flight","succeeded","failed"],"title":"MigrationStatus"},"OAuthIntegration":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"The ID of the account that owns the integration."},"name":{"type":"string","maxLength":1024,"minLength":1,"title":"Name","description":"A human-readable name for the integration."},"description":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Description","description":"An optional description of the integration."},"template":{"$ref":"#/components/schemas/OAuthIntegrationTemplate","description":"The OAuth provider template identifier."},"config":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Config","description":"The integration configuration. Secret field values are `None`."}},"type":"object","required":["id","created_time","updated_time","account_id","name","template"],"title":"OAuthIntegration","description":"Response schema for an OAuth integration."},"OAuthIntegrationTemplate":{"type":"string","enum":["aws","azure","azure-openai","databricks","bigquery","drive","sheets","vertex-ai","snowflake","supabase"],"title":"OAuthIntegrationTemplate"},"OAuthSessionInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"oauth_integration_id":{"type":"string","format":"uuid","title":"Oauth Integration Id","description":"The ID of the OAuth integration this session belongs to."},"needs_login":{"type":"boolean","title":"Needs Login","description":"True if the user needs to re-authenticate with this integration.","readOnly":true}},"type":"object","required":["id","created_time","updated_time","oauth_integration_id","needs_login"],"title":"OAuthSessionInfo","description":"Minimal OAuth session info for embedding in User responses."},"OperatingSystem":{"type":"string","enum":["jammy"],"title":"OperatingSystem"},"OverrideFlagEntitlement":{"additionalProperties":true,"type":"object"},"OverrideMaxEntitlement":{"additionalProperties":true,"type":"object"},"OverrideMinEntitlement":{"additionalProperties":true,"type":"object"},"Permission":{"type":"string","enum":["account:create","account:read","account:read:internal","account:update","account:delete:soft","account:delete:hard","account.name:create:bypass_reserved","account.name:update:bypass_reserved","account.license:read","account.license:update","account.license:update:override","account.license.entitlement:update","account.roles:create","account.roles:delete","account.roles:read","account.roles.email:read","account.roles:update","account.roles:update:to_owner","account:suspend","account:resume","account:transfer","account.contact_support:write","account.source_provider:search","account.invitation:read","account.invitation:create","account.invitation:update","account.invitation:delete","account.invitation:accept","account.type:update","account.controls:read","account.controls:update","account.usage:read","account.lucid:link","account.lucid:link:non_owner","account.lucid:migrate","content:create","content:read","content:read:internal","content:update","content:delete:soft","content:delete:hard","content:publish","content.private_link_token:read","content.private_link_token:create","content.roles:create","content.roles:delete","content.roles:read","content.roles.email:read","content.roles:update","content.invitation:read","content.invitation:create","content.invitation:update","content.invitation:delete","content.access:update:public","content.invitation:create:external_guest","content.usage:read","user:create","user:read","user:read:internal","user:read:private","user:update","user.system_role:update","user:delete:soft","user:delete:hard","revision:delete:hard","revision.logs:create","revision.logs:read","revision.logs:delete:hard","account_role:read","domain:read","domain:create","domain:update","domain:delete","integration:create","integration:read","integration:update","integration:delete","system.usage:view"],"title":"Permission"},"PythonVersion":{"type":"string","enum":["3.8","3.9","3.10","3.11","3.12","3.13","3.14"],"title":"PythonVersion"},"QuartoVersion":{"type":"string","enum":["1.4.553"],"title":"QuartoVersion"},"RVersion":{"type":"string","enum":["4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.1.0","4.1.1","4.1.2","4.1.3","4.2.0","4.2.1","4.2.2","4.3.0","4.3.1","4.3.2","4.3.3","4.4.0","4.4.1","4.4.2","4.4.3","4.5.0","4.5.1","4.5.2","4.5.3","4.6.0"],"title":"RVersion"},"Ref":{"properties":{"type":{"$ref":"#/components/schemas/GitRefType","description":"The type of the Git reference."},"name":{"type":"string","title":"Name","description":"The name of the Git reference, such as a tag or branch name."},"commit":{"$ref":"#/components/schemas/RefCommit","description":"The commit that the reference points to."}},"type":"object","required":["type","name","commit"],"title":"Ref"},"RefCommit":{"properties":{"sha":{"type":"string","title":"Sha","description":"The SHA of the commit."},"url":{"type":"string","title":"Url","description":"The URL of the commit."}},"type":"object","required":["sha","url"],"title":"RefCommit"},"RefreshBundleUploadUrlResponse":{"properties":{"upload_url":{"type":"string","title":"Upload Url","description":"Refreshed presigned URL for uploading the revision bundle"}},"type":"object","required":["upload_url"],"title":"RefreshBundleUploadUrlResponse"},"Repository":{"properties":{"full_name":{"type":"string","title":"Full Name","description":"The full name of the repository."},"default_branch":{"type":"string","title":"Default Branch","description":"The default branch of the repository. Most likely `main` or `master`."},"visibility":{"$ref":"#/components/schemas/GitHubRepoVisibility","description":"The visibility of the repository."},"can_auto_publish":{"type":"boolean","title":"Can Auto Publish","description":"Whether the repository can be auto-published."}},"type":"object","required":["full_name","default_branch","visibility","can_auto_publish"],"title":"Repository"},"RequestPythonVersion":{"type":"string","enum":["3.9","3.10","3.11","3.12","3.13","3.14"],"title":"RequestPythonVersion","description":"The Python versions that can be requested for content. If an unsupported version is requested then we\ndefault to the lowest supported version."},"RequestResult":{"type":"string","enum":["success","failure"],"title":"RequestResult"},"ResendInvitationPayload":{"properties":{},"type":"object","title":"ResendInvitationPayload"},"ResourceAccess":{"type":"string","enum":["private","view_team_edit_private","view_team_edit_team","public","view_public_edit_team"],"title":"ResourceAccess"},"ResourceState":{"type":"string","enum":["active","deleted"],"title":"ResourceState"},"ResourceType":{"type":"string","enum":["log_channel","content","accounts","users","revision","account-roles","domains","integrations"],"title":"ResourceType"},"Revision":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"content_id":{"type":"string","format":"uuid","title":"Content Id","description":"The ID of the content this revision belongs to."},"state":{"$ref":"#/components/schemas/ResourceState","description":"The state of the revision."},"status":{"anyOf":[{"$ref":"#/components/schemas/RevisionStatus"},{"type":"null"}],"description":"The status of the revision."},"primary_file":{"type":"string","maxLength":250,"minLength":1,"title":"Primary File","description":"The primary file for the revision."},"source_type":{"$ref":"#/components/schemas/SourceType","description":"The source type for the revision."},"source_provider":{"$ref":"#/components/schemas/SourceProvider","description":"The source provider for the revision."},"source_repository_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Repository Url","description":"The URL of the source repository for the revision."},"source_ref":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Source Ref","description":"The source reference for the revision."},"source_ref_type":{"anyOf":[{"$ref":"#/components/schemas/GitRefType"},{"type":"null"}],"description":"The source reference type for the revision."},"source_bundle_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Bundle Id","description":"The ID of the source bundle for the revision."},"source_bundle_upload_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Bundle Upload Url","description":"The upload URL for the source bundle."},"app_mode":{"anyOf":[{"$ref":"#/components/schemas/AppMode"},{"type":"null"}],"description":"The Connect app mode for the revision."},"content_type":{"$ref":"#/components/schemas/ContentType","description":"The content type for the revision."},"trigger":{"anyOf":[{"$ref":"#/components/schemas/RevisionTrigger"},{"type":"null"}],"description":"The trigger for the revision. Revisions triggered by github webhook are `automated`; others are `manual`."},"author_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Author Id","description":"The ID of the author of the revision."},"author":{"anyOf":[{"$ref":"#/components/schemas/AuthorInfo"},{"type":"null"}],"description":"Info on the author of the revision."},"memory":{"type":"integer","title":"Memory","description":"The memory limit, in MiB, for the revision."},"cpu":{"type":"number","title":"Cpu","description":"The CPU limit, in number of cores, for the revision."},"execution_time_limit":{"anyOf":[{"type":"integer","maximum":5760.0,"minimum":1.0},{"type":"null"}],"title":"Execution Time Limit","description":"The execution time limit, in minutes, for the revision."},"build_context":{"anyOf":[{"$ref":"#/components/schemas/BuildContext"},{"type":"null"}],"description":"The build context for the revision."},"operating_system":{"anyOf":[{"$ref":"#/components/schemas/OperatingSystem"},{"type":"null"}],"description":"The operating system for the revision."},"r_version":{"anyOf":[{"$ref":"#/components/schemas/RVersion"},{"type":"null"}],"description":"The R version for the revision."},"python_version":{"anyOf":[{"$ref":"#/components/schemas/PythonVersion"},{"type":"null"}],"description":"The Python version for the revision."},"python_environment_management":{"$ref":"#/components/schemas/EnvironmentManagement","description":"Who provisions the Python environment: 'platform' (Connect Cloud builds the venv at publish, the default) or 'app' (the app builds its own environment at runtime via reticulate). Settable at content creation and changeable afterward via a revision override on the content update endpoint; carried forward unchanged on republish and rebuild. The shinyapps.io migration sends 'app' for R apps whose original manifest has no Python section.","default":"platform"},"quarto_version":{"anyOf":[{"$ref":"#/components/schemas/QuartoVersion"},{"type":"null"}],"description":"The Quarto version for the revision."},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commit Sha","description":"The commit SHA for the revision."},"url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Url","description":"The URL where you can view the revision."},"publish_start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish Start Time","description":"The time the revision's 'publish_started' event occurred."},"publish_end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish End Time","description":"The time the revision's 'publish_completed' or 'publish_failed' event occurred."},"publish_result":{"anyOf":[{"$ref":"#/components/schemas/RequestResult"},{"type":"null"}],"description":"The result of the revision's publishing process."},"publish_error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Error Code","description":"The error code given if the 'publish_failed' event occurred."},"publish_error_args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Publish Error Args","description":"The error arguments given if the 'publish_failed' event occurred."},"publish_log_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Log Channel","description":"The log channel for the revision."},"publish_user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish User Agent","description":"The User-Agent header sent by the client that published this revision, as sent but truncated to 512 characters. Use it to attribute the publish to a client (e.g. a value starting with `rsconnect-python/` or `RSConnect/` came from rsconnect). Recorded when the publish is requested, so it stays set for a deferred or failed publish. Treat null as an unknown client rather than no client: it is null when no publish has been requested for the revision, when the client sent no User-Agent, when the republish was automated (GitHub webhook or schedule), and for every revision published before this field existed, which cannot be backfilled."},"checkpoint_snapshotted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Checkpoint Snapshotted Time","description":"The time the disk snapshot was created that the durable checkpoint is based on, in UTC."},"thumbnail_completed_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Thumbnail Completed Time","description":"The time the thumbnail screenshot was completed for this revision, in UTC."},"connect_options":{"$ref":"#/components/schemas/ConnectOptions-Output","description":"Connect options."},"type":{"type":"string","enum":["dynamic","static"],"title":"Type","description":"The content type of the revision. Either 'dynamic' or 'static'.","readOnly":true},"publish_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Error","description":"Returns a summary error message if the revision failed to publish.","readOnly":true},"publish_error_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Error Details","description":"Returns a detailed error message if the revision failed to publish.","readOnly":true}},"type":"object","required":["id","created_time","updated_time","content_id","state","primary_file","source_type","source_provider","content_type","memory","cpu","execution_time_limit","build_context","operating_system","r_version","python_version","quarto_version","commit_sha","url","publish_start_time","publish_end_time","publish_result","publish_error_code","publish_error_args","publish_log_channel","publish_user_agent","checkpoint_snapshotted_time","thumbnail_completed_time","type","publish_error","publish_error_details"],"title":"Revision"},"RevisionOverrides":{"properties":{"primary_file":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Primary File","description":"The primary file for the revision."},"source_type":{"anyOf":[{"$ref":"#/components/schemas/SourceType"},{"type":"null"}],"description":"The source type for the revision."},"source_provider":{"anyOf":[{"$ref":"#/components/schemas/SourceProvider"},{"type":"null"}],"description":"The source provider for the revision."},"source_repository_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Repository Url","description":"The URL of the source repository for the revision."},"source_ref":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Source Ref","description":"The source reference for the revision."},"source_ref_type":{"anyOf":[{"$ref":"#/components/schemas/GitRefType"},{"type":"null"}],"description":"The source reference type for the revision."},"source_bundle_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Source Bundle Id","description":"The ID of the source bundle for the revision."},"source_bundle_upload_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Source Bundle Upload Url","description":"The upload URL for the source bundle."},"app_mode":{"anyOf":[{"$ref":"#/components/schemas/AppMode"},{"type":"null"}],"description":"The Connect app mode for the revision."},"content_type":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"description":"The content type for the revision."},"trigger":{"anyOf":[{"$ref":"#/components/schemas/RevisionTrigger"},{"type":"null"}],"description":"The trigger for the revision. Revisions triggered by github webhook are `automated`; others are `manual`."},"memory":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Memory","description":"The memory limit, in MiB, for the revision."},"cpu":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu","description":"The CPU limit, in number of cores, for the revision."},"execution_time_limit":{"anyOf":[{"type":"integer","maximum":5760.0,"minimum":1.0},{"type":"null"}],"title":"Execution Time Limit","description":"The execution time limit, in minutes, for the revision."},"operating_system":{"anyOf":[{"$ref":"#/components/schemas/OperatingSystem"},{"type":"null"}],"description":"The operating system for the revision."},"r_version":{"anyOf":[{"$ref":"#/components/schemas/RVersion"},{"type":"null"}],"description":"The R version for the revision."},"python_version":{"anyOf":[{"$ref":"#/components/schemas/RequestPythonVersion"},{"type":"null"}],"description":"The Python version for the revision."},"python_environment_management":{"anyOf":[{"$ref":"#/components/schemas/EnvironmentManagement"},{"type":"null"}],"description":"Who provisions the Python environment: 'platform' (Connect Cloud builds the venv at publish, the default) or 'app' (the app builds its own environment at runtime via reticulate). Settable at content creation and changeable afterward via a revision override on the content update endpoint; carried forward unchanged on republish and rebuild. The shinyapps.io migration sends 'app' for R apps whose original manifest has no Python section."},"quarto_version":{"anyOf":[{"$ref":"#/components/schemas/QuartoVersion"},{"type":"null"}],"description":"The Quarto version for the revision."},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commit Sha","description":"The commit SHA for the revision."},"secrets_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secrets Hash","description":"The hash of the secrets for the revision."},"connect_options":{"anyOf":[{"$ref":"#/components/schemas/ConnectOptions-Input"},{"type":"null"}],"description":"Connect options."}},"type":"object","title":"RevisionOverrides"},"RevisionStatus":{"type":"string","enum":["publish_deferred","publish_requested","publish_started","fetching","building","rendering","publishing","published"],"title":"RevisionStatus"},"RevisionTrigger":{"type":"string","enum":["automated","manual","scheduled"],"title":"RevisionTrigger"},"RobotsPolicy":{"type":"string","enum":["disallow_all","allow_all"],"title":"RobotsPolicy","description":"The default robots.txt policy served for a piece of content that does not supply its own."},"RoutingStatus":{"properties":{"usable":{"type":"boolean","title":"Usable","description":"True if traffic to the domain is observed to be routing to Posit.","default":false},"preferred":{"type":"boolean","title":"Preferred","description":"True if the user has configured exactly the DNS records recommended by Posit.","default":false},"verified_records":{"items":{"$ref":"#/components/schemas/DnsRecordRecommendation"},"type":"array","title":"Verified Records","description":"List of DNS records that have been configured and verified for the domain."},"add_records":{"items":{"$ref":"#/components/schemas/DnsRecordRecommendation"},"type":"array","title":"Add Records","description":"List of DNS records that should be added to create the preferred configuration for the domain."},"remove_records":{"items":{"$ref":"#/components/schemas/DnsRecordRecommendation"},"type":"array","title":"Remove Records","description":"List of DNS records that should be removed to create the preferred configuration for the domain."}},"type":"object","title":"RoutingStatus"},"Secret":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"name":{"type":"string","maxLength":250,"minLength":1,"pattern":"^[a-zA-Z_]+[a-zA-Z0-9_]*$","title":"Name","description":"The name of the secret. Must be alphanumeric and underscores only. May not start with a digit. May not be all underscores."},"value":{"type":"null","title":"Value","description":"The value of the secret. Always `None` since we don't retrieve the secret."}},"type":"object","required":["id","created_time","updated_time","name"],"title":"Secret"},"ShinyAppsAccount":{"properties":{"id":{"type":"integer","title":"Id","description":"The shinyapps.io (lucid-server) account id."},"name":{"type":"string","title":"Name","description":"The shinyapps.io account name (URL slug)."},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Human-friendly account name, if set."},"type":{"anyOf":[{"$ref":"#/components/schemas/AccountType"},{"type":"null"}],"description":"shinyapps.io account type (individual or organization); null if lucid-server reports an unknown value."},"subscription_type":{"anyOf":[{"$ref":"#/components/schemas/LucidSubscriptionType"},{"type":"null"}],"description":"The account's shinyapps.io subscription tier; null when lucid-server does not report a known tier."},"linked_account_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Linked Account Id","description":"The Connect Cloud account this shinyapps.io account is already linked to, or null if not yet linked."},"link_status":{"$ref":"#/components/schemas/ShinyAppsAccountLinkStatus","description":"Whether this shinyapps.io account is linked to the Connect Cloud account the request was scoped to (LINKED_TO_CURRENT_ACCOUNT), to a different one (LINKED_TO_OTHER_ACCOUNT), or not linked yet (NOT_LINKED)."}},"type":"object","required":["id","name","link_status"],"title":"ShinyAppsAccount","description":"A shinyapps.io account owned by the caller's linked lucid user.\n\nReturned by the \"my shinyapps accounts\" endpoint so the migration UI can\noffer the accounts the signed-in user already owns as the initial set to\nmigrate from — no OAuth round-trip required."},"ShinyAppsAccountLinkStatus":{"type":"string","enum":["NOT_LINKED","LINKED_TO_CURRENT_ACCOUNT","LINKED_TO_OTHER_ACCOUNT"],"title":"ShinyAppsAccountLinkStatus","description":"Whether a shinyapps.io account is already linked to a Connect Cloud account.\n\nComputed relative to the Connect Cloud account the migration UI is currently\nworking in (the `account_id` passed to the \"my shinyapps accounts\" endpoint),\nso the UI can tell which accounts are available to link and which are already\nspoken for."},"ShinyAppsAccountsResponse":{"properties":{"accounts":{"items":{"$ref":"#/components/schemas/ShinyAppsAccount"},"type":"array","title":"Accounts"},"user":{"anyOf":[{"$ref":"#/components/schemas/LucidUserDisplay"},{"type":"null"}]},"lucid_access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lucid Access Token"}},"type":"object","required":["accounts"],"title":"ShinyAppsAccountsResponse"},"ShinyAppsApplication":{"properties":{"id":{"type":"integer","title":"Id","description":"The shinyapps.io (lucid-server) application id."},"name":{"type":"string","title":"Name"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"status":{"anyOf":[{"$ref":"#/components/schemas/LucidApplicationStatus"},{"type":"null"}],"description":"lucid-server application status."},"type":{"$ref":"#/components/schemas/LucidApplicationType","description":"lucid-server application type."},"source_updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Source Updated Time","description":"When the source shinyapps.io application was last updated, from lucid-server. Null when the app has been hard-deleted upstream but a vivid-api Content row still references it."},"migration_updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Migration Updated Time","description":"When this application's migration was last acted on — the most recent migration request activity (enqueue, retry, success, or failure) for the app, regardless of action. Null when no migration has been attempted (migration_state=NOT_STARTED)."},"migration_state":{"$ref":"#/components/schemas/MigrationState","description":"Migration progress derived from vivid-api Content and Revision state."},"content_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Content Id","description":"vivid-api Content id when this application has been linked, else null."},"publish_log_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Log Channel","description":"Log channel for the most recent publish attempt; supports the 'publish logs' link."},"publish_error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Publish Error Code","description":"Most recent publish error code when migration_state is PUBLISH_FAILED."},"migration_issues":{"items":{"type":"string"},"type":"array","title":"Migration Issues","description":"Warning codes for compatibility issues found pre- or post-migration."},"source_deployment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Deployment Id","description":"The shinyapps.io deployment currently live on the source application (lucid application.deployment.id). Compare against migrated_deployment_id to tell whether the shinyapps app has been republished since migration."},"migrated_deployment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Migrated Deployment Id","description":"The shinyapps.io deployment id that was migrated, from the most recent succeeded migrate request, or from the most recent attempt of any status if none has succeeded. Null until a migrate got far enough to know it."},"migrated_revision_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Migrated Revision Id","description":"The vivid revision the migration produced, from the most recent succeeded migrate request, or from the most recent attempt of any status if none has succeeded. In PUBLISH_FAILED this is the revision that failed to publish. Null until a migrate got far enough to create a revision."},"current_revision_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Current Revision Id","description":"The content's current (promoted) revision id. Compare against migrated_revision_id to tell whether the content has been republished on Connect Cloud since migration; that comparison is only meaningful once a publish has been promoted, since this is null before then."}},"type":"object","required":["id","name","type","migration_state"],"title":"ShinyAppsApplication"},"Snowflake":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"{account_url}/oauth/authorize"},"token_uri":{"type":"string","title":"Token Uri","default":"{account_url}/oauth/token-request"},"template":{"type":"string","const":"snowflake","title":"Template","default":"snowflake"},"account_url":{"type":"string","maxLength":1024,"title":"Account Url"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"refresh_token"}},"type":"object","required":["client_id","account_url"],"title":"Snowflake"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection"},"SourceProvider":{"type":"string","enum":["github","aws"],"title":"SourceProvider"},"SourceType":{"type":"string","enum":["git","bundle"],"title":"SourceType"},"SubscriptionBillingInfo":{"properties":{"subscription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Subscription","description":"The account's active subscription, if there is one."},"license_type":{"anyOf":[{"$ref":"#/components/schemas/LicenseType"},{"type":"null"}],"description":"The license type the subscription is paying for. May differ from account.license.type."}},"type":"object","required":["subscription"],"title":"SubscriptionBillingInfo"},"Supabase":{"properties":{"client_id":{"type":"string","maxLength":1024,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string","maxLength":1024,"format":"password","writeOnly":true},{"type":"null"}],"title":"Client Secret"},"authorization_uri":{"type":"string","title":"Authorization Uri","default":"https://{project_ref}.supabase.co/auth/v1/oauth/authorize"},"token_uri":{"type":"string","title":"Token Uri","default":"https://{project_ref}.supabase.co/auth/v1/oauth/token"},"template":{"type":"string","const":"supabase","title":"Template","default":"supabase"},"project_ref":{"type":"string","maxLength":1024,"title":"Project Ref"},"scopes":{"type":"string","maxLength":1024,"title":"Scopes","default":"openid email"}},"type":"object","required":["client_id","project_ref"],"title":"Supabase"},"SuspendAccountPayload":{"properties":{"suspended_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended Reason","description":"The reason the account is suspended."},"suspended_reason_code":{"anyOf":[{"$ref":"#/components/schemas/SuspendedReasonCode"},{"type":"null"}],"description":"The code for the reason the account is suspended."},"suspended_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspended By","description":"The email of the user who suspended the account."},"suspended_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended On","description":"The time the account was suspended."}},"type":"object","title":"SuspendAccountPayload"},"SuspendedReasonCode":{"type":"string","enum":["crypto_mining","tos_violation","other"],"title":"SuspendedReasonCode"},"SystemRole":{"type":"string","enum":["system","user","support_level_1","support_level_2","read_only","no_role"],"title":"SystemRole"},"Thumbnail":{"type":"string","enum":["captured","placeholder"],"title":"Thumbnail"},"UpdateAccountCustomerPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional, the name of customer associated with the Stripe subscription."},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email","description":"Optional, the email of the customer associated with the Stripe subscription."},"billing_address":{"anyOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}],"description":"Optional, the billing address of the customer associated with the Stripe subscription."},"tax_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Id","description":"Optional, the Tax ID associated with the customer. To unset Tax Id, pass an empty string."}},"type":"object","title":"UpdateAccountCustomerPayload"},"UpdateAccountMemberPayload":{"properties":{"role":{"type":"string","enum":["owner","admin","publisher","viewer","guest"],"title":"Role","description":"The role of the user on the account."}},"type":"object","required":["role"],"title":"UpdateAccountMemberPayload"},"UpdateAccountPayload":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":39,"minLength":1},{"type":"null"}],"title":"Name","description":"The name of the account."},"display_name":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Display Name","description":"The display name of the account."},"use_reserved_name":{"type":"boolean","title":"Use Reserved Name","description":"Whether to bypass the reserved name check. Requires `account.name:update:bypass_reserved` permission.","default":false},"license":{"anyOf":[{"$ref":"#/components/schemas/UpdateLicensePayload"},{"type":"null"}],"description":"The account license."},"idp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idp Id","description":"The IdP ID of the account if the account is SSO enabled."},"account_type":{"anyOf":[{"$ref":"#/components/schemas/AccountType"},{"type":"null"}],"description":"The type of account."},"access":{"anyOf":[{"type":"string","enum":["private","public"]},{"type":"null"}],"title":"Access","description":"Whether the account is publicly viewable ('public') or requires membership ('private'). Individual accounts are always 'public'."},"account_controls":{"anyOf":[{"additionalProperties":{"type":"boolean"},"propertyNames":{"$ref":"#/components/schemas/AccountControlType"},"type":"object"},{"type":"null"}],"title":"Account Controls","description":"Account control toggles to upsert. Organization accounts only."}},"type":"object","title":"UpdateAccountPayload"},"UpdateAccountSubscriptionPayload":{"properties":{"license_type":{"$ref":"#/components/schemas/LicenseType"},"seats":{"anyOf":[{"type":"integer","maximum":500.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Seats","description":"The number of seats on the subscription."}},"type":"object","required":["license_type"],"title":"UpdateAccountSubscriptionPayload"},"UpdateContentMemberPayload":{"properties":{"role":{"type":"string","enum":["collaborator","viewer"],"title":"Role","description":"The role of the user on the content."}},"type":"object","title":"UpdateContentMemberPayload"},"UpdateContentPayload":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":250,"minLength":1},{"type":"null"}],"title":"Title","description":"The title of the content."},"description":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Description","description":"The description of the content."},"revision_overrides":{"anyOf":[{"$ref":"#/components/schemas/RevisionOverrides"},{"type":"null"}],"description":"The overrides for the next revision of the content."},"access":{"anyOf":[{"$ref":"#/components/schemas/ResourceAccess"},{"type":"null"}],"description":"The access level of the content."},"default_robots_policy":{"anyOf":[{"$ref":"#/components/schemas/RobotsPolicy"},{"type":"null"}],"description":"The default robots.txt policy served when the content does not supply its own."},"secrets":{"anyOf":[{"items":{"$ref":"#/components/schemas/UpdateSecretPayload"},"type":"array"},{"type":"null"}],"title":"Secrets","description":"The secrets for the content. If adding a new secret, a secret value of `None` or empty string is not valid. If updating an existing secret, a secret value of `None` means we don't want to change the value of the secret. To delete a secret, exclude it from this list."},"private_link_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Private Link Enabled","description":"Whether access is gated on the private link."},"vanity_name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Vanity Name","description":"The vanity name used to construct a vanity domain."},"domain_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Domain Id","description":"The ID of the domain the content is published to."},"auto_publish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Publish","description":"Whether the content should be auto-published."},"oauth_integrations":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Oauth Integrations"},"thumbnail_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Image","description":"The base64-encoded thumbnail image data."},"thumbnail_format":{"anyOf":[{"$ref":"#/components/schemas/ImageFormat"},{"type":"null"}],"description":"The format of the thumbnail image, e.g., image/jpeg."},"show_thumbnail":{"$ref":"#/components/schemas/Thumbnail","description":"Whether to show the captured thumbnail or a placeholder."}},"type":"object","title":"UpdateContentPayload"},"UpdateContentSchedulePayload":{"properties":{"cron_expression":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cron Expression"},"execute_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Execute On"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"}},"type":"object","title":"UpdateContentSchedulePayload"},"UpdateLicensePayload":{"properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/LicenseType"},{"type":"null"}],"description":"The license type."},"compute_credits_exceeded_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Compute Credits Exceeded Until","description":"The moment until which usage-generating activity is paused because the account exceeded its compute-credit allotment (= billing cycle end). Null when not paused."},"compute_credits_offset":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Compute Credits Offset","description":"A granted, time-limited amount of bonus compute credits that nets against the account's computed usage while active. Null when no grant is set."},"compute_credits_offset_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Compute Credits Offset Until","description":"The moment until which `compute_credits_offset` is active. Typically the billing cycle end, but any future moment is accepted. Null when no grant is set."},"cycle_anchor":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cycle Anchor","description":"The cycle anchor for the license."},"activates":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activates","description":"The date the license became active."},"cancels":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancels","description":"The date the license cancels."},"entitlements":{"anyOf":[{"additionalProperties":{"anyOf":[{},{"type":"null"}]},"propertyNames":{"$ref":"#/components/schemas/EntitlementType"},"type":"object"},{"type":"null"}],"title":"Entitlements","description":"Override entitlements for the license."}},"type":"object","title":"UpdateLicensePayload"},"UpdateOAuthIntegrationPayload":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Name","description":"A human-readable name for the integration."},"description":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Description","description":"An optional description of the integration."},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AWS"},{"$ref":"#/components/schemas/Azure"},{"$ref":"#/components/schemas/AzureOpenAI"},{"$ref":"#/components/schemas/Databricks"},{"$ref":"#/components/schemas/GoogleBigQuery"},{"$ref":"#/components/schemas/GoogleDrive"},{"$ref":"#/components/schemas/GoogleSheets"},{"$ref":"#/components/schemas/GoogleVertexAI"},{"$ref":"#/components/schemas/Snowflake"},{"$ref":"#/components/schemas/Supabase"}],"discriminator":{"propertyName":"template","mapping":{"aws":"#/components/schemas/AWS","azure":"#/components/schemas/Azure","azure-openai":"#/components/schemas/AzureOpenAI","bigquery":"#/components/schemas/GoogleBigQuery","databricks":"#/components/schemas/Databricks","drive":"#/components/schemas/GoogleDrive","sheets":"#/components/schemas/GoogleSheets","snowflake":"#/components/schemas/Snowflake","supabase":"#/components/schemas/Supabase","vertex-ai":"#/components/schemas/GoogleVertexAI"}}},{"type":"null"}],"title":"Config","description":"The integration configuration. Must include all non-secret fields. Secret values of `None` mean 'keep the existing value'. To update a secret, provide the new plaintext value."}},"type":"object","title":"UpdateOAuthIntegrationPayload"},"UpdateSecretPayload":{"properties":{"name":{"type":"string","maxLength":250,"minLength":1,"pattern":"^[a-zA-Z_]+[a-zA-Z0-9_]*$","title":"Name","description":"The name of the secret. Must be alphanumeric and underscores only. May not start with a digit. May not be all underscores."},"value":{"anyOf":[{"type":"string","maxLength":4096,"minLength":1,"format":"password","writeOnly":true},{"type":"null"}],"title":"Value","description":"The value of the secret. `None` means we don't want to change the value of the secret."}},"type":"object","required":["name","value"],"title":"UpdateSecretPayload"},"UpdateUserPayload":{"properties":{"marketing_opt_in":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Marketing Opt In","description":"Whether the user has opted in to marketing emails."},"marketing_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Marketing Data","description":"Generic key/value mapping of marketing related data on the user."},"completed_signup":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Completed Signup","description":"Whether the user has completed the signup process."},"system_role":{"anyOf":[{"$ref":"#/components/schemas/SystemRole"},{"type":"null"}],"description":"The system role of the user."},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bio","description":"The bio of the user."},"org":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Org","description":"The organization of the user."},"location":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Location","description":"The location of the user."},"website":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Website","description":"The website of the user."},"social_handles":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5,"description":"List of social media handles."},{"type":"null"}],"title":"Social Handles","description":"The social handles of the user."},"display_name":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Display Name","description":"The display name of the user."}},"type":"object","title":"UpdateUserPayload"},"UsageAccountFilter":{"properties":{"type":{"type":"string","const":"account","title":"Type","default":"account"},"account_id":{"type":"string","title":"Account Id","description":"Account to report usage for."}},"type":"object","required":["account_id"],"title":"UsageAccountFilter"},"UsageAuthorFilter":{"properties":{"type":{"type":"string","const":"author","title":"Type","default":"author"},"account_id":{"type":"string","title":"Account Id","description":"Account the author's content belongs to."},"author_id":{"type":"string","title":"Author Id","description":"Author whose usage within the account to report."}},"type":"object","required":["account_id","author_id"],"title":"UsageAuthorFilter"},"UsageContentFilter":{"properties":{"type":{"type":"string","const":"content","title":"Type","default":"content"},"content_id":{"type":"string","title":"Content Id","description":"Content item to report usage for."}},"type":"object","required":["content_id"],"title":"UsageContentFilter"},"UsageContentGroup":{"properties":{"type":{"type":"string","const":"content","title":"Type","default":"content"},"id":{"type":"string","title":"Id","description":"The content item's id."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The content item's title, or `null` when no content record exists for this id."},"content_type":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"description":"The content's current revision type; `null` if it has no current revision or is unknown."},"cpu":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu","description":"The content's currently configured CPU limit, in cores; `null` if unknown."},"memory":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Memory","description":"The content's currently configured memory limit, in MiB; `null` if unknown."},"last_published":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Published","description":"The current revision's creation time, intentionally distinct from its publish-completion event time; `null` if the content has no current revision or its record could not be resolved."}},"type":"object","required":["id","name","content_type","cpu","memory","last_published"],"title":"UsageContentGroup","description":"A content result row for the usage summary endpoint, enriched with the content item's\n*currently configured* type and CPU and memory limits from Postgres (the `revisions` table via\n`contents.current_revision_id`).\n\n`cpu`/`memory` are the same units the public `Revision` schema uses -- CPU in cores, memory in\nMiB -- not the Influx `cpu_limit_cores`/`mem_limit_bytes` gauges. They reflect the content's\ncurrent configuration, which can differ from the limits in force during the query window if the\ncontent was republished with different limits mid-window. `content_type` and `last_published`\ncome from the same current-revision join. Revision fields are `null` when the content has no\ncurrent revision or no content record exists for the id (see `name`).\n\nTyped as plain `float`/`int`, deliberately NOT the `CPU`/`Memory` aliases from `_content.py`:\nthose carry request-side allow-list validators (`{1,2,4,8}` cores / `{1024,…}` MiB) that belong\non a create/update body, but here the values are read straight out of `revisions.cpu`/`memory`\n-- columns with no DB constraint pinning them to those sets (e.g. a custom license entitlement,\nor a downgraded migration writing a value the current allow-list has since dropped). Applying\nthe request validators on this outbound path would turn an out-of-set stored value into a 500\nfor the whole page instead of reporting the row."},"UsageGroupResult":{"properties":{"group":{"oneOf":[{"$ref":"#/components/schemas/UsageContentGroup"},{"$ref":"#/components/schemas/AccountGroup"},{"$ref":"#/components/schemas/AuthorGroup"}],"title":"Group","description":"The entity this row describes. A content item when results are grouped by content; otherwise the queried entity itself. Note the type follows the grouping when one is applied and the filter otherwise, so a `content`-filtered ungrouped query still yields a `content` group.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/AccountGroup","author":"#/components/schemas/AuthorGroup","content":"#/components/schemas/UsageContentGroup"}}},"values":{"$ref":"#/components/schemas/UsageValues"}},"type":"object","required":["group","values"],"title":"UsageGroupResult","description":"One row of a `POST /usage/summary` response: a content group (with cpu/memory limits) and\nits usage totals."},"UsageSeriesGroupResult":{"properties":{"group":{"oneOf":[{"$ref":"#/components/schemas/ContentGroup"},{"$ref":"#/components/schemas/AccountGroup"},{"$ref":"#/components/schemas/AuthorGroup"}],"title":"Group","description":"The entity this row describes. A content item when results are grouped by content; otherwise the queried entity itself. Note the type follows the grouping when one is applied and the filter otherwise, so a `content`-filtered ungrouped query still yields a `content` group.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/AccountGroup","author":"#/components/schemas/AuthorGroup","content":"#/components/schemas/ContentGroup"}}},"points":{"items":{"$ref":"#/components/schemas/UsageSeriesPoint"},"type":"array","title":"Points"}},"type":"object","required":["group","points"],"title":"UsageSeriesGroupResult"},"UsageSeriesPoint":{"properties":{"from":{"type":"string","format":"date-time","title":"From","description":"Start of the bucket this point covers. Equal to the query's own `from` for the first point in a series if the query window doesn't align to a bucket boundary; otherwise a full `granularity` width before `until`."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the bucket this point covers (exclusive). Equal to the query's own `until` for the last point in a series if the query window doesn't align to a bucket boundary; otherwise a full `granularity` width after `from`."},"values":{"$ref":"#/components/schemas/MetricValues"}},"type":"object","required":["from","until","values"],"title":"UsageSeriesPoint"},"UsageSeriesQuery":{"properties":{"view":{"$ref":"#/components/schemas/UsageView-Input","description":"Filter, grouping, and ordering for this query."},"from":{"type":"string","format":"date-time","title":"From","description":"Start of the query window (inclusive)."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the query window (exclusive)."},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","description":"Maximum number of groups to return.","default":100},"offset":{"type":"integer","minimum":0.0,"title":"Offset","description":"Number of groups to skip before the returned page.","default":0},"include_total":{"type":"boolean","title":"Include Total","description":"Also compute `total`, the number of groups this query can return. Costs an extra query.","default":false},"interval":{"$ref":"#/components/schemas/Interval","description":"Bucket width to aggregate points into."},"timezone":{"type":"string","title":"Timezone","description":"IANA timezone name (e.g. 'America/New_York') or fixed UTC offset (e.g. '-04:00') that hour/day/week/month buckets align to. A fixed offset has no DST correctness across the query window.","default":"UTC"}},"type":"object","required":["view","from","until","interval"],"title":"UsageSeriesQuery"},"UsageSeriesResponse":{"properties":{"from":{"type":"string","format":"date-time","title":"From"},"until":{"type":"string","format":"date-time","title":"Until"},"view":{"$ref":"#/components/schemas/UsageView-Output","description":"The view that answered the query, echoing the request's own `view` with `sort` resolved to the ordering actually applied."},"granularity":{"$ref":"#/components/schemas/Interval","description":"The resolution actually used to answer the query. May be coarser than the requested `interval` if the window is too wide to serve at that resolution -- see the response-size guardrail."},"results":{"items":{"$ref":"#/components/schemas/UsageSeriesGroupResult"},"type":"array","title":"Results"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The number of groups this query can return, present only when `include_total` was set. Note this counts whatever the requested `sort` can page through, which differs by sort: a `content_title` sort pages every active content item in the filtered scope (including those with no usage in the window, whose metric utilization ratios are `null`), while the other sorts page only the entities that recorded usage in the window."}},"type":"object","required":["from","until","view","granularity","results"],"title":"UsageSeriesResponse"},"UsageSort":{"properties":{"direction":{"$ref":"#/components/schemas/SortDirection","description":"Ordering direction.","default":"asc"},"field":{"type":"string","enum":["id","content_title","credits","wall_clock"],"title":"Field","description":"Which key to order rows by.","default":"id"}},"type":"object","title":"UsageSort","description":"How to order the group rows of a grouped usage query (the `/usage/series` sort surface).\n\n`content_title` orders by the grouped content item's title -- a Postgres-only column, so a\ncontent-title-ordered page is driven by the entity list rather than by Influx (see\n`UsageStore`'s group-selection phase). The default (`id` ascending) is the ordering the series\nendpoint has always used, so omitting `sort` changes nothing. The summary endpoints share\n`UsageSortBase` and narrow `field` to their own legal subsets (see\n`UsageSummarySort`/`MetricsSummarySort`)."},"UsageSummaryAccountFilter":{"properties":{"type":{"type":"string","const":"account","title":"Type","default":"account"},"account_id":{"type":"string","title":"Account Id","description":"Account to report usage for."},"content_type":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"description":"Filter content-grouped results by the content's current revision type; excludes content without one."}},"type":"object","required":["account_id"],"title":"UsageSummaryAccountFilter"},"UsageSummaryAuthorFilter":{"properties":{"type":{"type":"string","const":"author","title":"Type","default":"author"},"account_id":{"type":"string","title":"Account Id","description":"Account the author's content belongs to."},"author_id":{"type":"string","title":"Author Id","description":"Author whose usage within the account to report."},"content_type":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"description":"Filter content-grouped results by the content's current revision type; excludes content without one."}},"type":"object","required":["account_id","author_id"],"title":"UsageSummaryAuthorFilter"},"UsageSummaryQuery":{"properties":{"view":{"$ref":"#/components/schemas/UsageSummaryView-Input","description":"Filter, grouping, and ordering for this query."},"from":{"type":"string","format":"date-time","title":"From","description":"Start of the query window (inclusive)."},"until":{"type":"string","format":"date-time","title":"Until","description":"End of the query window (exclusive)."},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","description":"Maximum number of groups to return.","default":100},"offset":{"type":"integer","minimum":0.0,"title":"Offset","description":"Number of groups to skip before the returned page.","default":0},"include_total":{"type":"boolean","title":"Include Total","description":"Also compute `total`, the number of groups this query can return. Costs an extra query.","default":false}},"type":"object","required":["view","from","until"],"title":"UsageSummaryQuery","description":"`POST /usage/summary` request: a `UsageQuery` whose `view` narrows `sort` to the usage\nendpoint's fields (see `UsageSummaryView`)."},"UsageSummaryResponse":{"properties":{"from":{"type":"string","format":"date-time","title":"From"},"until":{"type":"string","format":"date-time","title":"Until"},"view":{"$ref":"#/components/schemas/UsageSummaryView-Output","description":"The view that answered the query, echoing the request's own `view` with `sort` resolved to the ordering actually applied."},"results":{"items":{"$ref":"#/components/schemas/UsageGroupResult"},"type":"array","title":"Results"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"The number of content groups this query can page through, present only when `include_total` was set. The usage view counts only content that recorded usage in the window."}},"type":"object","required":["from","until","view","results"],"title":"UsageSummaryResponse"},"UsageSummarySort":{"properties":{"direction":{"$ref":"#/components/schemas/SortDirection","description":"Ordering direction; defaults to descending.","default":"desc"},"field":{"type":"string","enum":["content_title","content_type","last_published","credits","wall_clock"],"title":"Field","description":"Which key to order rows by.","default":"credits"}},"type":"object","title":"UsageSummarySort","description":"How to order the group rows of a `POST /usage/summary` query. Legal fields: `content_title`,\n`content_type`, `last_published`, `credits`, `wall_clock`; `direction` defaults to **descending**.\n\nShares `UsageSortBase` with the other endpoint-specific sort models; it narrows `field` for a\ncorrect per-route OpenAPI enum and re-defaults `direction` to `desc`. The `desc`\ndefault matters for composition: omitting `sort` entirely resolves to `credits` desc (via\n`UsageSummaryView._default_sort`), so a partial `{\"field\": \"credits\"}` must *also* resolve to\ndesc -- otherwise the more explicit request would silently flip a \"top consumers\" ranking to\nascending. A caller wanting ascending (e.g. `content_title` A->Z) sends `direction` explicitly."},"UsageSummaryView-Input":{"properties":{"group_by":{"$ref":"#/components/schemas/Grouping","description":"`none` for a single total for the filtered entity; `content` for a breakdown by content.","default":"none"},"filter":{"oneOf":[{"$ref":"#/components/schemas/UsageSummaryAccountFilter"},{"$ref":"#/components/schemas/UsageContentFilter"},{"$ref":"#/components/schemas/UsageSummaryAuthorFilter"}],"title":"Filter","description":"The single entity to report usage for.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/UsageSummaryAccountFilter","author":"#/components/schemas/UsageSummaryAuthorFilter","content":"#/components/schemas/UsageContentFilter"}}},"sort":{"anyOf":[{"$ref":"#/components/schemas/UsageSummarySort"},{"type":"null"}],"description":"How to order the group rows. Omit for the endpoint's default. Only meaningful when `group_by` is set -- an ungrouped query returns exactly one row. Responses echo this object back with `sort` filled in, so it always reports the ordering applied."}},"type":"object","required":["filter"],"title":"UsageSummaryView","description":"`UsageView` for `POST /usage/summary`: narrows `sort` to the usage endpoint's fields and\ndefaults a grouped query to `credits` descending."},"UsageSummaryView-Output":{"properties":{"group_by":{"$ref":"#/components/schemas/Grouping","description":"`none` for a single total for the filtered entity; `content` for a breakdown by content.","default":"none"},"filter":{"oneOf":[{"$ref":"#/components/schemas/UsageSummaryAccountFilter"},{"$ref":"#/components/schemas/UsageContentFilter"},{"$ref":"#/components/schemas/UsageSummaryAuthorFilter"}],"title":"Filter","description":"The single entity to report usage for.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/UsageSummaryAccountFilter","author":"#/components/schemas/UsageSummaryAuthorFilter","content":"#/components/schemas/UsageContentFilter"}}},"sort":{"anyOf":[{"$ref":"#/components/schemas/UsageSummarySort"},{"type":"null"}],"description":"How to order the group rows. Omit for the endpoint's default. Only meaningful when `group_by` is set -- an ungrouped query returns exactly one row. Responses echo this object back with `sort` filled in, so it always reports the ordering applied."}},"type":"object","required":["filter"],"title":"UsageSummaryView","description":"`UsageView` for `POST /usage/summary`: narrows `sort` to the usage endpoint's fields and\ndefaults a grouped query to `credits` descending."},"UsageValues":{"properties":{"wall_clock":{"type":"number","title":"Wall Clock","description":"Wall-clock time elapsed, in seconds."},"credits":{"type":"number","title":"Credits","description":"Credits consumed."}},"type":"object","required":["wall_clock","credits"],"title":"UsageValues","description":"The metric values the usage summary endpoint (`POST /usage/summary`) returns: the two\nadditive cost/time totals, each a `SUM` over the window. See `MetricValues` for the full set\nthe series endpoint still carries."},"UsageView-Input":{"properties":{"group_by":{"$ref":"#/components/schemas/Grouping","description":"`none` for a single total for the filtered entity; `content` for a breakdown by content.","default":"none"},"filter":{"oneOf":[{"$ref":"#/components/schemas/UsageAccountFilter"},{"$ref":"#/components/schemas/UsageContentFilter"},{"$ref":"#/components/schemas/UsageAuthorFilter"}],"title":"Filter","description":"The single entity to report usage for.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/UsageAccountFilter","author":"#/components/schemas/UsageAuthorFilter","content":"#/components/schemas/UsageContentFilter"}}},"sort":{"anyOf":[{"$ref":"#/components/schemas/UsageSort"},{"type":"null"}],"description":"How to order the group rows. Omit for the endpoint's default. Only meaningful when `group_by` is set -- an ungrouped query returns exactly one row. Responses echo this object back with `sort` filled in, so it always reports the ordering applied."}},"type":"object","required":["filter"],"title":"UsageView","description":"`UsageView` for `POST /usage/series`, retaining the historical `id` ascending default."},"UsageView-Output":{"properties":{"group_by":{"$ref":"#/components/schemas/Grouping","description":"`none` for a single total for the filtered entity; `content` for a breakdown by content.","default":"none"},"filter":{"oneOf":[{"$ref":"#/components/schemas/UsageAccountFilter"},{"$ref":"#/components/schemas/UsageContentFilter"},{"$ref":"#/components/schemas/UsageAuthorFilter"}],"title":"Filter","description":"The single entity to report usage for.","discriminator":{"propertyName":"type","mapping":{"account":"#/components/schemas/UsageAccountFilter","author":"#/components/schemas/UsageAuthorFilter","content":"#/components/schemas/UsageContentFilter"}}},"sort":{"anyOf":[{"$ref":"#/components/schemas/UsageSort"},{"type":"null"}],"description":"How to order the group rows. Omit for the endpoint's default. Only meaningful when `group_by` is set -- an ungrouped query returns exactly one row. Responses echo this object back with `sort` filled in, so it always reports the ordering applied."}},"type":"object","required":["filter"],"title":"UsageView","description":"`UsageView` for `POST /usage/series`, retaining the historical `id` ascending default."},"User":{"properties":{"permissions":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","uniqueItems":true,"title":"Permissions","description":"The permissions the user has for the resource."},"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"string","const":"REDACTED"}],"title":"Email","description":"The email address of the user."},"display_name":{"type":"string","maxLength":250,"title":"Display Name","description":"The display name of the user."},"github_avatar_url":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"string","const":"REDACTED"},{"type":"null"}],"title":"Github Avatar Url","description":"The URL of the user's GitHub avatar."},"marketing_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string","const":"REDACTED"},{"type":"null"}],"title":"Marketing Data","description":"Generic key/value mapping of marketing related data on the user."},"marketing_opt_in":{"anyOf":[{"type":"boolean"},{"type":"string","const":"REDACTED"}],"title":"Marketing Opt In","description":"Whether the user has opted in to marketing emails."},"completed_signup":{"anyOf":[{"type":"boolean"},{"type":"string","const":"REDACTED"}],"title":"Completed Signup","description":"Whether the user has completed the signup process."},"tos_last_accepted_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","const":"REDACTED"},{"type":"null"}],"title":"Tos Last Accepted Time","description":"The time the user last accepted our ToS."},"state":{"$ref":"#/components/schemas/ResourceState","description":"The state of the user."},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bio","description":"The bio of the user."},"org":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Org","description":"The organization of the user."},"location":{"anyOf":[{"type":"string","maxLength":250},{"type":"null"}],"title":"Location","description":"The location of the user."},"website":{"anyOf":[{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$"},{"type":"null"}],"title":"Website","description":"The website of the user."},"social_handles":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5,"description":"List of social media handles."},{"type":"null"}],"title":"Social Handles","description":"The social handles of the user."},"system_role":{"anyOf":[{"$ref":"#/components/schemas/SystemRole"},{"type":"string","const":"REDACTED"}],"title":"System Role","description":"The system role of the user."},"account_roles":{"additionalProperties":{"$ref":"#/components/schemas/AccountRoleInfo"},"propertyNames":{"format":"uuid"},"type":"object","title":"Account Roles","description":"The account roles of the user, by account id."},"oauth_sessions":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/OAuthSessionInfo"},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"string","const":"REDACTED"}],"title":"Oauth Sessions","description":"The user's OAuth sessions by integration ID. May be 'REDACTED' if the caller lacks permission."},"lucid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lucid Id","description":"The Lucid ID of the user."},"last_successful_login_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","const":"REDACTED"},{"type":"null"}],"title":"Last Successful Login Time","description":"The time the user last logged in successfully."},"avatar_url":{"type":"string","pattern":"^(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{1,6}\\b([-a-zA-Z0-9@:%_+.~#?&=/]*)$","title":"Avatar Url","description":"The URL of the user's avatar.","default":""}},"type":"object","required":["id","created_time","updated_time","email","display_name","github_avatar_url","marketing_data","marketing_opt_in","completed_signup","tos_last_accepted_time","state","bio","org","location","website","social_handles","system_role","account_roles","oauth_sessions","lucid_id","last_successful_login_time"],"title":"User"},"UserAccountRole":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"user":{"$ref":"#/components/schemas/MemberUser","description":"The user that is a member of the account."},"role":{"type":"string","enum":["owner","admin","publisher","viewer","guest"],"title":"Role","description":"The role of the user on the account."}},"type":"object","required":["id","created_time","updated_time","user","role"],"title":"UserAccountRole"},"UserContentRole":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique identifier for the resource."},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"The time the resource was created."},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"The time the resource was last updated."},"user":{"$ref":"#/components/schemas/ContentRoleMemberUser","description":"The user that is a member of the content."},"role":{"type":"string","enum":["collaborator","viewer"],"title":"Role","description":"The role of the user on the content."}},"type":"object","required":["id","created_time","updated_time","user","role"],"title":"UserContentRole"},"UtilizationValues":{"properties":{"cpu_utilization_ratio_to_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cpu Utilization Ratio To Limit","description":"CPU utilization as a fraction of the CPU capacity implied by the CPU limit over the window, or `null` when no frame in the window reported CPU utilization or a CPU limit."},"memory_utilization_ratio_to_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Utilization Ratio To Limit","description":"Memory utilization as a fraction of the memory capacity implied by the memory limit over the window, or `null` when no frame in the window reported memory utilization or a memory limit."},"connections":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Connections","description":"Duration-weighted average number of concurrent connections over the window, averaged across only the frames that reported a count, or `null` when no frame in the window reported one. A reported zero remains `0`; the counter is schema-version-2 and serve-phase only. This is an average across reporting frames in the group, so it is a per-entity count only at `group_by=content` (or for a content-filtered query), not a summed connection total at account or author scope."},"processes":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Processes","description":"Duration-weighted average number of worker processes over the window, averaged across only the frames that reported a count, or `null` when no frame in the window reported one. A reported zero remains `0`. This is an average across reporting frames in the group, so it is a per-entity count only at `group_by=content` (or for a content-filtered query), not a summed process total at account or author scope."}},"type":"object","required":["cpu_utilization_ratio_to_limit","memory_utilization_ratio_to_limit","connections","processes"],"title":"UtilizationValues","description":"The metric values the metrics summary endpoint (`POST /metrics/summary`) returns: the two\nutilization ratios and the two connection/process averages, each a duration-weighted average over\nthe window."},"VanityNameAvailable":{"properties":{"available":{"type":"boolean","title":"Available","description":"Whether a vanity name is available for a piece of content or not."}},"type":"object","required":["available"],"title":"VanityNameAvailable"}},"securitySchemes":{"JWTBearerAuthenticator":{"type":"http","scheme":"bearer"}}}}