diff --git a/fern/apis/fai/openapi.json b/fern/apis/fai/openapi.json deleted file mode 100644 index a96ea74a3..000000000 --- a/fern/apis/fai/openapi.json +++ /dev/null @@ -1,4494 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "FAI", - "summary": "The FAI API.", - "version": "0.0.0" - }, - "paths": { - "/analytics/histogram/{domain}": { - "get": { - "tags": [ - "Analytics" - ], - "summary": "Get Analytics Histogram", - "operationId": "get_analytics_histogram", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "start_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The start date of the period to retrieve analytics for", - "title": "Start Date" - }, - "description": "The start date of the period to retrieve analytics for" - }, - { - "name": "end_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The end date of the period to retrieve analytics for", - "title": "End Date" - }, - "description": "The end date of the period to retrieve analytics for" - }, - { - "name": "group_by", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/GroupBy", - "description": "The field to group the analytics by", - "default": "DAY" - }, - "description": "The field to group the analytics by" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetHistogramAnalyticsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/analytics/insights/generate_all": { - "post": { - "tags": [ - "Analytics" - ], - "summary": "Generate All Insights", - "description": "Generate insights for all domains with queries in the specified period.", - "operationId": "generate_all_insights", - "parameters": [ - { - "name": "start_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The start date of the period to generate insights for", - "title": "Start Date" - }, - "description": "The start date of the period to generate insights for" - }, - { - "name": "end_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The end date of the period to generate insights for", - "title": "End Date" - }, - "description": "The end date of the period to generate insights for" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/analytics/insights/trigger_scheduled": { - "post": { - "tags": [ - "Analytics" - ], - "summary": "Trigger Scheduled Insights Generation", - "description": "Manually trigger the scheduled weekly insights generation job.", - "operationId": "trigger_scheduled_insights_generation", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/analytics/insights/{domain}": { - "get": { - "tags": [ - "Analytics" - ], - "summary": "Get Query Insights", - "description": "Get the most recent insights for a domain.", - "operationId": "get_query_insights", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetInsightsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/analytics/scheduler/status": { - "get": { - "tags": [ - "Analytics" - ], - "summary": "Get Scheduler Status", - "description": "Get the status of the scheduler and its jobs.", - "operationId": "get_scheduler_status", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/analytics/resolution/{domain}": { - "get": { - "tags": [ - "Analytics" - ], - "summary": "Get Conversation Resolution", - "description": "Get conversation resolution metrics for a domain in a given time period.", - "operationId": "get_conversation_resolution", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "start_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The start date of the period to retrieve resolution metrics for", - "title": "Start Date" - }, - "description": "The start date of the period to retrieve resolution metrics for" - }, - { - "name": "end_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The end date of the period to retrieve resolution metrics for", - "title": "End Date" - }, - "description": "The end date of the period to retrieve resolution metrics for" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetConversationResolutionResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/chat/{domain}": { - "post": { - "tags": [ - "Chat" - ], - "summary": "Post Chat Completion", - "operationId": "post_chat_completion", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostChatCompletionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostChatCompletionResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/conversation/{domain}/{conversation_id}": { - "get": { - "tags": [ - "Conversation" - ], - "summary": "Get Conversation By Id", - "operationId": "get_conversation_by_id", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetConversationResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/discord/install": { - "post": { - "tags": [ - "Discord" - ], - "summary": "Create Discord Integration", - "operationId": "create_discord_integration", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DiscordIntegrationResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/discord/install/callback": { - "get": { - "tags": [ - "Discord" - ], - "summary": "Handle Discord Install Callback", - "operationId": "handle_discord_install_callback", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/document/{domain}/create": { - "post": { - "tags": [ - "Document" - ], - "summary": "Create Document", - "operationId": "create_document", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDocumentRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CreateDocumentResponse" - }, - "title": "Response Create Document Document Domain Create Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/document/{domain}/batch-create": { - "post": { - "tags": [ - "Document" - ], - "summary": "Batch Create Document", - "operationId": "batch_create_document", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CreateDocumentRequest" - }, - "title": "Body" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CreateDocumentResponse" - }, - "title": "Response Batch Create Document Document Domain Batch Create Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/document/{domain}/{document_id}": { - "patch": { - "tags": [ - "Document" - ], - "summary": "Update Document", - "operationId": "update_document", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "document_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Document Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateDocumentRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateDocumentResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "get": { - "tags": [ - "Document" - ], - "summary": "Get Document By Id", - "operationId": "get_document_by_id", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "document_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Document Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetDocumentResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/document/{domain}/delete": { - "delete": { - "tags": [ - "Document" - ], - "summary": "Delete Document By Id", - "operationId": "delete_document_by_id", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteDocumentRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteDocumentResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/document/{domain}/batch-delete": { - "delete": { - "tags": [ - "Document" - ], - "summary": "Batch Delete Document", - "operationId": "batch_delete_document", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeleteDocumentRequest" - }, - "title": "Body" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteDocumentResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/document/{domain}": { - "get": { - "tags": [ - "Document" - ], - "summary": "Get Documents", - "operationId": "get_documents", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "The page number for pagination", - "title": "Page" - }, - "description": "The page number for pagination" - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "The number of documents per page", - "title": "Limit" - }, - "description": "The number of documents per page" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetDocumentsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/document/{domain}/delete-all": { - "delete": { - "tags": [ - "Document" - ], - "summary": "Delete All Documents", - "operationId": "delete_all_documents", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteDocumentResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/feedback/{domain}": { - "post": { - "tags": [ - "Feedback" - ], - "summary": "Create Feedback", - "operationId": "create_feedback", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFeedbackRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFeedbackResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/feedback/{domain}/{conversation_id}": { - "get": { - "tags": [ - "Feedback" - ], - "summary": "Get Feedback By Id", - "operationId": "get_feedback_by_id", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "conversation_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Conversation Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetFeedbackResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/guidance/{domain}/create": { - "post": { - "tags": [ - "Guidance" - ], - "summary": "Create Guidance", - "operationId": "create_guidance", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGuidanceRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGuidanceResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/guidance/{domain}/{guidance_id}": { - "patch": { - "tags": [ - "Guidance" - ], - "summary": "Update", - "operationId": "update", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "guidance_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Guidance Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateGuidanceRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateGuidanceResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "tags": [ - "Guidance" - ], - "summary": "Delete Guidance By Id", - "operationId": "delete_guidance_by_id", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "guidance_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Guidance Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteGuidanceResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "get": { - "tags": [ - "Guidance" - ], - "summary": "Get Guidance By Id", - "operationId": "get_guidance_by_id", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "guidance_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Guidance Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetGuidanceResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/guidance/{domain}": { - "get": { - "tags": [ - "Guidance" - ], - "summary": "Get Guidances", - "operationId": "get_guidances", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "The page number for pagination", - "title": "Page" - }, - "description": "The page number for pagination" - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "The number of documents per page", - "title": "Limit" - }, - "description": "The number of documents per page" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetGuidancesResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/health": { - "get": { - "tags": [ - "Health" - ], - "summary": "Health Check", - "description": "Health check endpoint that returns the application status.", - "operationId": "health_check", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/index/{domain}/reconstruct": { - "post": { - "tags": [ - "Index" - ], - "summary": "Reconstruct Query Index", - "operationId": "reconstruct_query_index", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReconstructIndexResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/index/{domain}/sync": { - "post": { - "tags": [ - "Index" - ], - "summary": "Sync Index To Query Index", - "operationId": "sync_index_to_query_index", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncIndexRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncIndexResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/jobs/{job_id}/status": { - "get": { - "tags": [ - "Index" - ], - "summary": "Get Job Status", - "operationId": "get_job_status", - "parameters": [ - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JobStatusResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/mcp/semantic/{domain}": { - "post": { - "tags": [ - "Mcp" - ], - "summary": "Get Mcp Semantic Query", - "operationId": "get_mcp_semantic_query", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetMcpSemanticQueryRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetMcpSemanticQueryResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/mcp/bmf/{domain}": { - "post": { - "tags": [ - "Mcp" - ], - "summary": "Get Mcp Bmf Query", - "operationId": "get_mcp_bmf_query", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetMcpBmfQueryRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetMcpBmfQueryResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/queries": { - "post": { - "tags": [ - "Query" - ], - "summary": "Create Query", - "operationId": "create_query", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateQueryResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/queries/{domain}": { - "get": { - "tags": [ - "Query" - ], - "summary": "Get Recent Queries", - "operationId": "get_recent_queries", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "The page number for pagination", - "title": "Page" - }, - "description": "The page number for pagination" - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "The number of queries per page", - "title": "Limit" - }, - "description": "The number of queries per page" - }, - { - "name": "cutoff_time", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "Only return queries after this time", - "title": "Cutoff Time" - }, - "description": "Only return queries after this time" - }, - { - "name": "include_assistant", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Whether to include assistant responses in the results", - "title": "Include Assistant" - }, - "description": "Whether to include assistant responses in the results" - }, - { - "name": "start_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The start date of the period to retrieve analytics for", - "title": "Start Date" - }, - "description": "The start date of the period to retrieve analytics for" - }, - { - "name": "end_date", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "description": "The end date of the period to retrieve analytics for", - "title": "End Date" - }, - "description": "The end date of the period to retrieve analytics for" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetQueriesResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/settings/ask-ai": { - "get": { - "tags": [ - "Settings" - ], - "summary": "Get Settings", - "description": "Get settings for a domain and organization.", - "operationId": "get_settings", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetSettingsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/settings/ask-ai/docs": { - "get": { - "tags": [ - "Settings" - ], - "summary": "Get Docs Settings", - "description": "Get settings for a domain and organization.", - "operationId": "get_docs_settings", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetSettingsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/settings/ask-ai/slack": { - "get": { - "tags": [ - "Settings" - ], - "summary": "Get Slack Settings", - "description": "Get settings for a domain and organization.", - "operationId": "get_slack_settings", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetSettingsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/settings/ask-ai/discord": { - "get": { - "tags": [ - "Settings" - ], - "summary": "Get Discord Settings", - "description": "Get settings for a domain and organization.", - "operationId": "get_discord_settings", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetSettingsResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/settings/ask-ai/toggle": { - "post": { - "tags": [ - "Settings" - ], - "summary": "Toggle Ask Ai", - "description": "Toggle Ask AI setting and return job_id for tracking.\n\nArgs:\n domain: Domain to toggle Ask AI for\n org_name: Organization name\n preview: Whether this is a preview deployment\n locations: Optional list of locations to enable. Valid values: docs, slack, discord", - "operationId": "toggle_ask_ai", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "org_name", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Org Name" - } - }, - { - "name": "preview", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Preview" - } - }, - { - "name": "locations", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "array", - "items": { - "enum": [ - "docs", - "slack", - "discord" - ], - "type": "string" - } - }, - { - "type": "null" - } - ], - "title": "Locations" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToggleAskAiResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/settings/ask-ai/reindex": { - "post": { - "tags": [ - "Settings" - ], - "summary": "Reindex Ask Ai", - "description": "Manually trigger reindex for an already enabled Ask AI setup.", - "operationId": "reindex_ask_ai", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - }, - { - "name": "org_name", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Org Name" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToggleAskAiResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/settings/ask-ai/toggle/status": { - "get": { - "tags": [ - "Settings" - ], - "summary": "Get Toggle Status", - "description": "Get the status of Ask AI toggle operation.", - "operationId": "get_toggle_status", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToggleStatusResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/settings/reindex-preview-callback": { - "post": { - "tags": [ - "Settings" - ], - "summary": "Reindex Preview Callback", - "description": "Handle callback from Upstash QStash when preview reindex completes.", - "operationId": "reindex_preview_callback", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpstashCallbackRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/integrations": { - "post": { - "tags": [ - "Slack" - ], - "summary": "Create Slack Integration", - "operationId": "create_slack_integration", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateSlackIntegration" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SlackIntegrationResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/events": { - "post": { - "tags": [ - "Slack" - ], - "summary": "Handle Slack Events", - "operationId": "handle_slack_events", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/slash-commands": { - "post": { - "tags": [ - "Slack" - ], - "summary": "Handle Slack Slash Commands", - "operationId": "handle_slack_slash_commands", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/interactions": { - "post": { - "tags": [ - "Slack" - ], - "summary": "Handle Slack Interactions", - "operationId": "handle_slack_interactions", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/oauth/callback": { - "get": { - "tags": [ - "Slack" - ], - "summary": "Handle Slack Oauth Callback", - "operationId": "handle_slack_oauth_callback", - "parameters": [ - { - "name": "code", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Code" - } - }, - { - "name": "state", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "State" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/get-install": { - "get": { - "tags": [ - "Slack" - ], - "summary": "Get Slack Install Link", - "operationId": "get_slack_install_link", - "parameters": [ - { - "name": "domain", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "customers" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/slack/integrations/{domain}": { - "get": { - "tags": [ - "Slack" - ], - "summary": "List Slack Integrations", - "operationId": "list_slack_integrations", - "parameters": [ - { - "name": "domain", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Domain" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - }, - "/slack/get-install/{integration_id}": { - "get": { - "tags": [ - "Slack" - ], - "summary": "Get Slack Install Link By Id", - "operationId": "get_slack_install_link_by_id", - "parameters": [ - { - "name": "integration_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Integration Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "x-fern-audiences": [ - "internal" - ] - } - } - }, - "components": { - "schemas": { - "ChatMessage": { - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant" - ], - "title": "Role" - }, - "content": { - "type": "string", - "title": "Content" - } - }, - "type": "object", - "required": [ - "role", - "content" - ], - "title": "ChatMessage" - }, - "Conversation": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - }, - "turns": { - "items": { - "$ref": "#/components/schemas/ConversationTurn" - }, - "type": "array", - "title": "Turns" - } - }, - "type": "object", - "required": [ - "conversation_id", - "created_at", - "turns" - ], - "title": "Conversation" - }, - "ConversationTurn": { - "properties": { - "role": { - "type": "string", - "title": "Role" - }, - "text": { - "type": "string", - "title": "Text" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - }, - "feedback": { - "anyOf": [ - { - "$ref": "#/components/schemas/ConversationTurnFeedback" - }, - { - "type": "null" - } - ] - } - }, - "type": "object", - "required": [ - "role", - "text", - "created_at" - ], - "title": "ConversationTurn" - }, - "ConversationTurnFeedback": { - "properties": { - "is_helpful": { - "type": "boolean", - "title": "Is Helpful" - }, - "feedback_message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Feedback Message" - } - }, - "type": "object", - "required": [ - "is_helpful" - ], - "title": "ConversationTurnFeedback" - }, - "CreateDocumentRequest": { - "properties": { - "document": { - "type": "string", - "title": "Document", - "description": "The content of the document that will be returned to Ask Fern during document retrieval." - }, - "chunk": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Chunk", - "description": "The textual content that should be vectorized when indexing the document. If not provided, the full document will be vectorized." - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Title", - "description": "The title of the document. This will be used with the `url` when Ask Fern cites this document." - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Url", - "description": "The url of the document. This will be used as the source of the document when Ask Fern cites it." - }, - "version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Version", - "description": "The version of the document. This will be compared against when running Ask Fern with version filters. If null, the document will be retrievable by all versions." - }, - "product": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Product", - "description": "The product of the document. This will be used to filter documents when running Ask Fern with product filters. If null, the document will be retrievable by all products." - }, - "keywords": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Keywords", - "description": "The keywords of the document. Adding keywords can improve document matching." - }, - "authed": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Authed", - "description": "Whether the document is authed. If true, the document will be retrievable by all users." - } - }, - "type": "object", - "required": [ - "document" - ], - "title": "CreateDocumentRequest" - }, - "CreateDocumentResponse": { - "properties": { - "document_id": { - "type": "string", - "title": "Document Id", - "description": "The unique identifier of the created document" - } - }, - "type": "object", - "required": [ - "document_id" - ], - "title": "CreateDocumentResponse" - }, - "CreateFeedbackRequest": { - "properties": { - "conversation_id": { - "type": "string", - "title": "Conversation Id", - "description": "The ID of the conversation" - }, - "query_id": { - "type": "string", - "title": "Query Id", - "description": "The ID of the query" - }, - "domain": { - "type": "string", - "title": "Domain", - "description": "The domain of the conversation" - }, - "is_helpful": { - "type": "boolean", - "title": "Is Helpful", - "description": "Whether the conversation was helpful" - }, - "feedback_message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Feedback Message", - "description": "The feedback message from the user" - }, - "user_email": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "User Email", - "description": "The email of the user" - } - }, - "type": "object", - "required": [ - "conversation_id", - "query_id", - "domain", - "is_helpful", - "feedback_message", - "user_email" - ], - "title": "CreateFeedbackRequest" - }, - "CreateFeedbackResponse": { - "properties": { - "feedback_id": { - "type": "string", - "title": "Feedback Id", - "description": "The ID of the created feedback" - } - }, - "type": "object", - "required": [ - "feedback_id" - ], - "title": "CreateFeedbackResponse" - }, - "CreateGuidanceRequest": { - "properties": { - "context": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Context", - "description": "The context of the guidance document, as a list of strings, that will be indexed. Each string will be vectorized separately to generate a separate record." - }, - "document": { - "type": "string", - "title": "Document", - "description": "The content of the guidance document that will be returned to Ask Fern during Ask Fern retrieval." - } - }, - "type": "object", - "required": [ - "context", - "document" - ], - "title": "CreateGuidanceRequest" - }, - "CreateGuidanceResponse": { - "properties": { - "guidance_id": { - "type": "string", - "title": "Guidance Id", - "description": "The unique identifier of the created guidance document" - } - }, - "type": "object", - "required": [ - "guidance_id" - ], - "title": "CreateGuidanceResponse" - }, - "CreateQueryResponse": { - "properties": { - "query_id": { - "type": "string", - "title": "Query Id", - "description": "Unique identifier for the query" - } - }, - "type": "object", - "required": [ - "query_id" - ], - "title": "CreateQueryResponse" - }, - "CreateSlackIntegration": { - "properties": { - "domain": { - "type": "string", - "title": "Domain" - } - }, - "type": "object", - "required": [ - "domain" - ], - "title": "CreateSlackIntegration" - }, - "DeleteDocumentRequest": { - "properties": { - "document_id": { - "type": "string", - "title": "Document Id", - "description": "The unique identifier of the document to delete" - } - }, - "type": "object", - "required": [ - "document_id" - ], - "title": "DeleteDocumentRequest" - }, - "DeleteDocumentResponse": { - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "description": "Whether the documents was successfully deleted" - } - }, - "type": "object", - "required": [ - "success" - ], - "title": "DeleteDocumentResponse" - }, - "DeleteGuidanceResponse": { - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "description": "Whether the guidance document was successfully deleted" - } - }, - "type": "object", - "required": [ - "success" - ], - "title": "DeleteGuidanceResponse" - }, - "DiscordIntegrationResponse": { - "properties": { - "integration_url": { - "type": "string", - "title": "Integration Url" - } - }, - "type": "object", - "required": [ - "integration_url" - ], - "title": "DiscordIntegrationResponse" - }, - "Document": { - "properties": { - "document_id": { - "type": "string", - "title": "Document Id" - }, - "domain": { - "type": "string", - "title": "Domain" - }, - "chunk": { - "type": "string", - "title": "Chunk" - }, - "document": { - "type": "string", - "title": "Document" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Title" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Url" - }, - "version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Version" - }, - "product": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Product" - }, - "keywords": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Keywords" - }, - "authed": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Authed" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "title": "Updated At" - } - }, - "type": "object", - "required": [ - "document_id", - "domain", - "chunk", - "document", - "created_at", - "updated_at" - ], - "title": "Document" - }, - "Feedback": { - "properties": { - "query_id": { - "type": "string", - "title": "Query Id" - }, - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "domain": { - "type": "string", - "title": "Domain" - }, - "is_helpful": { - "type": "boolean", - "title": "Is Helpful" - }, - "feedback_message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Feedback Message" - }, - "user_email": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "User Email" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - } - }, - "type": "object", - "required": [ - "query_id", - "conversation_id", - "domain", - "is_helpful", - "created_at" - ], - "title": "Feedback" - }, - "GetConversationResolutionResponse": { - "properties": { - "total_conversations": { - "type": "integer", - "title": "Total Conversations", - "description": "Total number of conversations in the period" - }, - "resolved_conversations": { - "type": "integer", - "title": "Resolved Conversations", - "description": "Number of resolved conversations" - }, - "unresolved_conversations": { - "type": "integer", - "title": "Unresolved Conversations", - "description": "Number of unresolved conversations" - }, - "resolution_rate": { - "type": "number", - "title": "Resolution Rate", - "description": "Percentage of conversations resolved (0-100)" - } - }, - "type": "object", - "required": [ - "total_conversations", - "resolved_conversations", - "unresolved_conversations", - "resolution_rate" - ], - "title": "GetConversationResolutionResponse" - }, - "GetConversationResponse": { - "properties": { - "conversation": { - "$ref": "#/components/schemas/Conversation", - "description": "The complete conversation with all turns" - } - }, - "type": "object", - "required": [ - "conversation" - ], - "title": "GetConversationResponse" - }, - "GetDocumentResponse": { - "properties": { - "document": { - "$ref": "#/components/schemas/Document", - "description": "The requested document" - } - }, - "type": "object", - "required": [ - "document" - ], - "title": "GetDocumentResponse" - }, - "GetDocumentsResponse": { - "properties": { - "documents": { - "items": { - "$ref": "#/components/schemas/Document" - }, - "type": "array", - "title": "Documents", - "description": "List of documents for the domain" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationResponse", - "description": "Pagination information for the document list" - } - }, - "type": "object", - "required": [ - "documents", - "pagination" - ], - "title": "GetDocumentsResponse" - }, - "GetFeedbackResponse": { - "properties": { - "feedback": { - "$ref": "#/components/schemas/Feedback", - "description": "The returned feedback" - } - }, - "type": "object", - "required": [ - "feedback" - ], - "title": "GetFeedbackResponse" - }, - "GetGuidanceResponse": { - "properties": { - "guidance": { - "$ref": "#/components/schemas/Guidance", - "description": "The requested guidance document" - } - }, - "type": "object", - "required": [ - "guidance" - ], - "title": "GetGuidanceResponse" - }, - "GetGuidancesResponse": { - "properties": { - "guidances": { - "items": { - "$ref": "#/components/schemas/Guidance" - }, - "type": "array", - "title": "Guidances", - "description": "List of guidance documents for the domain" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationResponse", - "description": "Pagination information for the guidance document list" - } - }, - "type": "object", - "required": [ - "guidances", - "pagination" - ], - "title": "GetGuidancesResponse" - }, - "GetHistogramAnalyticsResponse": { - "properties": { - "bars": { - "items": { - "$ref": "#/components/schemas/HistogramAnalyticsBar" - }, - "type": "array", - "title": "Bars", - "description": "List of histogram analytics bars" - } - }, - "type": "object", - "required": [ - "bars" - ], - "title": "GetHistogramAnalyticsResponse" - }, - "GetInsightsResponse": { - "properties": { - "insights": { - "items": { - "$ref": "#/components/schemas/InsightWithMetadata" - }, - "type": "array", - "title": "Insights", - "description": "List of insights with query counts" - } - }, - "type": "object", - "required": [ - "insights" - ], - "title": "GetInsightsResponse" - }, - "GetMcpBmfQueryRequest": { - "properties": { - "keywords": { - "type": "string", - "title": "Keywords", - "description": "The bm25 keywords to get the documents for" - } - }, - "type": "object", - "required": [ - "keywords" - ], - "title": "GetMcpBmfQueryRequest" - }, - "GetMcpBmfQueryResponse": { - "properties": { - "documents": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Documents", - "description": "A list of documents that are relevant to the keyword" - } - }, - "type": "object", - "required": [ - "documents" - ], - "title": "GetMcpBmfQueryResponse" - }, - "GetMcpSemanticQueryRequest": { - "properties": { - "semantic_query": { - "type": "string", - "title": "Semantic Query", - "description": "The semantic query to get the documents for" - } - }, - "type": "object", - "required": [ - "semantic_query" - ], - "title": "GetMcpSemanticQueryRequest" - }, - "GetMcpSemanticQueryResponse": { - "properties": { - "documents": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Documents", - "description": "A list of documents that are semantically relevant to the query" - } - }, - "type": "object", - "required": [ - "documents" - ], - "title": "GetMcpSemanticQueryResponse" - }, - "GetQueriesResponse": { - "properties": { - "queries": { - "items": { - "$ref": "#/components/schemas/Query" - }, - "type": "array", - "title": "Queries", - "description": "List of queries matching the request criteria" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationResponse", - "description": "Pagination information" - } - }, - "type": "object", - "required": [ - "queries", - "pagination" - ], - "title": "GetQueriesResponse" - }, - "GetSettingsResponse": { - "properties": { - "ask_ai_enabled": { - "type": "boolean", - "title": "Ask Ai Enabled", - "description": "Whether Ask AI is enabled" - }, - "job_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Job Id", - "description": "Active job ID if reindexing is in progress" - } - }, - "type": "object", - "required": [ - "ask_ai_enabled" - ], - "title": "GetSettingsResponse" - }, - "GroupBy": { - "type": "string", - "enum": [ - "DAY", - "WEEK", - "MONTH" - ], - "title": "GroupBy" - }, - "Guidance": { - "properties": { - "domain": { - "type": "string", - "title": "Domain" - }, - "context": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Context" - }, - "document": { - "type": "string", - "title": "Document" - }, - "guidance_id": { - "type": "string", - "title": "Guidance Id" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "title": "Updated At" - } - }, - "type": "object", - "required": [ - "domain", - "context", - "document", - "guidance_id", - "created_at", - "updated_at" - ], - "title": "Guidance" - }, - "HTTPValidationError": { - "properties": { - "detail": { - "items": { - "$ref": "#/components/schemas/ValidationError" - }, - "type": "array", - "title": "Detail" - } - }, - "type": "object", - "title": "HTTPValidationError" - }, - "HistogramAnalyticsBar": { - "properties": { - "label": { - "type": "string", - "title": "Label" - }, - "queryCount": { - "type": "integer", - "title": "Querycount" - }, - "conversationCount": { - "type": "integer", - "title": "Conversationcount" - }, - "conversationsPositiveCount": { - "type": "integer", - "title": "Conversationspositivecount" - }, - "conversationsNegativeCount": { - "type": "integer", - "title": "Conversationsnegativecount" - } - }, - "type": "object", - "required": [ - "label", - "queryCount", - "conversationCount", - "conversationsPositiveCount", - "conversationsNegativeCount" - ], - "title": "HistogramAnalyticsBar" - }, - "InsightExample": { - "properties": { - "query": { - "type": "string", - "title": "Query" - }, - "conversationId": { - "type": "string", - "title": "Conversationid" - } - }, - "type": "object", - "required": [ - "query", - "conversationId" - ], - "title": "InsightExample" - }, - "InsightWithMetadata": { - "properties": { - "insightText": { - "type": "string", - "title": "Insighttext" - }, - "numberOfQueries": { - "type": "integer", - "title": "Numberofqueries" - }, - "examples": { - "items": { - "$ref": "#/components/schemas/InsightExample" - }, - "type": "array", - "title": "Examples" - } - }, - "type": "object", - "required": [ - "insightText", - "numberOfQueries", - "examples" - ], - "title": "InsightWithMetadata" - }, - "JobStatusResponse": { - "properties": { - "job_id": { - "type": "string", - "title": "Job Id", - "description": "The job ID" - }, - "status": { - "type": "string", - "title": "Status", - "description": "Current status of the job" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At", - "description": "When the job was created" - }, - "started_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Started At", - "description": "When the job started" - }, - "completed_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Completed At", - "description": "When the job completed" - }, - "success": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Success", - "description": "Whether the job succeeded (only set when completed)" - }, - "error": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Error", - "description": "Error message if the job failed" - } - }, - "type": "object", - "required": [ - "job_id", - "status", - "created_at" - ], - "title": "JobStatusResponse" - }, - "LanguageModel": { - "type": "string", - "enum": [ - "claude-4-sonnet-20250514", - "command-a-03-2025" - ], - "title": "LanguageModel" - }, - "PaginationResponse": { - "properties": { - "total": { - "type": "integer", - "title": "Total" - }, - "page": { - "type": "integer", - "title": "Page" - }, - "limit": { - "type": "integer", - "title": "Limit" - } - }, - "type": "object", - "required": [ - "total", - "page", - "limit" - ], - "title": "PaginationResponse" - }, - "PostChatCompletionRequest": { - "properties": { - "model": { - "anyOf": [ - { - "$ref": "#/components/schemas/LanguageModel" - }, - { - "type": "null" - } - ], - "description": "The model to use for the chat completion" - }, - "system_prompt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "System Prompt", - "description": "The system prompt to use for the chat completion" - }, - "messages": { - "items": { - "$ref": "#/components/schemas/ChatMessage" - }, - "type": "array", - "title": "Messages", - "description": "The messages to use for the chat completion" - } - }, - "type": "object", - "required": [ - "messages" - ], - "title": "PostChatCompletionRequest" - }, - "PostChatCompletionResponse": { - "properties": { - "turns": { - "items": { - "$ref": "#/components/schemas/ChatMessage" - }, - "type": "array", - "title": "Turns", - "description": "The conversation turns in the chat completion" - }, - "citations": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Citations", - "description": "List of citation strings" - } - }, - "type": "object", - "required": [ - "turns", - "citations" - ], - "title": "PostChatCompletionResponse" - }, - "Query": { - "properties": { - "query_id": { - "type": "string", - "title": "Query Id" - }, - "conversation_id": { - "type": "string", - "title": "Conversation Id" - }, - "domain": { - "type": "string", - "title": "Domain" - }, - "text": { - "type": "string", - "title": "Text" - }, - "role": { - "type": "string", - "title": "Role" - }, - "source": { - "type": "string", - "title": "Source" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - }, - "time_to_first_token": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "title": "Time To First Token" - } - }, - "type": "object", - "required": [ - "query_id", - "conversation_id", - "domain", - "text", - "role", - "source", - "created_at" - ], - "title": "Query" - }, - "ReconstructIndexResponse": { - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "description": "Whether the query index reconstruction was successful" - } - }, - "type": "object", - "required": [ - "success" - ], - "title": "ReconstructIndexResponse" - }, - "SlackIntegrationResponse": { - "properties": { - "integration_id": { - "type": "string", - "title": "Integration Id" - }, - "domain": { - "type": "string", - "title": "Domain" - }, - "slack_team_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Slack Team Id" - }, - "slack_team_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Slack Team Name" - }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" - }, - "installed_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Installed At" - } - }, - "type": "object", - "required": [ - "integration_id", - "domain", - "created_at" - ], - "title": "SlackIntegrationResponse" - }, - "SyncIndexRequest": { - "properties": { - "index_name": { - "type": "string", - "title": "Index Name", - "description": "The name of the index to sync" - } - }, - "type": "object", - "required": [ - "index_name" - ], - "title": "SyncIndexRequest" - }, - "SyncIndexResponse": { - "properties": { - "job_id": { - "type": "string", - "title": "Job Id", - "description": "The ID of the sync job" - } - }, - "type": "object", - "required": [ - "job_id" - ], - "title": "SyncIndexResponse" - }, - "ToggleAskAiResponse": { - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "description": "Whether the toggle operation was successful" - }, - "job_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Job Id", - "description": "Job ID for tracking reindex progress (only when enabling Ask AI)" - }, - "ask_ai_enabled": { - "type": "boolean", - "title": "Ask Ai Enabled", - "description": "Current state of Ask AI (true if enabled, false if disabled)" - } - }, - "type": "object", - "required": [ - "success", - "ask_ai_enabled" - ], - "title": "ToggleAskAiResponse" - }, - "ToggleStatusResponse": { - "properties": { - "status": { - "type": "string", - "title": "Status", - "description": "Current job status (running, completed, failed, etc.)" - }, - "ask_ai_enabled": { - "type": "boolean", - "title": "Ask Ai Enabled", - "description": "Current state of Ask AI" - }, - "last_reindex_time": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Last Reindex Time", - "description": "ISO timestamp of last reindex" - } - }, - "type": "object", - "required": [ - "status", - "ask_ai_enabled" - ], - "title": "ToggleStatusResponse" - }, - "UpdateDocumentRequest": { - "properties": { - "document": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Document", - "description": "The updated content of the document that will be returned to Ask Fern during document retrieval. If not provided, this field will remain unchanged." - }, - "chunk": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Chunk", - "description": "The updated textual content that should be vectorized when indexing the document. If not provided, this field will remain unchanged." - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Title", - "description": "The updated title of the document. If not provided, this field will remain unchanged." - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Url", - "description": "The updated url of the document. If not provided, this field will remain unchanged." - }, - "version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Version", - "description": "The updated version of the document. If not provided, this field will remain unchanged." - }, - "product": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Product", - "description": "The updated product of the document. If not provided, this field will remain unchanged." - }, - "keywords": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Keywords", - "description": "The updated keywords of the document. If not provided, this field will remain unchanged." - }, - "authed": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Authed", - "description": "The updated authed status of the document. If not provided, this field will remain unchanged." - } - }, - "type": "object", - "title": "UpdateDocumentRequest" - }, - "UpdateDocumentResponse": { - "properties": { - "document": { - "$ref": "#/components/schemas/Document", - "description": "The updated document" - } - }, - "type": "object", - "required": [ - "document" - ], - "title": "UpdateDocumentResponse" - }, - "UpdateGuidanceRequest": { - "properties": { - "context": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Context", - "description": "The updated context of the guidance document, as a list of strings, that will be indexed. If not provided, this field will remain unchanged." - }, - "document": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Document", - "description": "The updated content of the guidance document that will be returned to Ask Fern during Ask Fern retrieval. If not provided, this field will remain unchanged." - } - }, - "type": "object", - "title": "UpdateGuidanceRequest" - }, - "UpdateGuidanceResponse": { - "properties": { - "guidance": { - "$ref": "#/components/schemas/Guidance", - "description": "The updated guidance document" - } - }, - "type": "object", - "required": [ - "guidance" - ], - "title": "UpdateGuidanceResponse" - }, - "UpstashCallbackRequest": { - "properties": { - "status": { - "type": "integer", - "title": "Status" - }, - "sourceMessageId": { - "type": "string", - "title": "Sourcemessageid" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Url" - }, - "method": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Method" - }, - "sourceHeader": { - "anyOf": [ - { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Sourceheader" - }, - "sourceBody": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Sourcebody" - }, - "notBefore": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Notbefore" - }, - "createdAt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Createdat" - }, - "scheduleId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Scheduleid" - }, - "callerIP": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Callerip" - } - }, - "type": "object", - "required": [ - "status", - "sourceMessageId" - ], - "title": "UpstashCallbackRequest", - "description": "Callback payload from Upstash QStash when a queued job completes." - }, - "ValidationError": { - "properties": { - "loc": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "type": "array", - "title": "Location" - }, - "msg": { - "type": "string", - "title": "Message" - }, - "type": { - "type": "string", - "title": "Error Type" - } - }, - "type": "object", - "required": [ - "loc", - "msg", - "type" - ], - "title": "ValidationError" - } - }, - "securitySchemes": { - "bearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT" - } - } - }, - "servers": [ - { - "url": "https://fai.buildwithfern.com", - "x-fern-server-name": "Production" - }, - { - "url": "https://fai-dev.buildwithfern.com", - "x-fern-server-name": "Development" - }, - { - "url": "http://localhost:8080", - "x-fern-server-name": "Local" - } - ] -} \ No newline at end of file