{"owner":"get-convex","repo":"convex-backend","hasSpec":true,"specFile":"npm-packages/@convex-dev/platform/deployment-openapi.json","branch":"HEAD","format":"json","version":"3.1.0","title":"Convex Deployment API","description":"Admin API for interacting with deployments.","pathsCount":21,"endpoints":[{"method":"POST","path":"/update_environment_variables","summary":"Update environment variables"},{"method":"GET","path":"/list_environment_variables","summary":"List environment variables"},{"method":"GET","path":"/list_audit_log_events","summary":"List audit log events"},{"method":"GET","path":"/deployment_info","summary":"Get deployment info"},{"method":"GET","path":"/get_current_usage","summary":"Get current usage"},{"method":"GET","path":"/list_usage_limits","summary":"List usage limits"},{"method":"POST","path":"/create_usage_limit","summary":"Create usage limit"},{"method":"POST","path":"/update_usage_limit/{id}","summary":"Update usage limit"},{"method":"POST","path":"/delete_usage_limit/{id}","summary":"Delete usage limit"},{"method":"POST","path":"/update_canonical_url","summary":"Update canonical URL"},{"method":"GET","path":"/get_canonical_urls","summary":"Get canonical URLs"},{"method":"GET","path":"/list_log_streams","summary":"List log streams"},{"method":"GET","path":"/get_log_stream/{id}","summary":"Get log stream"},{"method":"POST","path":"/delete_log_stream/{id}","summary":"Delete log stream"},{"method":"POST","path":"/create_log_stream","summary":"Create log stream"},{"method":"POST","path":"/update_log_stream/{id}","summary":"Update log stream"},{"method":"POST","path":"/rotate_webhook_secret/{id}","summary":"Rotate webhook log stream secret"},{"method":"POST","path":"/pause_deployment","summary":"Pause deployment"},{"method":"POST","path":"/unpause_deployment","summary":"Unpause deployment"},{"method":"POST","path":"/data/sync","summary":"Data sync"},{"method":"GET","path":"/data/list_active_syncs","summary":"List active data syncs"}],"spec":{"openapi":"3.1.0","info":{"title":"Convex Deployment API","description":"Admin API for interacting with deployments.","license":{"name":"LicenseRef-FSL-1.1-Apache-2.0","identifier":"LicenseRef-FSL-1.1-Apache-2.0"},"version":"1.0.0"},"servers":[{"url":"{deployment-url}/api/v1","description":"Your Convex deployment","variables":{"deployment-url":{"default":"https://happy-animal-123.convex.cloud","description":"Your deployment URL"}}}],"paths":{"/update_environment_variables":{"post":{"tags":["Environment Variables"],"summary":"Update environment variables","description":"Update one or many environment variables in a deployment.\nThis will invalidate all subscriptions, since environment variables\nare accessible in queries but are not part of the cache key of a query\nresult.","operationId":"update_environment_variables","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvVarsRequest"}}},"required":true},"responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/list_environment_variables":{"get":{"tags":["Environment Variables"],"summary":"List environment variables","description":"Get all environment variables in a deployment.\nIn the future this might not include \"secret\" environment\nvariables.","operationId":"list_environment_variables","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEnvVarsResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/list_audit_log_events":{"get":{"tags":["Audit Log"],"summary":"List audit log events","description":"List a deployment's audit log events on or after a timestamp, from least to\nmost recent. Pass the returned `cursor` (along with the same `from`) to\nfetch the next page.","operationId":"list_audit_log_events","parameters":[{"name":"from","in":"query","description":"Only return events on or after this time, in milliseconds since epoch.\nPass the same value on every page of a paginated request.","required":true,"schema":{"type":"integer","format":"int64","minimum":0}},{"name":"limit","in":"query","description":"Maximum number of events to return (defaults to 15, capped at 100).","required":false,"schema":{"type":["integer","null"],"minimum":0}},{"name":"cursor","in":"query","description":"Cursor from a previous response to fetch the next page.","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeploymentAuditLogEventsResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/deployment_info":{"get":{"tags":["Deployment Info"],"summary":"Get deployment info","description":"Returns identity information about this deployment.","operationId":"get deployment info","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfoResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/get_current_usage":{"get":{"tags":["Usage Limits","beta"],"summary":"Get current usage","description":"Get the values for each usage metric for the current day and month (UTC)\n\nThe reported usage is only guaranteed to reflect the full window when\n`seedStatus` is `complete`. A `pending` or `partial` status means the\nbackfill is still in progress and the returned usage may understate actual\nusage, so retry later for an accurate total.","operationId":"get_current_usage","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCurrentUsageResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/list_usage_limits":{"get":{"tags":["Usage Limits"],"summary":"List usage limits","description":"Get all usage limit configs for a deployment.","operationId":"list_usage_limits","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUsageLimitsResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/create_usage_limit":{"post":{"tags":["Usage Limits"],"summary":"Create usage limit","description":"Create a new usage limit config for a deployment.","operationId":"create_usage_limit","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimitConfigRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimitResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/update_usage_limit/{id}":{"post":{"tags":["Usage Limits"],"summary":"Update usage limit","description":"Replace an existing usage limit config for a deployment.","operationId":"update_usage_limit","parameters":[{"name":"id","in":"path","description":"id of the usage limit to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimitConfigRequest"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimitResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/delete_usage_limit/{id}":{"post":{"tags":["Usage Limits"],"summary":"Delete usage limit","description":"Delete an existing usage limit config for a deployment.","operationId":"delete_usage_limit","parameters":[{"name":"id","in":"path","description":"id of the usage limit to delete","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/update_canonical_url":{"post":{"tags":["Canonical URLs"],"summary":"Update canonical URL","description":"Set or unset the canonical URL for a deployment's convex.cloud or\nconvex.site domain. This allows you to customize the  CONVEX_SITE_URL and\nCONVEX_CLOUD_URL environment variables in your deployment.","operationId":"update_canonical_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCanonicalUrlRequest"}}},"required":true},"responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/get_canonical_urls":{"get":{"tags":["Canonical URLs"],"summary":"Get canonical URLs","description":"Get the canonical URLs for a deployment.","operationId":"get_canonical_urls","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCanonicalUrlsResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/list_log_streams":{"get":{"tags":["Log Streams"],"summary":"List log streams","description":"List configs for all existing log streams in a deployment.","operationId":"list_log_streams","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LogStreamConfig"}}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/get_log_stream/{id}":{"get":{"tags":["Log Streams"],"summary":"Get log stream","description":"Get the config for a specific log stream by id.","operationId":"get_log_stream","parameters":[{"name":"id","in":"path","description":"id of the log stream to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogStreamConfig"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/delete_log_stream/{id}":{"post":{"tags":["Log Streams"],"summary":"Delete log stream","description":"Delete the deployment's log stream with the given id.","operationId":"delete_log_stream","parameters":[{"name":"id","in":"path","description":"id of the log stream to delete","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/create_log_stream":{"post":{"tags":["Log Streams"],"summary":"Create log stream","description":"Create a new log stream for the deployment. Errors if a log stream of the\ngiven type already exists.","operationId":"create_log_stream","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLogStreamArgs"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLogStreamResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/update_log_stream/{id}":{"post":{"tags":["Log Streams"],"summary":"Update log stream","description":"Update an existing log stream for the deployment. Omit a field to keep the\nexisting value, and use `null` to unset a field.","operationId":"update_log_stream","parameters":[{"name":"id","in":"path","description":"id of the log stream to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLogStreamArgs"}}},"required":true},"responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/rotate_webhook_secret/{id}":{"post":{"tags":["Log Streams"],"summary":"Rotate webhook log stream secret","description":"Rotate the secret for the webhook log stream.","operationId":"rotate_webhook_secret","parameters":[{"name":"id","in":"path","description":"id of the webhook log stream for which to rotate the secret","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateLogStreamSecretResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/pause_deployment":{"post":{"tags":["Pause/Unpause"],"summary":"Pause deployment","description":"Disables a deployment without deleting any data. The deployment will not\noperate until it is unpaused. While a deployment is paused, new functions\ncalls will return an error, scheduled jobs will queue and run when the\ndeployment is resumed, and cron jobs will be skipped. This means that no\nfunction calls or bandwidth usage will be charged while the deployment is\npaused, but storage costs will still apply.","operationId":"pause_deployment","responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/unpause_deployment":{"post":{"tags":["Pause/Unpause"],"summary":"Unpause deployment","description":"Reenables a deployment that was previously paused. The deployment will\nresume normal operation, including any scheduled jobs that were queued while\npaused.","operationId":"unpause_deployment","responses":{"200":{"description":""}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/data/sync":{"post":{"tags":["Data Sync","pro"],"summary":"Data sync","description":"Paginated streamable export of some or all of a deployment's data.\n\nCall this endpoint repeatedly, passing the opaque `pagination.nextCursor`\nfrom each response back in the next request as `cursor`. Omit `cursor` on\nthe first call.\n\nTo do a one time data sync, keep fetching pages until reaching an `upToDate`\npage. For a continuous streaming export, continue fetching pages\nperiodically. It's recommended to sleep between `upToDate` pages to reduce\noverhead.\n\nThe caller must have the `deployment:data:view` permission.","operationId":"data_sync","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSyncArgs"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSyncResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}},"/data/list_active_syncs":{"get":{"tags":["Data Sync","pro"],"summary":"List active data syncs","description":"Returns the progress of active data sync (/v1/data/sync).\n\nA data sync is considered active for 3 days after the most recent API call.\nfrom `/data/sync` within the past 3 days.","operationId":"list_active_syncs","parameters":[{"name":"limit","in":"query","description":"Maximum number of syncs to return (defaults to 50, capped at 100).","required":false,"schema":{"type":["integer","null"],"minimum":0}},{"name":"cursor","in":"query","description":"Cursor from a previous response to fetch the next page.","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListActiveSyncsResponse"}}}}},"security":[{"Deploy Key":[]},{"OAuth Team Token":[]},{"Team Token":[]},{"OAuth Project Token":[]}]}}},"components":{"schemas":{"AccessTokenId":{"type":"integer","format":"int64","minimum":0},"ActiveDataSync":{"type":"object","description":"The status of one active data sync, as of its most recent page.","required":["syncId","lastUpdated","status"],"properties":{"syncId":{"type":"string","description":"Unique id of the sync, assigned when it started (i.e. when\n`/api/v1/data/sync` was called without a cursor) and stable across its\npages."},"lastUpdated":{"type":"integer","format":"int64","description":"Wall-clock time of the last `/data/sync` call made by this sync, as a\nunix timestamp in milliseconds."},"status":{"$ref":"#/components/schemas/ActiveDataSyncStatus","description":"The sync's progress as of its most recently recorded page."}}},"ActiveDataSyncSnapshotting":{"type":"object","description":"The sync is still traversing its selected tables; the data returned so\nfar is not yet a consistent snapshot.","required":["type","numTablesSynced","totalTables","currentComponent","currentTable","numDocumentsInCurrentTable","totalDocumentsInCurrentTable","numDocumentsSynced","totalDocuments"],"properties":{"type":{"oneOf":[{"type":"string","description":"The literal string `snapshotting`, discriminating \"snapshotting\" status\nobjects.","enum":["snapshotting"]}],"description":"Always `snapshotting`."},"numTablesSynced":{"type":"integer","format":"int64","description":"Tables whose initial traversal has completed.","minimum":0},"totalTables":{"type":"integer","format":"int64","description":"Total tables selected for the sync.","minimum":0},"currentComponent":{"type":"string","description":"The component of the table currently being traversed (the empty\nstring for the root component)."},"currentTable":{"type":"string","description":"The table currently being traversed."},"numDocumentsInCurrentTable":{"type":"integer","format":"int64","description":"Documents synced so far from the current table.","minimum":0},"totalDocumentsInCurrentTable":{"type":"integer","format":"int64","description":"Total documents in the current table, as of a recent snapshot.","minimum":0},"numDocumentsSynced":{"type":"integer","format":"int64","description":"Documents synced over the sync's lifetime, including deletions and\nre-synced revisions of documents that changed mid-sync — so this can\nslightly exceed `totalDocuments`.","minimum":0},"totalDocuments":{"type":"integer","format":"int64","description":"Total documents across all selected tables, as of a recent snapshot.","minimum":0}}},"ActiveDataSyncStale":{"type":"object","description":"The sync reached a consistent snapshot at `syncedTs`, but newer data is\nalready available; it is streaming later changes (CDC).","required":["type","totalTables","numDocumentsSynced","syncedTs"],"properties":{"type":{"oneOf":[{"type":"string","description":"The literal string `stale`, discriminating \"stale\" status objects.","enum":["stale"]}],"description":"Always `stale`."},"totalTables":{"type":"integer","format":"int64","description":"Total tables selected for the sync.","minimum":0},"numDocumentsSynced":{"type":"integer","format":"int64","description":"Documents synced over the sync's lifetime, including deletions and\nre-synced revisions.","minimum":0},"syncedTs":{"type":"integer","format":"int64","description":"The database timestamp at which the synced data is consistent."}}},"ActiveDataSyncStatus":{"oneOf":[{"$ref":"#/components/schemas/ActiveDataSyncSnapshotting","description":"The sync has not yet reached a consistent snapshot. The entries emitted\nso far are an incomplete initial traversal of the selected tables.\nSyncs begin in this state, and may reenter this state if tables are\nadded/replaced"},{"$ref":"#/components/schemas/ActiveDataSyncStale","description":"The entries emitted so far represent a consistent snapshot at\na stale `snapshotTs`. The sync is \"catching up\"."},{"$ref":"#/components/schemas/ActiveDataSyncUpToDate","description":"The sync is up to date and represents a latest consistent snapshot."}],"description":"The progress of an active data sync, discriminated by `type`.","discriminator":{"propertyName":"type","mapping":{"snapshotting":"#/components/schemas/ActiveDataSyncSnapshotting","stale":"#/components/schemas/ActiveDataSyncStale","upToDate":"#/components/schemas/ActiveDataSyncUpToDate"}}},"ActiveDataSyncUpToDate":{"type":"object","description":"The sync reached a consistent snapshot at `syncedTs` and has caught up to\nthe latest data.","required":["type","totalTables","numDocumentsSynced","syncedTs"],"properties":{"type":{"oneOf":[{"type":"string","description":"The literal string `upToDate`, discriminating \"up to date\" status objects.","enum":["upToDate"]}],"description":"Always `upToDate`."},"totalTables":{"type":"integer","format":"int64","description":"Total tables selected for the sync.","minimum":0},"numDocumentsSynced":{"type":"integer","format":"int64","description":"Documents synced over the sync's lifetime, including deletions and\nre-synced revisions.","minimum":0},"syncedTs":{"type":"integer","format":"int64","description":"The database timestamp at which the synced data is consistent."}}},"AuditLogActor":{"oneOf":[{"type":"object","title":"System","description":"The internal Convex system.","required":["kind"],"properties":{"kind":{"type":"string","enum":["system"]}}},{"type":"object","title":"Member","description":"A member acting via the dashboard.","required":["member_id","kind"],"properties":{"member_id":{"$ref":"#/components/schemas/MemberId","description":"Member ID"},"kind":{"type":"string","enum":["member"]}}},{"type":"object","title":"Token","description":"A deploy key or access token.","required":["token_id","kind"],"properties":{"member_id":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/MemberId","description":"Member ID the token belongs to, if any."}]},"token_id":{"$ref":"#/components/schemas/AccessTokenId","description":"Token ID. `0` for legacy audit log rows created before token IDs\nwere recorded."},"client_id":{"type":["string","null"],"description":"Client ID of the OAuth application, if the token belongs to one."},"kind":{"type":"string","enum":["token"]}}}],"description":"The identity that performed an audit log action."},"AxiomAttribute":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string"},"value":{"type":"string"}}},"AxiomLogStreamConfig":{"type":"object","title":"AxiomConfig","required":["id","status","datasetName","attributes"],"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/LogStreamStatus","description":"Status of the log stream"},"datasetName":{"type":"string","description":"Name of the dataset in Axiom. This is where the logs will be sent."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/AxiomAttribute"},"description":"Optional list of attributes. These are extra fields and values sent to\nAxiom in each log event."},"ingestUrl":{"type":["string","null"],"description":"Optional ingest endpoint for Axiom"},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. `null` means subscribed to\nall topics, including ones added in the future."}}},"ColumnSelection":{"type":"string","description":"Whether the column is exported.","enum":["excluded","included"]},"ComponentSelection":{"oneOf":[{"type":"object","title":"Included","description":"Export some of this component's tables.","required":["_other"],"properties":{"_other":{"$ref":"#/components/schemas/InclusionDefault","description":"Whether tables not explicitly listed are exported"}},"additionalProperties":{"$ref":"#/components/schemas/TableSelection","description":"Set of tables to include/exclude in sync within the component.\n\nMapping from the table name to the inclusion/exclusion."}},{"oneOf":[{"$ref":"#/components/schemas/ExcludedTag","description":"Exclude this component entirely."}],"title":"Excluded"}]},"CreateAxiomLogStreamArgs":{"type":"object","required":["apiKey","datasetName","attributes"],"properties":{"apiKey":{"type":"string","description":"Axiom API key for authentication."},"datasetName":{"type":"string","description":"Name of the dataset in Axiom. This is where the logs will be sent."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/AxiomAttribute"},"description":"Optional list of attributes. These are extra fields and values sent to\nAxiom in each log event."},"ingestUrl":{"type":["string","null"],"description":"Optional ingest endpoint for Axiom"},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to\nsubscribe to all topics, including ones added in the future."}}},"CreateDatadogLogStreamArgs":{"type":"object","required":["siteLocation","ddApiKey","ddTags"],"properties":{"siteLocation":{"$ref":"#/components/schemas/DatadogSiteLocation","description":"Location of your Datadog deployment."},"ddApiKey":{"type":"string","description":"Datadog API key for authentication."},"ddTags":{"type":"array","items":{"type":"string"},"description":"Optional comma-separated list of tags. These are sent to Datadog in each\nlog event via the `ddtags` field."},"service":{"type":["string","null"],"description":"Service name used as a special tag in Datadog."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to\nsubscribe to all topics, including ones added in the future."}}},"CreateLogStreamArgs":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateDatadogLogStreamArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["datadog"]}}}],"title":"Datadog"},{"allOf":[{"$ref":"#/components/schemas/CreateWebhookLogStreamArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["webhook"]}}}],"title":"Webhook"},{"allOf":[{"$ref":"#/components/schemas/CreateAxiomLogStreamArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["axiom"]}}}],"title":"Axiom"},{"allOf":[{"$ref":"#/components/schemas/CreateSentryLogStreamArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["sentry"]}}}],"title":"Sentry"},{"allOf":[{"$ref":"#/components/schemas/CreatePostHogLogsLogStreamArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["postHogLogs"]}}}],"title":"PostHogLogs"},{"allOf":[{"$ref":"#/components/schemas/CreatePostHogErrorTrackingLogStreamArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["postHogErrorTracking"]}}}],"title":"PostHogErrorTracking"}]},"CreateLogStreamResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateWebhookLogStreamResponse"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["webhook"]}}}],"title":"Webhook"},{"type":"object","title":"Datadog","required":["id","logStreamType"],"properties":{"id":{"type":"string"},"logStreamType":{"type":"string","enum":["datadog"]}}},{"type":"object","title":"Axiom","required":["id","logStreamType"],"properties":{"id":{"type":"string"},"logStreamType":{"type":"string","enum":["axiom"]}}},{"type":"object","title":"Sentry","required":["id","logStreamType"],"properties":{"id":{"type":"string"},"logStreamType":{"type":"string","enum":["sentry"]}}},{"type":"object","title":"PostHogLogs","required":["id","logStreamType"],"properties":{"id":{"type":"string"},"logStreamType":{"type":"string","enum":["postHogLogs"]}}},{"type":"object","title":"PostHogErrorTracking","required":["id","logStreamType"],"properties":{"id":{"type":"string"},"logStreamType":{"type":"string","enum":["postHogErrorTracking"]}}}]},"CreatePostHogErrorTrackingLogStreamArgs":{"type":"object","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"PostHog project token."},"host":{"type":["string","null"],"description":"PostHog host URL. Defaults to https://us.i.posthog.com."}}},"CreatePostHogLogsLogStreamArgs":{"type":"object","required":["apiKey"],"properties":{"apiKey":{"type":"string","description":"PostHog project token."},"host":{"type":["string","null"],"description":"PostHog host URL. Defaults to https://us.i.posthog.com."},"serviceName":{"type":["string","null"],"description":"OTLP service.name attribute. Defaults to the deployment name."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to\nsubscribe to all topics, including ones added in the future."}}},"CreateSentryLogStreamArgs":{"type":"object","required":["dsn"],"properties":{"dsn":{"type":"string","description":"Sentry Data Source Name (DSN) to route exceptions to."},"tags":{"type":["object","null"],"description":"Tags to add to all events routed to Sentry.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}}}},"CreateWebhookLogStreamArgs":{"type":"object","required":["url","format"],"properties":{"url":{"type":"string","description":"URL to send logs to."},"format":{"$ref":"#/components/schemas/WebhookFormat","description":"Format for the webhook payload. JSONL sends one object per line of\nrequest, JSON sends one array per request."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to\nsubscribe to all topics, including ones added in the future."}}},"CreateWebhookLogStreamResponse":{"type":"object","required":["id","hmacSecret"],"properties":{"id":{"type":"string"},"hmacSecret":{"type":"string","description":"Use this secret to verify webhook signatures."}}},"DataSyncArgs":{"type":"object","description":"Arguments to the data sync (streaming export) API (`/api/v1/data/sync`).","properties":{"cursor":{"type":["string","null"],"description":"Opaque cursor returned by a previous call. Omit to start from scratch."},"selection":{"$ref":"#/components/schemas/Selection","description":"When set, only sync the selected subset of the data.\n\nSelects the components, tables, and columns to export. Each key is a\ncomponent path (`\"\"` for the root component), mapped to the selection\nfor that component.\n\nThe selection may change between calls of the same sync: newly selected\ntables are synced from scratch, possibly moving the sync into\n`snapshotting` state if necessary, and emit a truncate on the first page\nthey appear so the consumer starts them from a clean slate. Deselected\ntables stop being exported, with a truncate emitted."}}},"DataSyncResponse":{"type":"object","description":"One page returned by the data sync API.","required":["status","truncates","values","syncId","pagination"],"properties":{"status":{"$ref":"#/components/schemas/DataSyncStatus","description":"The status of the sync after this page."},"truncates":{"type":"array","items":{"$ref":"#/components/schemas/DataSyncTruncate"},"description":"Tables truncated by this page. The consumer should drop everything it\npreviously synced for each table, then apply `values` (which re-sync\nthem from scratch). Logically applies before `values`.\n\nA table is truncated whenever it (re)enters the export from scratch —\nthe first page it is synced (including on a cold start), when it is\nnewly selected, or when it is replaced by a bulk operation such as\n`npx convex import` — and when it leaves the export after being\ndeselected."},"values":{"type":"array","items":{"$ref":"#/components/schemas/DataSyncValue"},"description":"Documents created, updated, or deleted in this page."},"syncId":{"type":"string","description":"Unique id of the sync, assigned on the first page and stable across\nthe sync's lifetime. Identifies this sync in `/data/list_active_syncs`."},"pagination":{"$ref":"#/components/schemas/PaginationMetadata","description":"Pagination information. The data sync endpoint is an infinite streaming\nendpoint, so `nextCursor` is always present and `hasMore` is always\n`true` — another page can always be fetched with the cursor. Use\n`status` to pace calls: back off significantly to wait for more writes\nonce it reports `upToDate`."}}},"DataSyncSnapshotting":{"type":"object","description":"The sync has not yet reached a consistent snapshot. The entries emitted\nso far are an incomplete initial traversal of the selected tables.\nSyncs begin in this state. The sync's\nprogress can be monitored via `/data/list_active_syncs`, keyed by the\nresponse's `syncId`. Syncs may return to this state if the table\nselection has changes that requires large data sync.","required":["type"],"properties":{"type":{"oneOf":[{"type":"string","description":"The literal string `snapshotting`, discriminating \"snapshotting\" status\nobjects.","enum":["snapshotting"]}],"description":"Always `snapshotting`."}}},"DataSyncStale":{"type":"object","description":"The entries emitted so far represent a consistent snapshot at\na stale `snapshotTs`.","required":["type","snapshotTs"],"properties":{"type":{"oneOf":[{"type":"string","description":"The literal string `stale`, discriminating \"stale\" status objects.","enum":["stale"]}],"description":"Always `stale`."},"snapshotTs":{"type":"integer","format":"int64","description":"The database timestamp at which the synced data is consistent."}}},"DataSyncStatus":{"oneOf":[{"$ref":"#/components/schemas/DataSyncSnapshotting"},{"$ref":"#/components/schemas/DataSyncStale"},{"$ref":"#/components/schemas/DataSyncUpToDate"}],"description":"The consistency state reported alongside a data sync page, discriminated\nby `type`.","discriminator":{"propertyName":"type","mapping":{"snapshotting":"#/components/schemas/DataSyncSnapshotting","stale":"#/components/schemas/DataSyncStale","upToDate":"#/components/schemas/DataSyncUpToDate"}}},"DataSyncTruncate":{"type":"object","description":"A table whose contents were replaced wholesale (e.g. by `npx convex\nimport`). Reported separately from `values` since it carries none of the\nper-document fields.","required":["component","table"],"properties":{"component":{"type":"string","description":"The path of the component the table is in."},"table":{"type":"string","description":"The name of the truncated table."}}},"DataSyncUpToDate":{"type":"object","description":"The sync is up to date and represents a latest consistent snapshot.\nFor a streaming export in this state, it is recommended to backoff for\nsome time, wait for more data, and then continue the streaming sync.","required":["type","snapshotTs"],"properties":{"type":{"oneOf":[{"type":"string","description":"The literal string `upToDate`, discriminating \"up to date\" status objects.","enum":["upToDate"]}],"description":"Always `upToDate`."},"snapshotTs":{"type":"integer","format":"int64","description":"The database timestamp at which the synced data is consistent."}}},"DataSyncValue":{"type":"object","description":"A single document-level entry emitted by the data sync API: a Convex\ndocument (or a tombstone, for a deletion) nested under `value`, with\nmetadata fields alongside it.","required":["component","table","ts","deleted","value"],"properties":{"component":{"type":"string","description":"The path of the component this entry is from."},"table":{"type":"string","description":"The name of the table this entry is from."},"ts":{"type":"integer","format":"int64","description":"The timestamp at which this revision was written."},"deleted":{"type":"boolean","description":"Whether the document was deleted (a tombstone)."},"value":{"type":"object","description":"The fields of the document, including the built-in `_id` and\n`_creationTime`. For `deleted` documents, only `_id` is present."}}},"DatadogLogStreamConfig":{"type":"object","title":"DatadogConfig","required":["id","status","siteLocation","ddTags"],"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/LogStreamStatus","description":"Status of the log stream"},"siteLocation":{"$ref":"#/components/schemas/DatadogSiteLocation","description":"Location of your Datadog deployment."},"ddTags":{"type":"array","items":{"type":"string"},"description":"Optional comma-separated list of tags. These are sent to Datadog in each\nlog event via the `ddtags` field."},"service":{"type":["string","null"],"description":"Service name used as a special tag in Datadog."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. `null` means subscribed to\nall topics, including ones added in the future."}}},"DatadogSiteLocation":{"type":"string","description":"The Datadog deployment locations, used to construct URLs","enum":["US1","US3","US5","EU","US1_FED","AP1"]},"DeploymentAuditLogEventResponse":{"type":"object","required":["actor","action","createTime","metadata"],"properties":{"actor":{"$ref":"#/components/schemas/AuditLogActor","description":"The identity that performed the action."},"action":{"type":"string","enum":["create_environment_variable","update_environment_variable","delete_environment_variable","create_usage_limit","update_usage_limit","delete_usage_limit","usage_limit_exceeded","change_usage_limit_stop_state","replace_environment_variable","update_canonical_url","delete_canonical_url","push_config","push_config_with_components","build_indexes","change_deployment_state","pause_deployment","unpause_deployment","change_system_stop_state","clear_tables","snapshot_import","delete_scheduled_jobs_table","delete_tables","delete_component","cancel_all_scheduled_functions","cancel_scheduled_function","request_export","cancel_export","set_export_expiration","create_integration","update_integration","delete_integration","add_documents","delete_documents","update_documents","create_table","delete_files","generate_upload_url","create_data_sync"]},"createTime":{"type":"integer","format":"int64","description":"Time the event was created, in milliseconds since epoch."},"metadata":{"$ref":"#/components/schemas/Value","description":"Additional JSON metadata about the audit log event."},"clientIp":{"type":["string","null"],"description":"IP address of the client that performed the action, if known."},"clientUserAgent":{"type":["string","null"],"description":"User agent of the client that performed the action, if known."}}},"DeploymentId":{"type":"integer","format":"int64","minimum":0},"DeploymentInfoResponse":{"oneOf":[{"type":"object","required":["teamId","projectId","id","deploymentType","kind"],"properties":{"teamId":{"$ref":"#/components/schemas/TeamId"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"projectName":{"type":["string","null"]},"projectSlug":{"type":["string","null"]},"id":{"$ref":"#/components/schemas/DeploymentId"},"deploymentType":{"$ref":"#/components/schemas/DeploymentType"},"reference":{"type":["string","null"]},"kind":{"type":"string","enum":["cloud"]}}},{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["selfHosted"]}}}]},"DeploymentType":{"type":"string","enum":["dev","prod","preview","custom"]},"ExcludedTag":{"type":"string","title":"Excluded","description":"The literal string `\"excluded\"`, excluding the item entirely.","enum":["excluded"]},"GetCanonicalUrlsResponse":{"type":"object","required":["convexCloudUrl","convexSiteUrl"],"properties":{"convexCloudUrl":{"type":"string"},"convexSiteUrl":{"type":"string"}}},"GetCurrentUsageResponse":{"type":"object","description":"Current usage across every metric, keyed by the same metric name the usage\nlimit config API uses.","required":["metrics","seedStatus"],"properties":{"metrics":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MetricUsageResponse"},"propertyNames":{"type":"string"}},"seedStatus":{"$ref":"#/components/schemas/SeedStatusResponse"}}},"InclusionDefault":{"type":"string","enum":["excluded","included"]},"ListActiveSyncsResponse":{"type":"object","description":"Response of the active-syncs listing API\n(`/api/v1/data/list_active_syncs`).","required":["syncs","pagination"],"properties":{"syncs":{"type":"array","items":{"$ref":"#/components/schemas/ActiveDataSync"},"description":"Page of active data syncs, most recently updated first. A sync is\nactive if it fetched a page from `/api/v1/data/sync` within the past 3\ndays."},"pagination":{"$ref":"#/components/schemas/PaginationMetadata"}}},"ListDeploymentAuditLogEventsResponse":{"type":"object","required":["items","pagination"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentAuditLogEventResponse"},"description":"The audit log events for this page, from least to most recent."},"pagination":{"$ref":"#/components/schemas/PaginationMetadata"}}},"ListEnvVarsResponse":{"type":"object","required":["environmentVariables"],"properties":{"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}}}},"ListUsageLimitsResponse":{"type":"object","required":["usageLimits"],"properties":{"usageLimits":{"type":"array","items":{"$ref":"#/components/schemas/UsageLimitConfigResponse"}}}},"LogStreamConfig":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/DatadogLogStreamConfig"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["datadog"]}}}],"title":"Datadog"},{"allOf":[{"$ref":"#/components/schemas/WebhookLogStreamConfig"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["webhook"]}}}],"title":"Webhook"},{"allOf":[{"$ref":"#/components/schemas/AxiomLogStreamConfig"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["axiom"]}}}],"title":"Axiom"},{"allOf":[{"$ref":"#/components/schemas/SentryLogStreamConfig"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["sentry"]}}}],"title":"Sentry"},{"allOf":[{"$ref":"#/components/schemas/PostHogLogsLogStreamConfig"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["postHogLogs"]}}}],"title":"PostHogLogs"},{"allOf":[{"$ref":"#/components/schemas/PostHogErrorTrackingLogStreamConfig"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["postHogErrorTracking"]}}}],"title":"PostHogErrorTracking"}]},"LogStreamStatus":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["pending"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["restarting"]}}},{"type":"object","required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string","enum":["failed"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["active"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["deleting"]}}}],"description":"Status of a log stream"},"LogTopic":{"type":"string","enum":["verification","console","function_execution","exception","audit_log","scheduler_stats","scheduled_job_lag","current_storage_usage","concurrency_stats","storage_api_bandwidth","log_stream_egress","custom_audit"]},"MemberId":{"type":"integer","format":"int64","minimum":0},"MetricUnit":{"type":"string","description":"The user-facing unit a metric's limits and usage are expressed in.","enum":["calls","GB","Query-GB","GB-hours"]},"MetricUsageResponse":{"type":"object","description":"Current-window usage for a single metric.","required":["unit","usage"],"properties":{"unit":{"$ref":"#/components/schemas/MetricUnit","description":"The unit `usage` is expressed in, matching the unit this metric's\nconfigured limits use."},"usage":{"$ref":"#/components/schemas/WindowUsageResponse"}}},"PaginationMetadata":{"type":"object","required":["hasMore"],"properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":["string","null"]}}},"PostHogErrorTrackingLogStreamConfig":{"type":"object","title":"PostHogErrorTrackingConfig","required":["id","status"],"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/LogStreamStatus","description":"Status of the log stream"},"host":{"type":["string","null"],"description":"PostHog host URL."}}},"PostHogLogsLogStreamConfig":{"type":"object","title":"PostHogLogsConfig","required":["id","status"],"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/LogStreamStatus","description":"Status of the log stream"},"host":{"type":["string","null"],"description":"PostHog host URL."},"serviceName":{"type":["string","null"],"description":"OTLP service.name attribute."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. `null` means subscribed to\nall topics, including ones added in the future."}}},"ProjectId":{"type":"integer","format":"int64","minimum":0},"RequestDestination":{"type":"string","enum":["convexCloud","convexSite"]},"RotateLogStreamSecretResponse":{"oneOf":[{"type":"object","title":"Webhook","required":["hmacSecret","logStreamType"],"properties":{"hmacSecret":{"type":"string"},"logStreamType":{"type":"string","enum":["webhook"]}}}]},"SeedStatusResponse":{"type":"string","description":"Progress of the historical-usage backfill. Only `complete` guarantees the\nreported usage reflects the full window. While the status is `pending` or\n`partial`, history from before this deployment was loaded may not be\nhydrated yet and the numbers can understate actual usage, so retry later for\nan accurate total. `failed` means the backfill couldn't hydrate any history.","enum":["pending","partial","complete","failed"]},"Selection":{"type":"object","required":["_other"],"properties":{"_other":{"$ref":"#/components/schemas/InclusionDefault","description":"Whether components not explicitly listed are exported"}},"additionalProperties":{"$ref":"#/components/schemas/ComponentSelection","description":"Set of components to include/exclude in sync.\n\nMapping from the component path to the inclusion/exclusion.\nUse the empty string to represent the root component."},"example":{"_other":"excluded","":{"_other":"excluded","posts":{"_other":"included"},"users":{"_other":"included","ssn":"excluded"}}}},"SentryLogStreamConfig":{"type":"object","title":"SentryConfig","required":["id","status"],"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/LogStreamStatus","description":"Status of the log stream"},"tags":{"type":["object","null"],"description":"Tags to add to all events routed to Sentry.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}}}},"TableSelection":{"oneOf":[{"type":"object","title":"Included","required":["_other"],"properties":{"_other":{"$ref":"#/components/schemas/InclusionDefault","description":"Whether columns not explicitly listed are exported"}},"additionalProperties":{"$ref":"#/components/schemas/ColumnSelection","description":"Set of columns to include/exclude in sync within the table.\n\nMapping from the column name to the inclusion/exclusion. `_id`\ncannot be excluded."}},{"oneOf":[{"$ref":"#/components/schemas/ExcludedTag","description":"Exclude this table entirely."}],"title":"Excluded"}]},"TeamId":{"type":"integer","format":"int64","minimum":0},"UpdateAxiomSinkArgs":{"type":"object","properties":{"apiKey":{"type":["string","null"],"description":"Axiom API key for authentication."},"datasetName":{"type":["string","null"],"description":"Name of the dataset in Axiom. This is where the logs will be sent."},"attributes":{"type":["array","null"],"items":{"$ref":"#/components/schemas/AxiomAttribute"},"description":"Optional list of attributes. These are extra fields and values sent to\nAxiom in each log event."},"ingestUrl":{"type":["string","null"],"description":"Optional ingest endpoint for Axiom"},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to keep the current\nsubscription, or pass `null` to subscribe to all topics (including ones\nadded in the future)."}}},"UpdateCanonicalUrlRequest":{"type":"object","required":["requestDestination"],"properties":{"requestDestination":{"$ref":"#/components/schemas/RequestDestination","description":"Whether to update the canonical URL for convex.cloud or convex.site"},"url":{"type":["string","null"],"description":"The new canonical URL. Omit this to reset the canonical URl to the\ndefault value."}}},"UpdateDatadogSinkArgs":{"type":"object","properties":{"siteLocation":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DatadogSiteLocation","description":"Location of your Datadog deployment."}]},"ddApiKey":{"type":["string","null"],"description":"Datadog API key for authentication."},"ddTags":{"type":["array","null"],"items":{"type":"string"},"description":"Optional comma-separated list of tags. These are sent to Datadog in each\nlog event via the `ddtags` field."},"service":{"type":["string","null"],"description":"Service name used as a special tag in Datadog."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to keep the current\nsubscription, or pass `null` to subscribe to all topics (including ones\nadded in the future)."}}},"UpdateEnvVarRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"value":{"type":["string","null"]}}},"UpdateEnvVarsRequest":{"type":"object","required":["changes"],"properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/UpdateEnvVarRequest"}}}},"UpdateLogStreamArgs":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/UpdateDatadogSinkArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["datadog"]}}}],"title":"Datadog"},{"allOf":[{"$ref":"#/components/schemas/UpdateWebhookSinkArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["webhook"]}}}],"title":"Webhook"},{"allOf":[{"$ref":"#/components/schemas/UpdateAxiomSinkArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["axiom"]}}}],"title":"Axiom"},{"allOf":[{"$ref":"#/components/schemas/UpdateSentrySinkArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["sentry"]}}}],"title":"Sentry"},{"allOf":[{"$ref":"#/components/schemas/UpdatePostHogLogsSinkArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["postHogLogs"]}}}],"title":"PostHogLogs"},{"allOf":[{"$ref":"#/components/schemas/UpdatePostHogErrorTrackingSinkArgs"},{"type":"object","required":["logStreamType"],"properties":{"logStreamType":{"type":"string","enum":["postHogErrorTracking"]}}}],"title":"PostHogErrorTracking"}]},"UpdatePostHogErrorTrackingSinkArgs":{"type":"object","properties":{"apiKey":{"type":["string","null"],"description":"PostHog project token."},"host":{"type":["string","null"],"description":"PostHog host URL."}}},"UpdatePostHogLogsSinkArgs":{"type":"object","properties":{"apiKey":{"type":["string","null"],"description":"PostHog project token."},"host":{"type":["string","null"],"description":"PostHog host URL."},"serviceName":{"type":["string","null"],"description":"OTLP service.name attribute."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to keep the current\nsubscription, or pass `null` to subscribe to all topics (including ones\nadded in the future)."}}},"UpdateSentrySinkArgs":{"type":"object","properties":{"dsn":{"type":["string","null"],"description":"Sentry Data Source Name (DSN) to route exceptions to."},"tags":{"type":["object","null"],"description":"Tags to add to all events routed to Sentry.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}}}},"UpdateWebhookSinkArgs":{"type":"object","properties":{"url":{"type":["string","null"],"description":"URL to send logs to."},"format":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/WebhookFormat","description":"Format for the webhook payload. JSONL sends one object per line of\nrequest, JSON sends one array per request."}]},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. Omit to keep the current\nsubscription, or pass `null` to subscribe to all topics (including ones\nadded in the future)."}}},"UsageLimitConfigRequest":{"type":"object","required":["metric","window","limitType","limit","enabled"],"properties":{"metric":{"$ref":"#/components/schemas/UsageLimitMetric"},"window":{"$ref":"#/components/schemas/UsageLimitWindow"},"limitType":{"$ref":"#/components/schemas/UsageLimitType"},"limit":{"type":"integer","format":"int64","minimum":1},"enabled":{"type":"boolean"}}},"UsageLimitConfigResponse":{"type":"object","required":["id","metric","window","limitType","limit","enabled"],"properties":{"id":{"type":"string"},"metric":{"$ref":"#/components/schemas/UsageLimitMetric"},"window":{"$ref":"#/components/schemas/UsageLimitWindow"},"limitType":{"$ref":"#/components/schemas/UsageLimitType"},"limit":{"type":"integer","format":"int64","minimum":1},"enabled":{"type":"boolean"}}},"UsageLimitMetric":{"type":"string","enum":["functionCalls","databaseIoGb","dataEgressGb","searchQueryGb","queryMutationComputeGbHours","actionComputeConvexGbHours","actionComputeNodeJsGbHours","actionComputeCpuGbHours"]},"UsageLimitResponse":{"type":"object","required":["usageLimit"],"properties":{"usageLimit":{"$ref":"#/components/schemas/UsageLimitConfigResponse"}}},"UsageLimitType":{"type":"string","enum":["warning","disable"]},"UsageLimitWindow":{"type":"string","description":"The calendar-aligned window a limit is measured over.","enum":["day","month"]},"Value":{},"WebhookFormat":{"type":"string","enum":["json","jsonl"]},"WebhookLogStreamConfig":{"type":"object","title":"WebhookConfig","required":["id","status","url","format","hmacSecret"],"properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/LogStreamStatus","description":"Status of the log stream"},"url":{"type":"string","description":"URL to send logs to."},"format":{"$ref":"#/components/schemas/WebhookFormat","description":"Format for the webhook payload. JSONL sends one object per line of\nrequest, JSON sends one array per request."},"hmacSecret":{"type":"string","description":"Use this secret to verify webhook signatures."},"topics":{"type":["array","null"],"items":{"$ref":"#/components/schemas/LogTopic"},"description":"The topics this log stream is subscribed to. `null` means subscribed to\nall topics, including ones added in the future."}}},"WindowUsageResponse":{"type":"object","description":"Usage in each calendar-aligned window currently in progress.","required":["current_day","current_month"],"properties":{"current_day":{"type":"number","format":"double"},"current_month":{"type":"number","format":"double"}}}},"securitySchemes":{"Deploy Key":{"type":"apiKey","in":"header","name":"Authorization","description":"Deploy keys are used for deployment operations. See [deploy key types](https://docs.convex.dev/cli/deploy-key-types) for more information. Use the `Convex ` prefix (e.g., `Convex <deploy_key>`)."},"OAuth Project Token":{"type":"apiKey","in":"header","name":"Authorization","description":"Obtained through a [Convex OAuth application](https://docs.convex.dev/management-api) with project scope. Use the `Convex ` prefix (e.g., `Convex <oauth_project_token>`)."},"OAuth Team Token":{"type":"apiKey","in":"header","name":"Authorization","description":"Obtained through a [Convex OAuth application](https://docs.convex.dev/management-api). Use the `Convex ` prefix (e.g., `Convex <oauth_token>`)."},"Team Token":{"type":"apiKey","in":"header","name":"Authorization","description":"Created in the dashboard under team settings for any team you can manage. Use the `Convex ` prefix (e.g., `Convex <team_token>`)."}}}}}