{"openapi":"3.1.0","info":{"title":"ecosystem.Ai Prediction Platform","description":"Real-Time AI for Personalization at Scale. A low-code platform that combines real-time predictive AI with behavioral science to drive intelligent personalization and actionable insights.","termsOfService":"https://ecosystem.ai","contact":{"name":"ecosystem.Ai","url":"https://ecosystem.ai","email":"natalie@ecosystem.ai"},"license":{"name":"Shared Source License","url":"https://ecosystem.ai"},"version":"0.7.9"},"servers":[{"url":"/api","description":"Default Server URL"}],"security":[{"JWT":[]}],"tags":[{"name":"Utilities","description":"General utilities for conversions and other activities."},{"name":"Modeling: Hosted Apps","description":"Manage hosted app provider profiles and hosted app lifecycle jobs."},{"name":"Ecosystem User Profiles","description":"ecosystemAi Engine testing and basic services."},{"name":"API Keys","description":"Generate API keys."},{"name":"Worker: Uber","description":"Uber worker services."},{"name":"Modeling: Reverse Engineer","description":"Reverse-engineer linked GitHub repos into project UML models."},{"name":"MCP: Data Server","description":"Model Context Protocol server for data operations including MongoDB, data munging, and transformations."},{"name":"Auth Controller","description":"Controller which provides functionality for authentication"},{"name":"Modeling: Document Generation","description":"Generate professional documents from UML diagrams with PDF/DOCX/Markdown output."},{"name":"Google Worker API","description":"Google prediction engine API access."},{"name":"Data Management Engine: Cassandra","description":"Cassandra data services."},{"name":"ecosystem-scoring-params","description":"Client Pulse Responder scoring parameter options."},{"name":"Ecosystem Main Admin","description":"ecosystemAi Engine"},{"name":"MCP: AI Server","description":"Model Context Protocol server for AI/ML capabilities including chat, embeddings, and predictions."},{"name":"Modeling: Cloud Target Generation","description":"Generate cloud-specific deployment configurations (GCP, AWS, Azure) from UML diagrams with async job processing."},{"name":"Modeling: LLM & Model Configuration","description":"Server-metered LLM chat completions and user AI model configuration management."},{"name":"Studio","description":"Studio chat sessions with server-side intent routing and MCP tool execution."},{"name":"Management Engine: Code Generation","description":"APIs for generating and compiling Java classes."},{"name":"Data Management Engine: Hive","description":"Hive data services."},{"name":"Modeling: UML Generation Jobs","description":"Async job-based UML generation with progress tracking, cancellation, and project locking."},{"name":"Modeling: UML Analysis","description":"Analyze system descriptions to generate UML diagrams using AI."},{"name":"Modeling: Storage & Generated Apps","description":"Manage user storage including uploaded files and generated application packages."},{"name":"Worker: Microsoft","description":"Microsoft worker services."},{"name":"Modeling: Ontology Roles","description":"Ontology role policies, mapping confirmation, and scoped security regen"},{"name":"Interactions API","description":"Real-time tracking of interactions."},{"name":"Modeling: Tracking & Analytics","description":"Log application events for analytics and notification triggers."},{"name":"Data Munging Engine","description":"Data services to munge and enhance features in data sets."},{"name":"MCP: Modeling Server","description":"Model Context Protocol server for UML modeling, code generation, and cloud deployment capabilities."},{"name":"Modeling: UML Analysis Jobs","description":"Async UML pre-analysis jobs for Quickstart flows."},{"name":"MCP: Algorithms Server","description":"Model Context Protocol server for ML algorithms, forecasting, and pipeline processing."},{"name":"Modeling: Ontology Synthesis","description":"Enhance and export project ontologies"},{"name":"Ecosystem Home","description":"ecosystemAi Server"},{"name":"AI Services API","description":"Endpoints for accessing AI-related services."},{"name":"Worker: H2O","description":"H2O prediction worker APIs."},{"name":"Modeling: Source Import","description":"Import source code from file uploads, GitHub, or GitLab repositories for analysis."},{"name":"Technical Assistant","description":"Technical assistant chat with page-aware prompt grounding and MCP-backed execution."},{"name":"Modeling: Prompt Completions","description":"Compose prompts from server templates and execute LLM completions with token accounting."},{"name":"Server Properties","description":"Manage server properties."},{"name":"Data Management Engine: Presto","description":"Presto data services."},{"name":"Modeling: Domain Completeness","description":"SHACL-based completeness reports for generated models against bundled domain shapes."},{"name":"Modeling: Synthetic Data Generation","description":"Generate realistic synthetic data from UML class diagrams with target-specific import support."},{"name":"Modeling: Application Generation","description":"Server-side application generation from UML diagrams. Supports pluggable strategies for different tech stacks with MCP-compliant output."},{"name":"OAuth2 Controller","description":"OAuth 2.1 and Microsoft Entra ID (Active Directory) authentication endpoints"},{"name":"Modeling: Pipeline Diagnostics","description":"Diagnose and auto-fix cloud pipeline errors"},{"name":"Modeling: App Generation Jobs","description":"Job-based application generation with progress tracking, duplicate protection, and result management."},{"name":"Prediction Engine","description":"Prediction engine services to create, build and deploy frames, models and manage predictions."},{"name":"Modeling: Ontology Validation","description":"Public RDF 1.2 / TTL / OWL 2 / SKOS / SHACL validation and actionable recommendations. No JWT required for /ontology/**."},{"name":"Modeling: Source Code Analysis","description":"Analyze source code files to generate UML diagrams. Supports file uploads and async job processing."},{"name":"Worker: PaaS","description":"PaaS Processes."},{"name":"Modeling: Project Versioning","description":"Create version snapshots, list version history, and rollback to previous versions."},{"name":"Billing API","description":"Endpoints for Stripe subscription and usage-based metered billing management. Supports recording LLM token usage for pay-as-you-go billing."},{"name":"Modeling: App Deploy IaC","description":"Generate self-managed Terraform/deploy scaffolds for app-generation artifacts."},{"name":"Modeling: Prompt Catalog","description":"Access server-side Contextual Prompt templates for UML generation and code synthesis."},{"name":"MCP OAuth","description":"OAuth 2.1 Authorization Server for MCP clients"},{"name":"Modeling: Git Publishing","description":"Configure Git repository connections and publish generated code to GitHub or GitLab."},{"name":"Worker: AWS","description":"Provides APIs for accessing AWS services. Admin-only access."},{"name":"Modeling: Management","description":"Project and diagram management APIs with server-side user filtering"},{"name":"Transaction Categorization","description":"Transaction level predictions."},{"name":"Modeling: Project Wizard","description":"Project Wizard run history on the user profile."},{"name":"Data Management Engine: Files","description":"File data services."},{"name":"Modeling: Bring Your Own Data","description":"Import existing SQL or MongoDB data models and upsert a class diagram onto a project."},{"name":"Ecosystem Pipelines","description":"ecosystemAi Pipeline Processing Engine."},{"name":"Algorithm: Ecosystem Algorithms","description":"Algorithms for predictive and real-time options."},{"name":"Ecosystem Generation Engine","description":"ecosystemAi Generation Engine."},{"name":"Modeling: PlantUML","description":"Server-side PlantUML: JSON diagram to source text, and text to SVG."},{"name":"Data Management Engine","description":"Data services to munge and enhance data assets."},{"name":"Modeling: Domain Catalog","description":"Bundled business-domain descriptions and seed ontologies used to enrich model and code generation. Public (no JWT)."}],"paths":{"/users/{id}":{"get":{"tags":["user-controller"],"operationId":"getUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserDTO"}}}}}},"put":{"tags":["user-controller"],"operationId":"updateUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserDTO"}}}}}},"delete":{"tags":["user-controller"],"operationId":"deleteUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/users/{id}/photo":{"get":{"tags":["user-controller"],"operationId":"getUserImage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"token","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}},"put":{"tags":["user-controller"],"operationId":"updateUserImage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Image"}}}}}}},"/users/current":{"get":{"tags":["user-controller"],"operationId":"getCurrentUser","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserDTO"}}}}}},"put":{"tags":["user-controller"],"operationId":"updateCurrentUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Tokens"}}}}}}},"/v1/responses":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"OpenAI Responses API (compatibility)","description":"OpenAI Responses API translator. Accepts `input` (string or array of input items), `instructions`, function tools, and standard generation parameters; routes through the same provider selector as /v1/chat/completions so all backend models (OpenAI-compat, Bedrock, Ollama, ecosystem.Ai, ecogentic-1.0) are supported unchanged. Non-streaming only in this release; stateless (store / previous_response_id accepted but ignored).","operationId":"openAiResponses","requestBody":{"description":"Responses-API request. Example: {\"model\":\"ecosystem.Ai\",\"input\":\"Say hi\"}","content":{"application/json":{"schema":{"type":"object","example":{"model":"ecosystem.Ai","input":"Say hi"}}}},"required":true},"responses":{"200":{"description":"Response created","content":{"application/json":{}}},"400":{"description":"Invalid request (including unsupported built-in tools)"},"501":{"description":"Streaming not yet implemented"},"502":{"description":"Upstream LLM error"}}}},"/v1/messages":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Anthropic Messages API (compatibility)","description":"Full Anthropic Messages API translator. Supports text, tool_use, tool_result blocks, streaming SSE, and routes to any backend model via the provider selector.","operationId":"anthropicMessages","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Message created","content":{"application/json":{}}},"500":{"description":"Internal server error"}}}},"/v1/health":{"get":{"tags":["Ecosystem Home"],"summary":"Check API health","description":"Returns a health status message indicating that the API is functioning correctly.","operationId":"getHealth","responses":{"200":{"description":"API health check successful.","content":{"application/json":{"schema":{"type":"string","example":"success"}}}},"500":{"description":"Internal server error occurred during the health check.","content":{"application/json":{}}}}},"post":{"tags":["Ecosystem Home"],"summary":"Handle health notifications","description":"Processes a health notification based on the provided notification parameter.","operationId":"handleNotifications","parameters":[{"name":"notification","in":"query","description":"The notification message or ID to process.","required":true,"schema":{"type":"string"},"example":"server_health_check"}],"responses":{"200":{"description":"Notification processed successfully.","content":{"application/json":{"schema":{"type":"string","example":"success"}}}},"400":{"description":"Invalid notification parameter provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the notification.","content":{"application/json":{}}}}}},"/v1/embeddings":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Create embeddings (OpenAI-compatible)","description":"Accepts OpenAI embeddings requests and forwards them to Ollama /api/embed.","operationId":"createEmbeddings","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Embeddings created","content":{"application/json":{}}},"400":{"description":"Invalid request payload","content":{"application/json":{"schema":{"type":"string"}}}},"502":{"description":"Embedding backend failed","content":{"application/json":{"schema":{"type":"string"}}}},"503":{"description":"Embedding backend is not configured","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/v1/chat/completions":{"get":{"tags":["AI Services API"],"summary":"Get completion API information","description":"Provides information about the /v1/chat/completions endpoint. Use POST requests for actual LLM calls.","operationId":"completions","responses":{"200":{"description":"Endpoint information retrieved successfully","content":{"application/json":{"schema":{"type":"string","example":"ecosystemAi Generative Server, use POST for LLM call."}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}},"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Chat Completions (streaming and non-streaming)","description":"Processes a chat completion request using the specified model. Supports both streaming (SSE) and non-streaming JSON responses depending on the 'stream' parameter in the input.","operationId":"getChatCompletions","requestBody":{"description":"Chat completion input request. Set 'stream' to true for a streaming response.","content":{"application/json":{"schema":{"type":"object","example":{"model":"llama3.2","messages":[{"role":"user","content":"Define innovation"}]}}}},"required":true},"responses":{"200":{"description":"Successful chat completion response","content":{"application/json":{"schema":{"type":"object","example":{"id":"chatcmpl-49","object":"chat.completion","created":1750340420,"model":"llama3.2","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":"Innovation is the process of introducing new or significantly improved ideas, products, services, processes, or solutions that create value for individuals, organizations, or society as a whole. It involves generating, developing, and deploying new concepts, technologies, or methods that can improve efficiency, productivity, quality, sustainability, or user experience.\n\nInnovation can take many forms, including:\n\n1. Product innovation: Introduction of new products or services that meet customer needs.\n2. Process innovation: Improvement of existing processes or development of new ones to increase efficiency and productivity.\n3. System innovation: Development of new systems or processes that can change the way things are done.\n4. Technological innovation: Use of new technologies, such as AI, blockchain, or biotechnology, to create new products or services.\n5. Social innovation: Creation of new ideas, products, or services that address social problems or improve community well-being.\n\nThe key characteristics of innovation include:\n\n1. Novelty: It introduces new or significantly improved ideas, products, or services.\n2. Value creation: It creates value for individuals, organizations, or society as a whole.\n3. Improvement: It improves existing processes, products, or services.\n4. Creativity: It requires creativity and imagination to generate new ideas.\n5. Risk-taking: It involves taking calculated risks to introduce new concepts or products.\n\nInnovation can be driven by various factors, including:\n\n1. Market demand\n2. Technological advancements\n3. Customer needs\n4. Organizational strategy\n5. Government policies\n\nThe benefits of innovation include:\n\n1. Increased competitiveness\n2. Improved market share\n3. Enhanced customer satisfaction\n4. Economic growth\n5. Social impact\n\nOverall, innovation is a key driver of economic growth, social progress, and organizational success."},"finish_reason":"stop"}],"usage":{"prompt_tokens":27,"completion_tokens":362,"total_tokens":389}}}}}},"400":{"description":"Invalid request payload"},"500":{"description":"Internal server error"}}}},"/users":{"get":{"tags":["user-controller"],"operationId":"getDataForGrid","parameters":[{"name":"usersGridFilter","in":"query","required":true,"schema":{"$ref":"#/components/schemas/UsersGridFilter"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/GridDataUserDTO"}}}}}},"post":{"tags":["user-controller"],"operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserDTO"}}}}}}},"/users/p":{"post":{"tags":["user-controller"],"operationId":"updatePassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/upload":{"post":{"tags":["Data Management Engine: Files"],"operationId":"uploadFile","parameters":[{"name":"path","in":"query","required":false,"schema":{"type":"string","default":"./"}},{"name":"isModule","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/updateProperties":{"post":{"tags":["Server Properties"],"summary":"Update properties file","description":"Update the entire properties file with new content.","operationId":"updateProperties","requestBody":{"description":"The updated properties file content as a string","content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Properties file successfully updated","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Invalid properties file content","content":{"application/json":{}}}}}},"/updateMongoDocuments":{"post":{"tags":["Data Management Engine"],"summary":"Update a document in a MongoDB collection","description":"This service updates a document in the specified MongoDB database and collection. If the document is found by its `_id`, it is updated. If no match is found or no `_id` is provided, a new document is created. Additionally, a copy of the old document is saved in an `_archive` collection.","operationId":"updateMongoDocuments","parameters":[{"name":"projectJSON","in":"query","description":"The JSON structure containing the database, collection, and document details. Example: {'database':'db1','collection':'coll1','document':{'f1':1, 'f2':'val1'}}","required":true,"schema":{"type":"string"},"example":"{'database':'db1','collection':'coll1','document':{'f1':1, 'f2':'val1'}}"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully updated or created the document and archived the old one.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/updateClientPulseResponder":{"post":{"tags":["ecosystem-scoring-params"],"summary":"Update Pulse Responder properties","description":"Allows updating Pulse Responder properties based on the `type` field. Supported types are: \n`pushConfigToPulseResponder`, `pushFeatureStore`, `processBatch`, `generateDefaultOptions`, `generateUpdatedOptions`, `insertDocument`, and `api`.","operationId":"updateClientPulseResponder","requestBody":{"description":"JSON payload containing the type of operation to execute and the related data.","content":{"application/json":{"schema":{"type":"string","example":{"type":"pushConfigToPulseResponder","uuid":"12345","properties":{"key1":"value1","key2":"value2"}}}}},"required":true},"responses":{"200":{"description":"Successfully executed the corresponding operation.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request or malformed JSON payload.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/thread":{"post":{"tags":["Ecosystem Pipelines"],"summary":"Retrieve thread information","description":"This endpoint retrieves information about a specific thread using its UUID.","operationId":"postThread","requestBody":{"description":"The UUID of the thread to retrieve.","content":{"application/json":{"schema":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000"}}},"required":true},"responses":{"200":{"description":"Successfully retrieved thread information.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid UUID or processing error.","content":{"application/json":{}}}}}},"/terminateInstance":{"post":{"tags":["Worker: PaaS"],"summary":"Terminate an instance","description":"Terminates the specified instance. Updates status to 'terminating' then to 'available'.\nRequest payload should be JSON: {\"instance\": \"<instanceId>\", \"signedUser\": {...}}","operationId":"terminateInstance","requestBody":{"description":"JSON containing the instance ID and signed user email.","content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"description":"Instance made available successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload.","content":{"text/plain":{}}},"500":{"description":"Server error during termination.","content":{"text/plain":{}}}}}},"/studio/sessions":{"post":{"tags":["Studio"],"summary":"Create session","description":"Create a new Studio chat session.","operationId":"createSession","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CreateSessionResponse"}}}}}}},"/studio/sessions/{sessionId}/messages":{"post":{"tags":["Studio"],"summary":"Send message","description":"Send a user message; server performs intent routing and MCP tool execution.","operationId":"sendMessage","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/stopInstance":{"post":{"tags":["Worker: PaaS"],"summary":"Stop an instance","description":"Stops the specified instance. Updates status to 'stopping' then to 'stopped'.\nRequest payload should be JSON: {\"instance\": \"<instanceId>\"}","operationId":"stopInstance","requestBody":{"description":"JSON containing the instance ID.","content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"description":"Instance stopped successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload.","content":{"text/plain":{}}},"500":{"description":"Server error during stop operation.","content":{"text/plain":{}}}}}},"/show":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Show model information","description":"Returns model metadata for permanent ecosystem models or proxies to Ollama for other models.","operationId":"show","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Model information retrieved","content":{"application/json":{}}},"404":{"description":"Model not found","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/setCredentials":{"get":{"tags":["Worker: AWS"],"summary":"Set AWS credentials via query parameter","description":"Sets the AWS credentials (key and secret) using a `string` query parameter containing a JSON object.","operationId":"setCredentials","parameters":[{"name":"string","in":"query","description":"A JSON string containing the AWS credentials. Example: `{\"key\":\"yourKey\",\"secret\":\"yourSecret\"}`.","required":true,"schema":{"type":"string"},"example":{"key":"yourKey","secret":"yourSecret"}}],"responses":{"200":{"description":"AWS credentials were successfully set.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload or missing credentials.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}},"post":{"tags":["Worker: AWS"],"summary":"Set AWS credentials","description":"Sets the AWS credentials (key and secret) for accessing AWS services. Requires a valid JSON payload with `key` and `secret` fields.","operationId":"setCredentialsPost","requestBody":{"description":"The JSON payload containing the AWS credentials.","content":{"application/json":{"schema":{"type":"string","example":{"key":"yourKey","secret":"yourSecret"}}}},"required":true},"responses":{"200":{"description":"AWS credentials were successfully set.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload or missing credentials.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/saveUserFrame":{"post":{"tags":["Prediction Engine"],"operationId":"saveUserFrame","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/saveUserDeployments":{"post":{"tags":["Prediction Engine"],"operationId":"saveUserDeployments","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/savePulseResponderProfile":{"post":{"tags":["ecosystem-scoring-params"],"summary":"Save client pulse responder profile data","description":"This endpoint saves a pulse responder profile using the provided JSON payload. It accepts a JSON string containing the data to be saved.","operationId":"savePulseResponderProfile","requestBody":{"description":"JSON payload containing the profile data to be saved.","content":{"application/json":{"schema":{"type":"string","example":{"profileId":"12345","profileName":"Example Name","settings":{"key1":"value1","key2":"value2"}}}}},"required":true},"responses":{"200":{"description":"Profile successfully saved.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. The provided JSON payload is malformed or invalid.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while saving the profile data.","content":{"application/json":{}}}}}},"/savePulseResponderDynamic":{"post":{"tags":["ecosystem-scoring-params"],"summary":"Save client pulse responder dynamic parameters","description":"This service saves dynamic parameters for the client pulse responder.","operationId":"savePulseResponderDynamic","requestBody":{"description":"A JSON string containing the dynamic parameters to be saved.","content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Process successfully completed.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid JSON input or malformed parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while saving the dynamic parameters.","content":{"application/json":{}}}}}},"/savePrediction":{"post":{"tags":["Prediction Engine"],"operationId":"savePrediction","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/savePredictionProject":{"post":{"tags":["Prediction Engine"],"operationId":"savePredictionProject","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/saveModel":{"post":{"tags":["Prediction Engine"],"operationId":"saveModel","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/saveAnalysis":{"post":{"tags":["Prediction Engine"],"operationId":"saveAnalysis","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/restartInstance":{"post":{"tags":["Worker: PaaS"],"summary":"Restart an instance","description":"Restarts the specified instance. Updates status to 'starting' then to 'running'.\nRequest payload should be JSON: {\"instance\": \"<instanceId>\"}","operationId":"restartInstance","requestBody":{"description":"JSON containing the instance ID.","content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"description":"Instance restarted successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload.","content":{"text/plain":{}}},"500":{"description":"Server error during restart operation.","content":{"text/plain":{}}}}}},"/pull":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Pull a model","description":"Proxies to Ollama /api/pull. Returns immediate success for permanent ecosystem models.","operationId":"pull","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Pull completed or model already available","content":{"application/json":{}}}}}},"/processToFrameParse":{"post":{"tags":["Worker: H2O"],"summary":"Process and parse data into a frame","description":"Processes the provided data and parses it into a specified data frame. The input data and frame name are required for this operation.","operationId":"processFileToFramePost","requestBody":{"description":"JSON payload containing the data to process and the name of the frame to parse the data into.","content":{"application/json":{"schema":{"type":"string","example":{"data":"<data-to-process>","frameName":"parsed_frame"}}}},"required":true},"responses":{"200":{"description":"Successfully processed and parsed the data into the frame.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input data or error during processing.","content":{"application/json":{}}}}}},"/processPush":{"post":{"tags":["Ecosystem Generation Engine"],"summary":"Process and generate properties","description":"Processes the `prediction_step` JSON payload provided in the POST body to generate properties.","operationId":"processPush","requestBody":{"description":"JSON payload containing the prediction step details to generate properties.","content":{"application/json":{"schema":{"type":"string","example":{"prediction_step":"generate_properties","key":"value"}}}},"required":true},"responses":{"200":{"description":"Successfully processed and generated properties.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input payload or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the process.","content":{"application/json":{}}}}}},"/processCallback":{"post":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process callback","description":"Processes a callback request by storing the provided data and returns a success message.","operationId":"processCallback","requestBody":{"description":"The callback payload to process.","content":{"application/json":{"schema":{"type":"string"},"example":{"event":"sample_event","data":{"key":"value"}}}},"required":true},"responses":{"200":{"description":"Callback processed successfully.","content":{"application/json":{"schema":{"type":"string","example":{"message":"Success"}}}}},"400":{"description":"Invalid request payload.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during callback processing.","content":{"application/json":{}}}}}},"/processBuild":{"post":{"tags":["Ecosystem Generation Engine"],"summary":"Process the build process","description":"Processes the build process using the `prediction_step` JSON payload provided in the POST body.","operationId":"processBuild","requestBody":{"description":"JSON payload containing the prediction step details for processing the build process.","content":{"application/json":{"schema":{"type":"string","example":{"prediction_step":"process_parameters","additional_key":"additional_value"}}}},"required":true},"responses":{"200":{"description":"Successfully processed the build process.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input JSON payload or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the process.","content":{"application/json":{}}}}}},"/processArimaForecast":{"post":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Calculate ARIMA forecast","description":"Processes a time series model using the ARIMA forecasting algorithm and returns the forecast results.","operationId":"calculateArima","requestBody":{"description":"The time series model containing data and forecast period.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeSeriesModel"},"example":{"tsData":[10.5,11.3,12.2,13.0],"forecastPeriod":5}}},"required":true},"responses":{"200":{"description":"Successfully calculated ARIMA forecast.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForecastResultModel"}}}},"400":{"description":"Invalid input data provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during ARIMA processing.","content":{"application/json":{}}}}}},"/predictionEnrichFast":{"get":{"tags":["Data Munging Engine"],"summary":"Fast Prediction-Based Enrichment with Scored Model Results","description":"Processes prediction enrichment by saving scored model results as attributes in a MongoDB collection. To set a threshold for the prediction, append `,p=<number>` to the `predictor` parameter.","operationId":"predictionEnrichFast","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where prediction enrichment is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"search","in":"query","description":"A query in JSON format to filter documents for prediction enrichment.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"sort","in":"query","description":"The sorting criteria to apply during prediction enrichment.","required":true,"schema":{"type":"string"},"example":{"createdDate":-1}},{"name":"predictor","in":"query","description":"The predictor model to use for enrichment. Use `,p=<number>` to set a threshold.","required":true,"schema":{"type":"string"},"example":"examplePredictor,p=0.8"},{"name":"predictor_label","in":"query","description":"The label used to save predictor results in the database.","required":true,"schema":{"type":"string"},"example":"predictionScore"},{"name":"attributes","in":"query","description":"Attributes from the documents used as input for predictions.","required":true,"schema":{"type":"array","items":{"type":"string"}},"example":["field1","field2","field3"]},{"name":"skip","in":"query","description":"The number of documents to skip during document processing.","required":true,"schema":{"type":"integer"},"example":10},{"name":"limit","in":"query","description":"The maximum number of documents to process during enrichment.","required":true,"schema":{"type":"integer"},"example":50}],"responses":{"200":{"description":"Prediction-based enrichment completed successfully.","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during prediction enrichment.","content":{"application/json":{}}}}},"post":{"tags":["Data Munging Engine"],"summary":"Fast Prediction-Based POST Enrichment","description":"Processes prediction enrichment by saving scored model results as attributes in a MongoDB collection. Accepts the data as a JSON payload in the `frameJSON` request body.","operationId":"predictionEnrichFastPOST","requestBody":{"description":"The JSON payload containing the necessary parameters for enrichment.","content":{"application/json":{"schema":{"type":"string","example":{"database":"exampleDatabase","collection":"exampleCollection","search":"{ \"status\": \"active\" }","sort":"{ \"createdDate\": -1 }","predictor":"examplePredictor","predictor_label":"predictionScore","attributes":["field1","field2"],"skip":10,"limit":50}}}},"required":true},"responses":{"200":{"description":"Prediction enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters in the request body.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during prediction enrichment.","content":{"application/json":{}}}}}},"/postMongoDBAggregatePipeline":{"post":{"tags":["Data Management Engine"],"summary":"Process MongoDB aggregation pipeline","description":"Processes a MongoDB aggregation pipeline and returns the result. Example input: {\"database\": \"master\",\"collection\": \"bank\",\"pipeline\": [{\"$match\":{\"loan\":\"no\"}}]}","operationId":"postMongoDBAggregatePipeline","requestBody":{"description":"JSON object containing the database name, collection name, and aggregation pipeline.","content":{"application/json":{"schema":{"type":"string","example":{"database":"master","collection":"bank","pipeline":[{"$match":{"loan":"no"}}]}}}},"required":true},"responses":{"200":{"description":"Successfully processed the aggregation pipeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input JSON or pipeline structure.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/postEcosystemRewardsExploreApproxContext":{"post":{"tags":["Data Munging Engine"],"summary":"Pipelines to approximate exploration for the Ecosystem Rewards algorithm by contextual variable value.","description":"Determines the probability that each of the offers in the logs is an exploration","operationId":"postEcosystemRewardsExplorationApproxContext","requestBody":{"description":"JSON object containing the start time, end time, options score collection and database, logging contacts collection and database and index check indicator","content":{"application/json":{"schema":{"type":"string","example":"{\"start_time\": \"2025-01-30T18:31:12\",\n\"end_time\": \"2025-01-31T18:31:12\",\n\"options_store_collection\": \"demo_options\",\n\"options_store_database\": \"recommender\",\n\"logging_collection\": \"ecosystemruntime\",\n\"logging_database\": \"logging\",\n\"predictor\": \"demo-recommender\",\n\"threshold\":\"0.001\",\n\"sample_size\": \"0\",\n\"score_filter\": \"false\";\n\"check_indexes\": \"true\"\n}"}}},"required":true},"responses":{"200":{"description":"Successfully processed the exploration pipeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input JSON or pipeline structure.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/postEcosystemRewardsExploration":{"post":{"tags":["Data Munging Engine"],"summary":"Pipelines to quantify exploration for the Ecosystem Rewards algorithm","description":"Runs a pipeline to determine the most popular offers in each segment and then determines that rate at which other offers are being recommended","operationId":"postEcosystemRewardsExploration","requestBody":{"description":"JSON object containing the start time, end time, options score collection and database, logging contacts collection and database and index check indicator","content":{"application/json":{"schema":{"type":"string","example":"{\"start_time\": \"2025-01-30T18:31:12\",\n\"end_time\": \"2025-01-31T18:31:12\",\n\"options_store_collection\": \"demo_options\",\n\"options_store_database\": \"recommender\",\n\"logging_collection\": \"ecosystemruntime\",\n\"logging_database\": \"logging\",\n\"predictor\": \"demo-recommender\",\n\"sample_size\": \"0\"\n\"check_indexes\": \"true\",\n}"}}},"required":true},"responses":{"200":{"description":"Successfully processed the exploration pipeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input JSON or pipeline structure.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/postEcosystemRewardsExplorationApprox":{"post":{"tags":["Data Munging Engine"],"summary":"Pipelines to approximate exploration for the Ecosystem Rewards algorithm","description":"Determines the probability that each of the offers in the logs is an exploration","operationId":"postEcosystemRewardsExplorationApprox","requestBody":{"description":"JSON object containing the start time, end time, options score collection and database, logging contacts collection and database and index check indicator","content":{"application/json":{"schema":{"type":"string","example":"{\"start_time\": \"2025-01-30T18:31:12\",\n\"end_time\": \"2025-01-31T18:31:12\",\n\"options_store_collection\": \"demo_options\",\n\"options_store_database\": \"recommender\",\n\"logging_collection\": \"ecosystemruntime\",\n\"logging_database\": \"logging\",\n\"predictor\": \"demo-recommender\",\n\"threshold\":\"0.001\",\n\"sample_size\": \"0\",\n\"score_filter\": \"false\"\n\"check_indexes\": \"true\"\n}"}}},"required":true},"responses":{"200":{"description":"Successfully processed the exploration pipeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input JSON or pipeline structure.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/postEcosystemRewardsBetaDistributionBoxPlots":{"post":{"tags":["Data Munging Engine"],"summary":"Produce box plot parameters for Beta distributions in the Ecosystem Rewards algorithm","description":"Runs a pipeline to get the distribution parameters filtered by the contextual variables and returns the quartile information used to produce a box and whisker plot","operationId":"postEcosystemRewardsBetaDistributionBoxPlots","requestBody":{"description":"JSON object containing the options score collection and database, contextual variable values and the outlier threshold","content":{"application/json":{"schema":{"type":"string","example":{"options_store_collection":"demo_options","options_store_database":"recommender","contextual_variable_one":"segment_one_value","contextual_variable_two":"segment_two_value","outlier_threshold":0.1,"show_low_data":"false"}}}},"required":true},"responses":{"200":{"description":"Successfully processed the exploration pipeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input JSON or pipeline structure.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/pipeline":{"post":{"tags":["Ecosystem Pipelines"],"operationId":"postPipeline","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/oauth/token":{"post":{"tags":["MCP OAuth"],"summary":"Token Endpoint","description":"OAuth 2.1 token endpoint. Exchange authorization code for access tokens.","operationId":"token","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string"},"code":{"type":"string"},"redirect_uri":{"type":"string"},"client_id":{"type":"string"},"client_secret":{"type":"string"},"code_verifier":{"type":"string"},"refresh_token":{"type":"string"}},"required":["grant_type"]}}}},"responses":{"200":{"description":"Tokens issued","content":{"application/json":{"example":{"access_token":"eyJhbGciOiJIUzI1NiJ9...","token_type":"Bearer","expires_in":3600,"refresh_token":"eyJhbGciOiJIUzI1NiJ9...","scope":"mcp:tools"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid client credentials","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/oauth/register":{"post":{"tags":["MCP OAuth"],"summary":"Register OAuth Client","description":"Dynamic client registration endpoint per RFC 7591. Allows MCP clients to register automatically.","operationId":"registerClient","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"201":{"description":"Client registered successfully","content":{"application/json":{"example":{"client_id":"mcp_abc123","client_secret":"secret_xyz789","client_name":"OpenAI ChatGPT","redirect_uris":["https://chat.openai.com/callback"],"grant_types":["authorization_code","refresh_token"],"token_endpoint_auth_method":"client_secret_post"}}}},"400":{"description":"Invalid registration request","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/oauth/login":{"get":{"tags":["MCP OAuth"],"operationId":"loginPage","parameters":[{"name":"redirect","in":"query","required":false,"schema":{"type":"string"}},{"name":"error","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}},"post":{"tags":["MCP OAuth"],"operationId":"handleLogin","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string"}},{"name":"password","in":"query","required":true,"schema":{"type":"string"}},{"name":"redirect","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/modeling/user/wizard/runs":{"post":{"tags":["Modeling: Project Wizard"],"summary":"Append Project Wizard run","description":"Appends a completed wizard run to the user's profile wizard array (newest first).","operationId":"appendWizardRun","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"Run saved","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Failed to save","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/user/model-config":{"get":{"tags":["Modeling: LLM & Model Configuration"],"summary":"Get User Model Config","description":"Get the user's custom AI model configuration for each tier (fast, standard, reasoning). Returns empty config if none exists.","operationId":"getUserModelConfig","responses":{"200":{"description":"Model config retrieved","content":{"application/json":{"example":{"fast":{"enabled":true,"baseUrl":"https://your-llm-endpoint.example/v1","apiKey":"sk-***","modelName":"configured-fast-model"},"standard":{"enabled":true,"baseUrl":"https://your-llm-endpoint.example/v1","apiKey":"sk-***","modelName":"configured-standard-model"},"reasoning":{"enabled":false,"baseUrl":"","apiKey":"","modelName":""}}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: LLM & Model Configuration"],"summary":"Save User Model Config","description":"Save the user's custom AI model configuration for each tier.","operationId":"saveUserModelConfig","requestBody":{"description":"Model configuration for each tier","content":{"application/json":{"schema":{"type":"string"},"example":{"fast":{"enabled":true,"baseUrl":"https://your-llm-endpoint.example/v1","apiKey":"sk-your-api-key","modelName":"configured-fast-model"},"standard":{"enabled":true,"baseUrl":"https://your-llm-endpoint.example/v1","apiKey":"sk-your-api-key","modelName":"configured-standard-model"},"reasoning":{"enabled":false,"baseUrl":"","apiKey":"","modelName":""}}}},"required":true},"responses":{"200":{"description":"Config saved","content":{"application/json":{"example":{"success":true,"message":"Model configuration saved successfully"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Failed to save","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/ontology-description":{"post":{"tags":["Modeling: UML Analysis"],"summary":"Generate System Description From Ontology","description":"Builds an editable Quickstart system description from an uploaded RDF/OWL ontology.","operationId":"generateOntologyDescription","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/jobs":{"post":{"tags":["Modeling: UML Generation Jobs"],"summary":"Create UML Generation Job","description":"Create a new UML diagram generation job. Jobs run asynchronously with progress tracking via SSE.","operationId":"createJob","requestBody":{"description":"UML generation job request","content":{"application/json":{"schema":{"type":"string"},"example":{"projectId":"proj_abc123xyz","projectName":"E-Commerce Platform","systemDescription":"Online shopping platform with users, products, cart, and orders","diagramTypeCounts":[{"type":"class","count":2},{"type":"sequence","count":3}]}}},"required":true},"responses":{"200":{"description":"Job created","content":{"application/json":{"example":{"jobId":"umljob_abc123xyz","status":"pending","projectId":"proj_abc123xyz"}}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: UML Generation Jobs"],"summary":"Cancel Job","description":"Cancel a running UML generation job.","operationId":"cancel","parameters":[{"name":"jobId","in":"path","description":"The job ID to cancel","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job cancelled","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analyze":{"post":{"tags":["Modeling: UML Analysis"],"summary":"Analyze System Description","description":"Analyze a system description and generate UML diagrams. Specify diagram types and counts to generate.","operationId":"analyze","requestBody":{"description":"Analysis request with system description and diagram configuration","content":{"application/json":{"schema":{"type":"string"},"example":{"systemDescription":"E-commerce platform with user authentication, product catalog, shopping cart, and order management. Users can browse products, add to cart, and checkout with payment processing.","diagramTypeCounts":[{"type":"class","count":2},{"type":"sequence","count":3},{"type":"useCase","count":1}]}}},"required":true},"responses":{"200":{"description":"Analysis completed","content":{"application/json":{"example":"{\n  \"success\": true,\n  \"diagrams\": [\n    {\n      \"type\": \"class\",\n      \"name\": \"Domain Model\",\n      \"elements\": [...],\n      \"relationships\": [...]\n    }\n  ],\n  \"tokenUsage\": {\n    \"prompt_tokens\": 500,\n    \"completion_tokens\": 2000,\n    \"total_tokens\": 2500\n  }\n}\n"}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analyze/stream":{"post":{"tags":["Modeling: UML Analysis"],"summary":"Analyze System Description (streaming)","description":"Stream analysis progress via SSE. Events: progress, complete, error.","operationId":"analyzeStream","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/modeling/uml/analyze-auto":{"post":{"tags":["Modeling: UML Analysis"],"summary":"Analyze System Description (Auto-Count)","description":"Single-pass analysis: extracts entities AND determines optimal diagram counts. The LLM decides how many sequence, activity, and state diagrams are needed based on the domain complexity. Class, package, and component are always 1.","operationId":"analyzeAutoCount","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analyze-auto/stream":{"post":{"tags":["Modeling: UML Analysis"],"summary":"Analyze System Description (Auto-Count, streaming)","description":"Stream auto-count analysis progress via SSE. Events: progress, complete, error.","operationId":"analyzeAutoStream","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/modeling/uml/analysis-jobs":{"post":{"tags":["Modeling: UML Analysis Jobs"],"summary":"Create UML analysis job","operationId":"createJob_1","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analysis-jobs/{jobId}/cancel":{"post":{"tags":["Modeling: UML Analysis Jobs"],"summary":"Cancel UML analysis job","operationId":"cancelJob","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/marketing-banner/event":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Log marketing site promo banner impression or click","description":"Public analytics for the marketing promo strip (no authentication required).","operationId":"logMarketingBannerEvent","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/modeling/tracking/log":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Log Event","description":"Log an application event for analytics tracking. Some events trigger notification emails.","operationId":"log","requestBody":{"description":"Event log request","content":{"application/json":{"schema":{"type":"string"},"examples":{"Page View":{"summary":"Log a page view event","description":"Page View","value":{"event":"page_view","data":{"page":"/workspace","referrer":"/landing"}}},"Feature Usage":{"summary":"Log feature usage","description":"Feature Usage","value":{"event":"feature_used","data":{"feature":"uml_generation","diagramType":"class","projectId":"proj_abc123xyz"}}},"App Signup":{"summary":"Log app signup (triggers notification)","description":"App Signup","value":{"event":"app_signup","data":{"email":"user@example.com","fullName":"John Doe"}}}}}},"required":true},"responses":{"200":{"description":"Event accepted. Persistence failures are logged for dashboard intervention.","content":{"application/json":{"example":{"success":true}}}}}}},"/modeling/tracking/admin/whitelist":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List whitelist entries with usage (admin)","description":"Rows from ecosystem_modeling.white_list with project/diagram/token totals (complimentary access — same collection as usage enforcement).","operationId":"getWhitelistWithMetrics","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Add or update whitelist entry (admin)","description":"Upserts by email (user). Optional date_from / date_to use the same formats as usage enforcement (ISO date or empty for open-ended).","operationId":"upsertWhitelist","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Tracking & Analytics"],"summary":"Remove whitelist entry (admin)","description":"Deletes by email (user key).","operationId":"deleteWhitelist","parameters":[{"name":"user","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/trial-licenses/extensions/{requestId}/assign-1m":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Assign another 1M trial tokens (admin)","description":"Approves a pending trial_extension request and grants an additional 1M trial tokens.","operationId":"assignTrialExtensionTokens","parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/send-banner":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Send sales email campaign","description":"Queue a sales email campaign via EmailService (not in-app banners). Requires ADMIN. Optional **bodyFormat**: `plain` (default) or `html` — HTML uses multipart/alternative with a plain-text fallback. Optional recipientPreset resolves recipients server-side; otherwise provide recipients array. Emails on the MongoDB security blocklist never receive sales campaign email. For in-app banner messages shown in the modeling app, use POST /admin/publish-in-app-banner-campaign.","operationId":"sendBanner","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Campaign accepted — emails are queued (10 per batch, 10s pause between batches). Check logs for banner_campaign_sent when finished.","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden - ADMIN authority required","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/security-blocks":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List MongoDB security blocklist (admin)","description":"All entries in ecosystem_modeling.user_security_blocklist (normalized email keys).","operationId":"listSecurityBlocks","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Add, update, or remove security block for an email (admin)","description":"Upserts or deletes a document in ecosystem_modeling.user_security_blocklist. Audit lines are written to ecosystem_modeling.logs via ModelingEventLogger.","operationId":"upsertSecurityBlock","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/publish-in-app-banner-campaign":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Publish in-app banner campaign","description":"Writes documents to ecosystem_modeling.banners for the SPA in-app banner (SystemBanner). Does **not** send email — use POST /admin/send-banner for email. Same body shape as send-banner (recipients or recipientPreset, mergeByEmail, segments). Optional: bannerType (info|warning|success|error), startMs, endMs (epoch ms; default active window is now → 30 days). Emails on the MongoDB security blocklist are excluded and receive no in-app banner.","operationId":"publishInAppBannerCampaign","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Banners inserted","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden - ADMIN authority required","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/pipeline-stripe-verify":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Verify Stripe subscriptions for pipeline users","description":"ADMIN only. Checks Stripe for each provided email. If a user has an active subscription and is not already whitelisted, adds them to the whitelist and logs a stripe_payment_verified event.","operationId":"pipelineStripeVerify","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/profiles":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List platform hosting profiles (admin)","description":"Returns admin-configured, platform-scoped hosting profiles (one or more per provider: gcp/aws/azure). Secrets are redacted.","operationId":"listPlatformHostingProfiles","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Create or update a platform hosting profile (admin)","description":"Provider is one of gcp, aws, azure. Secrets are passed in the 'environment' object (server encrypts at rest); provider-specific connection details go in 'metadata'. See com.ecosystem.modeling.hosting README for required fields.","operationId":"savePlatformHostingProfile","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/orphans/scan":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"[ADMIN] Scan cloud providers for orphaned EcosystemCode resources","description":"Lists resources matching the EcosystemCode tag/name convention that have no matching hosted_apps row. Each item includes a deletable flag and a profileId showing which credentials can force-delete it. Use POST /admin/hosting/orphans/delete-job to enqueue a deletion.","operationId":"scanAdminOrphans","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/orphans/delete-job":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"[ADMIN] Enqueue an orphan force-delete job","description":"Accepts an orphan descriptor as returned by /admin/hosting/orphans/scan and a profileId to authenticate the cloud delete. Returns { jobId } for polling via /modeling/tracking/admin/hosting/jobs.","operationId":"enqueueAdminOrphanDelete","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/apps/{hostingAppId}/delete-job":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Start a tier-selective delete job for a hosted app (admin)","description":"Enqueues an async hosted_app delete job that tears down only the requested tiers. Body: {\"tiers\": [\"frontend\", \"backend\", \"database\"]}. Defaults to all three. Returns the jobId so the dashboard can subscribe to the existing SSE stream.","operationId":"startAdminHostedAppDeleteJob","parameters":[{"name":"hostingAppId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting-access/{requestId}/deny":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Deny hosting access request (admin)","operationId":"denyHostingAccess","parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting-access/{requestId}/approve":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Approve hosting access request (admin)","operationId":"approveHostingAccess","parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/email-images":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Upload file for HTML sales email body (images, PDF, office, etc.)","description":"ADMIN only. Stores an allowlisted file under MODELING_DATA_PATH/email_images (dated subfolders) and returns a public HTTPS URL for <img src>, <a href>, etc.","operationId":"uploadEmailCampaignImage","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/email-images/purge":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Purge old email campaign images from disk","description":"ADMIN only. Deletes files under email_images/ older than **olderThanDays** (default 90). Very old campaign bodies may reference removed images.","operationId":"purgeEmailCampaignImages","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/campaign-recipients-preview":{"post":{"tags":["Modeling: Tracking & Analytics"],"summary":"Preview campaign preset count","description":"Returns how many non-admin users match a server-side recipient preset (SQL + Mongo), after excluding emails on the MongoDB security blocklist (same as send-banner / in-app publish).","operationId":"previewCampaignRecipients","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/synthetic-data/jobs":{"post":{"tags":["Modeling: Synthetic Data Generation"],"summary":"Create Synthetic Data Job","description":"Create a new synthetic data generation job. Analyzes class diagrams and generates realistic sample data.","operationId":"createJob_2","requestBody":{"description":"Synthetic data generation request","content":{"application/json":{"schema":{"type":"string"},"example":{"projectId":"proj_abc123xyz","projectName":"E-Commerce Platform","config":{"rowCount":25,"countMode":"semantic","outputFormats":["csv","json","sql"],"targetDatabases":["postgresql"],"includeDdl":true,"includeImportScript":true,"locale":"en-US","useGuidance":true,"guidance":"Use American customers, USD currency, New York/Chicago addresses."}}}},"required":true},"responses":{"200":{"description":"Job created successfully","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Duplicate job","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/synthetic-data/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: Synthetic Data Generation"],"summary":"Cancel Job","description":"Cancel a running synthetic data generation job.","operationId":"cancelJob_1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/storage/uploads":{"get":{"tags":["Modeling: Storage & Generated Apps"],"summary":"List Uploaded Files","description":"List all files uploaded by the authenticated user.","operationId":"listUploadedFiles","responses":{"200":{"description":"Files retrieved","content":{"application/json":{"example":{"files":[{"filename":"source.zip","sizeBytes":102400,"uploadedAt":"2026-01-23T10:00:00Z"},{"filename":"config.json","sizeBytes":1024,"uploadedAt":"2026-01-22T15:00:00Z"}],"count":2}}}}}},"post":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Upload File to User Storage","description":"Upload an image/document file to the authenticated user's uploads storage.","operationId":"uploadFileToStorage","parameters":[{"name":"file","in":"query","description":"File to upload","required":true}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-import/upload":{"post":{"tags":["Modeling: Source Import"],"summary":"Import from File Upload","description":"Upload a file (zip archive or single file) to import source code. Optionally auto-start analysis after import. If projectId is provided, the source path will be linked to the existing modeling project for future cloud target generation.","operationId":"uploadFile_1","parameters":[{"name":"file","in":"query","description":"File to upload (zip or source file)","required":true},{"name":"projectName","in":"query","description":"Project name (defaults to filename)","required":false,"schema":{"type":"string"},"example":"MyProject"},{"name":"projectId","in":"query","description":"Optional: Link source to existing modeling project ID for cloud target generation","required":false,"schema":{"type":"string"},"example":"proj_abc123"},{"name":"autoAnalyze","in":"query","description":"Start analysis automatically after import","required":false,"schema":{"type":"boolean","default":false},"example":false}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Import successful","content":{"application/json":{"example":{"success":true,"sourcePath":"/modeling/user_at_example_com/uploads/MyProject","projectName":"MyProject","fileCount":45,"analysisJobId":"srcanalysis_abc123xyz","linkedProjectId":"proj_abc123"}}}},"400":{"description":"Invalid file","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Import failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-import/projects/{projectName}/load":{"post":{"tags":["Modeling: Source Import"],"operationId":"loadProject","parameters":[{"name":"projectName","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-import/gitlab":{"post":{"tags":["Modeling: Source Import"],"summary":"Import from GitLab","description":"Clone and import source code from a GitLab repository. Supports public and private repos. If projectId is provided, the source path will be linked to the existing modeling project for future cloud target generation.","operationId":"importFromGitLab","requestBody":{"description":"GitLab import request","content":{"application/json":{"schema":{"type":"string"},"example":{"repositoryUrl":"https://gitlab.com/owner/repo","branch":"main","token":"glpat-xxxxxxxxxxxxx","projectName":"MyGitLabProject","projectId":"proj_abc123","autoAnalyze":true}}},"required":true},"responses":{"200":{"description":"Import successful","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid repository","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Import failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-import/github":{"post":{"tags":["Modeling: Source Import"],"summary":"Import from GitHub","description":"Clone and import source code from a GitHub repository. Supports public and private repos. If projectId is provided, the source path will be linked to the existing modeling project for future cloud target generation.","operationId":"importFromGitHub","requestBody":{"description":"GitHub import request","content":{"application/json":{"schema":{"type":"string"},"examples":{"Public Repo":{"summary":"Import public repository","description":"Public Repo","value":{"repositoryUrl":"https://github.com/owner/repo","branch":"main","projectName":"MyProject","projectId":"proj_abc123","autoAnalyze":true}},"Private Repo":{"summary":"Import private repository with token","description":"Private Repo","value":{"repositoryUrl":"https://github.com/owner/private-repo","branch":"main","token":"ghp_xxxxxxxxxxxxx","projectName":"MyPrivateProject","projectId":"proj_xyz789"}}}}},"required":true},"responses":{"200":{"description":"Import successful","content":{"application/json":{"example":{"success":true,"sourcePath":"/modeling/user_at_example_com/uploads/MyProject","projectName":"MyProject","repositoryUrl":"https://github.com/owner/repo","branch":"main","linkedProjectId":"proj_abc123"}}}},"400":{"description":"Invalid repository or authentication","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Import failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/jobs":{"post":{"tags":["Modeling: Source Code Analysis"],"summary":"Create Analysis Job","description":"Create a new async source code analysis job. Analyzes code and generates UML diagrams.","operationId":"createJob_3","requestBody":{"description":"Source analysis job request","content":{"application/json":{"schema":{"type":"string"},"example":{"sourcePath":"/data/uploads/user@example.com/1706012345678/extracted"}}},"required":true},"responses":{"200":{"description":"Job created","content":{"application/json":{"example":{"jobId":"srcanalysis_abc123xyz","status":"pending"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"Duplicate job","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: Source Code Analysis"],"operationId":"cancelJob_2","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/analyze":{"post":{"tags":["Modeling: Source Code Analysis"],"summary":"Analyze Source Files (Upload)","description":"Upload source code files (zip or individual files) for analysis. Files are saved, extracted if needed, and an async analysis job is created.\n\n**Process:**\n1. Files saved to user directory\n2. ZIP files automatically extracted\n3. Async analysis job created\n4. Track progress via SSE at `/jobs/{jobId}/events`","operationId":"analyze_1","parameters":[{"name":"files","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","format":"binary"}}},{"name":"sourcePath","in":"query","required":false,"schema":{"type":"string"}},{"name":"projectId","in":"query","description":"Project ID (UUID) to link source analysis results to","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Analysis job created","content":{"application/json":{"example":{"jobId":"srcanalysis_abc123xyz","message":"Analysis job created. Track progress via /jobs/srcanalysis_abc123xyz/events","sourcePath":"/modeling/user_at_example_com/uploads/1706012345678/extracted","linkedProjectId":"a3f39dd4-5011-46c5-b414-9a1cea24ce0e"}}}},"400":{"description":"No files provided","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Analysis failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/analyze-path":{"post":{"tags":["Modeling: Source Code Analysis"],"operationId":"analyzeFromPath","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/prompts/compose-and-complete":{"post":{"tags":["Modeling: Prompt Completions"],"summary":"Compose and Complete","description":"Compose prompts from server templates by ID, apply variable substitution, and execute LLM completion. All token usage is metered and accounted.\n\n**Prompt IDs ending in:**\n- `.system` → system message\n- `.prompt` → user message\n\nVariables are substituted using `{variableName}` syntax.","operationId":"composeAndComplete","requestBody":{"description":"Prompt composition and completion request","content":{"application/json":{"schema":{"type":"string"},"examples":{"Simple Completion":{"summary":"Use a single prompt template","description":"Simple Completion","value":{"promptIds":["uml.class.prompt"],"variables":{"systemDescription":"E-commerce platform with users, products, and orders"}}},"Multi-prompt Composition":{"summary":"Compose multiple prompts with variables","description":"Multi-prompt Composition","value":{"promptIds":["uml.class.system","uml.class.prompt"],"variables":{"systemDescription":"Healthcare patient management system","diagramCount":"3"},"purpose":"uml_generation","userMessage":"Focus on the patient scheduling module"}}}}},"required":true},"responses":{"200":{"description":"Completion successful","content":{"application/json":{"example":{"usedPromptIds":["uml.class.system","uml.class.prompt"],"response":{"id":"chatcmpl-abc123","model":"configured-by-env","choices":[{"index":0,"message":{"role":"assistant","content":"```json\n{...UML diagram data...}\n```"}}],"usage":{"prompt_tokens":500,"completion_tokens":1200,"total_tokens":1700}}}}}},"400":{"description":"Invalid request","content":{"application/json":{"example":{"error":"invalid_request","message":"promptIds is required"}}}},"404":{"description":"Prompt not found","content":{"application/json":{"example":{"error":"prompt_not_found","promptId":"unknown.prompt"}}}},"502":{"description":"LLM error","content":{"application/json":{"example":{"error":"llm_error","message":"LLM service unavailable"}}}}}}},"/modeling/projects/{projectId}/versions":{"get":{"tags":["Modeling: Project Versioning"],"summary":"List Versions","description":"List all version snapshots for a project. Requires view access.","operationId":"list","parameters":[{"name":"projectId","in":"path","description":"The project ID","required":true,"schema":{"type":"string"},"example":"proj_abc123xyz"}],"responses":{"200":{"description":"Versions retrieved","content":{"application/json":{"example":{"projectId":"proj_abc123xyz","versions":[{"versionId":"ver_abc123","label":"Before refactor","reason":"manual","createdAt":"2026-01-23T10:00:00Z","createdBy":"user@example.com"},{"versionId":"ver_def456","label":"Auto-save before generation","reason":"auto_save","createdAt":"2026-01-22T15:00:00Z","createdBy":"user@example.com"}]}}}},"403":{"description":"Access denied","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Project Versioning"],"summary":"Create Version Snapshot","description":"Create a new version snapshot of the project. Requires edit access.","operationId":"create","parameters":[{"name":"projectId","in":"path","description":"The project ID","required":true,"schema":{"type":"string"},"example":"proj_abc123xyz"}],"requestBody":{"description":"Version creation request","content":{"application/json":{"schema":{"type":"string"},"example":{"label":"Before major changes","reason":"manual"}}}},"responses":{"200":{"description":"Version created","content":{"application/json":{"example":{"versionId":"ver_abc123xyz","projectId":"proj_abc123","label":"Before major changes","reason":"manual","createdAt":"2026-01-23T10:30:00Z"}}}},"403":{"description":"Edit access required","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{projectId}/versions/{versionId}/rollback":{"post":{"tags":["Modeling: Project Versioning"],"summary":"Rollback to Version","description":"Rollback the project to a previous version. Creates a safety snapshot before rollback. Requires edit access.","operationId":"rollback","parameters":[{"name":"projectId","in":"path","description":"The project ID","required":true,"schema":{"type":"string"},"example":"proj_abc123xyz"},{"name":"versionId","in":"path","description":"The version ID to rollback to","required":true,"schema":{"type":"string"},"example":"ver_abc123xyz"}],"responses":{"200":{"description":"Rollback completed","content":{"application/json":{"example":{"projectId":"proj_abc123xyz","currentVersion":{"versionId":"ver_abc123xyz","label":"Rolled back from ver_def456","createdAt":"2026-01-23T10:35:00Z"}}}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Edit access required","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project or version not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{projectId}/reverse-engineer-from-github":{"post":{"tags":["Modeling: Reverse Engineer"],"summary":"Reverse engineer from linked GitHub","description":"Clone the project's linked GitHub repository, snapshot the current models for rollback, and start a source-analysis job that overwrites matching diagrams (code is truth).","operationId":"reverseEngineerFromGithub","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"Job started","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request / GitHub not linked","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Owner access required","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"Source analysis job already running","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{projectId}/git-validate":{"post":{"tags":["Modeling: Git Publishing"],"summary":"Validate Git Connection","description":"Test the saved Git connection for a project (verifies token and repo access).","operationId":"validate","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Project not found or no Git config","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{projectId}/git-publish":{"post":{"tags":["Modeling: Git Publishing"],"summary":"Publish to Git","description":"Manually publish the latest generated files to the configured Git repository. Creates a version snapshot first.","operationId":"publish","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Publish result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"No Git config or no generated files","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{projectId}/git-config":{"post":{"tags":["Modeling: Git Publishing"],"summary":"Save Git Config","description":"Save Git repository configuration (provider, URL, token, branch prefix, update cycle) on a project. Only the project owner can configure this.","operationId":"saveConfig","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Config saved","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Owner access required","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/star":{"post":{"tags":["Modeling: Management"],"summary":"Set Project Starred State","description":"Star or unstar a project for the current user.","operationId":"setProjectStarred","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"Project starred state updated","content":{"application/json":{}}},"404":{"description":"Project not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/plugins":{"get":{"tags":["Modeling: Management"],"summary":"List Project Plugins","description":"List all plugins assigned to a project. Returns 404 if project not found or no access.","operationId":"listProjectPlugins","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of plugins","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Management"],"summary":"Add Plugin to Project","description":"Add a plugin (custom or system/built-in) to a project. For custom: source=user-generated, provide pluginType, prompt, instanceName. For system: source=built-in, provide pluginId (e.g. ecosystem-ai), instanceName, optional values.","operationId":"addProjectPlugin","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"Plugin added","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid plugin payload","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/ontology/validate":{"get":{"tags":["Modeling: Ontology Validation"],"summary":"Validate project ontology","description":"Validates a modeling project's ontology context, linked TTL, and class diagrams. Works with an optional Principal; when unauthenticated, supply ontology/diagrams in the body via POST.","operationId":"validateProjectOntologyGet","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domainId","in":"query","required":false,"schema":{"type":"string"}},{"name":"industryId","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeRecommendations","in":"query","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Ontology Validation"],"operationId":"validateProjectOntologyPost","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/ontology/synthesize":{"post":{"tags":["Modeling: Ontology Synthesis"],"summary":"Synthesize ontology","description":"Merge diagrams/analysis/DB/roles into ontologyContext and return Turtle","operationId":"synthesize","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/ontology/recommendations/apply":{"post":{"tags":["Modeling: Ontology Validation"],"summary":"Apply recommendations to project ontology","description":"Applies selected recommendations to the project's ontology content. When unauthenticated, supply ontology content in the body (stateless apply fallback).","operationId":"applyProjectRecommendations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/generation/regenerate-security":{"post":{"tags":["Modeling: Ontology Roles"],"summary":"Regenerate security layer","description":"Scoped security regeneration using confirmed role mappings","operationId":"regenerateSecurity","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/discord-public-announcement":{"post":{"tags":["Modeling: Management"],"summary":"Announce public project on Discord","description":"Owner-only. Call after making a project public: posts project name and description to the configured Discord incoming webhook (server env). No-op if webhook URL is not configured.","operationId":"announcePublicProjectOnDiscord","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/plantuml/svg":{"post":{"tags":["Modeling: PlantUML"],"summary":"Render PlantUML to SVG","description":"Accepts JSON {\"text\":\"...\"} with PlantUML source and returns {\"svg\":\"...\"}.","operationId":"renderSvg","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"SVG rendered successfully","content":{"application/json":{}}},"400":{"description":"Empty or missing PlantUML text","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Rendering failed","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/modeling/plantuml/convert":{"post":{"tags":["Modeling: PlantUML"],"summary":"Convert diagram JSON to PlantUML text","description":"Accepts JSON {\"diagram\":{...},\"theme\":\"ecosystem\"} and returns {\"plantumlText\":\"@startuml...\"}.","operationId":"convertDiagram","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Conversion result","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Missing diagram","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/modeling/pipeline-diagnostic/self-heal":{"post":{"tags":["Modeling: Pipeline Diagnostics"],"summary":"Self-Healing: Diagnose, Fix, and Learn","description":"The core self-healing endpoint. Diagnoses pipeline errors, applies fixes, and saves learned fixes to the project document. On next generation, these fixes are automatically applied to prevent recurrence.","operationId":"selfHeal","requestBody":{"description":"Self-healing request","content":{"application/json":{"schema":{"type":"string"},"example":{"modelingProjectId":"proj_abc123","gcpProjectId":"my-gcp-project","jobId":"data-pipeline-20260205","region":"us-central1","projectPath":"/path/to/generated/project"}}},"required":true},"responses":{"200":{"description":"Self-healing complete","content":{"application/json":{"example":"{\n  \"success\": true,\n  \"fixesApplied\": 2,\n  \"learnedFixesSaved\": true,\n  \"detectedErrors\": [...],\n  \"message\": \"2 fixes applied and saved for future regenerations\"\n}\n"}}}}}},"/modeling/pipeline-diagnostic/auto-fix":{"post":{"tags":["Modeling: Pipeline Diagnostics"],"summary":"Diagnose and Auto-Fix Pipeline Errors","description":"Fetch pipeline errors, analyze them, and automatically apply fixes where possible.","operationId":"autoFixPipeline","parameters":[{"name":"projectId","in":"query","description":"GCP Project ID","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"query","description":"Pipeline Job ID (optional)","required":false,"schema":{"type":"string"}},{"name":"region","in":"query","description":"GCP Region","required":false,"schema":{"type":"string","default":"us-central1"}},{"name":"projectPath","in":"query","description":"Path to generated project directory","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Diagnosis and fix attempt complete","content":{"application/json":{"example":"{\n  \"projectId\": \"my-project\",\n  \"jobId\": \"data-pipeline-20260205\",\n  \"success\": true,\n  \"fixesApplied\": 2,\n  \"detectedErrors\": [...],\n  \"suggestedFixes\": [\n    {\n      \"type\": \"MISSING_TABLE\",\n      \"applied\": true,\n      \"command\": \"./scripts/generate-exact-test-data.sh\"\n    }\n  ]\n}\n"}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Operation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/pipeline-diagnostic/ai-diagnose":{"post":{"tags":["Modeling: Pipeline Diagnostics"],"summary":"AI-Assisted Diagnosis","description":"Use AI to analyze complex error logs and provide detailed remediation guidance.","operationId":"aiDiagnose","requestBody":{"description":"Error logs to analyze","content":{"application/json":{"schema":{"type":"string"},"example":{"projectId":"my-project","errorLogs":"400 Braced constructors are not supported at [34:33]..."}}},"required":true},"responses":{"200":{"description":"AI diagnosis complete","content":{"application/json":{"example":{"success":true,"diagnosis":"Root cause: SQL placeholders were not replaced...","recommendations":["Add missing sed replacement for {START_DT_LAST_M3}","Re-run the pipeline with --skip-test-data flag"]}}}}}}},"/modeling/pipeline-diagnostic/agentic-heal":{"post":{"tags":["Modeling: Pipeline Diagnostics"],"summary":"Agentic Heal: Iterative Self-Healing Loop","description":"Fully automated agentic healing that iteratively submits the pipeline, monitors execution, diagnoses failures, applies fixes, and retries. Continues until success or max retries exhausted. On success, validates pipeline output against criteria.","operationId":"agenticHeal","requestBody":{"description":"Agentic heal request","content":{"application/json":{"schema":{"type":"string"},"example":{"modelingProjectId":"proj_abc123","gcpProjectId":"my-gcp-project","projectPath":"/path/to/generated/project","maxRetries":3,"validationCriteria":{"expectedTables":["behav_scoring_scored_base"],"scoreDistribution":{"column":"total_score","minExpected":-100,"maxExpected":800}}}}},"required":true},"responses":{"200":{"description":"Agentic healing complete","content":{"application/json":{"example":{"modelingProjectId":"proj_abc123","gcpProjectId":"my-gcp-project","finalStatus":"SUCCESS","totalAttempts":2,"attempts":[{"attemptNumber":1,"status":"PIPELINE_FAILED","fixesApplied":2},{"attemptNumber":2,"status":"SUCCESS","outputValidation":{"valid":true}}]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Agentic healing failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/ontology/validate":{"post":{"tags":["Modeling: Ontology Validation"],"summary":"Validate ontology (standalone / external)","description":"Validate raw Turtle/OWL/RDF content, an uploaded file path payload, a catalog domain, or inline project ontology/diagrams. No authentication required.","operationId":"validateOntology","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}},"example":{"inputMode":"raw","format":"ttl","content":"@prefix : <https://example.org#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n<https://example.org#> a owl:Ontology .\n:Account a owl:Class .","includeRecommendations":true}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/ontology/recommendations/apply":{"post":{"tags":["Modeling: Ontology Validation"],"summary":"Apply ontology recommendations (stateless)","description":"Applies selected recommendations (or custom TTL patches) to ontology/shapes content and returns the patched Turtle plus a re-validation report. No authentication required.","operationId":"applyRecommendations","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/llm/chat/completions":{"post":{"tags":["Modeling: LLM & Model Configuration"],"summary":"Chat Completions","description":"OpenAI-compatible chat completions endpoint with server-side token metering. All requests are authenticated via JWT and token usage is recorded for billing.","operationId":"chatCompletions","requestBody":{"description":"OpenAI-compatible chat completion request","content":{"application/json":{"schema":{"type":"string"},"examples":{"Simple Chat":{"summary":"Basic chat completion","description":"Simple Chat","value":{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is a UML class diagram?"}]}},"With Purpose":{"summary":"Chat with tracking purpose","description":"With Purpose","value":{"messages":[{"role":"user","content":"Generate a TypeScript interface for User"}],"purpose":"code_generation"}}}}},"required":true},"responses":{"200":{"description":"Chat completion response","content":{"application/json":{"example":{"id":"chatcmpl-abc123","object":"chat.completion","model":"configured-by-env","choices":[{"index":0,"message":{"role":"assistant","content":"A UML class diagram is a visual representation..."},"finish_reason":"stop"}],"usage":{"prompt_tokens":25,"completion_tokens":150,"total_tokens":175}}}}},"502":{"description":"LLM error","content":{"application/json":{"example":{"error":"llm_error","message":"LLM service unavailable"}}}}}}},"/modeling/hosted-apps":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"List hosted apps","operationId":"listHostedApps","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Hosted Apps"],"summary":"Create hosted app record","operationId":"createHostedApp","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/{hostingAppId}/jobs":{"post":{"tags":["Modeling: Hosted Apps"],"summary":"Create hosted app lifecycle job","operationId":"createJob_4","parameters":[{"name":"hostingAppId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/profiles":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"List cloud provider profiles","operationId":"listProfiles","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"tags":["Modeling: Hosted Apps"],"summary":"Create or update cloud provider profile","operationId":"saveProfile","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: Hosted Apps"],"summary":"Cancel hosted app job","operationId":"cancelJob_3","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/access/request":{"post":{"tags":["Modeling: Hosted Apps"],"summary":"Request hosting access","operationId":"requestAccess","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/doc-gen/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: Document Generation"],"summary":"Cancel Job","description":"Request cancellation of a running document generation job.","operationId":"cancelJob_4","parameters":[{"name":"jobId","in":"path","description":"The job ID to cancel","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cancellation requested","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/doc-gen/jobs/create":{"post":{"tags":["Modeling: Document Generation"],"summary":"Create Document Generation Job","description":"Create a new document generation job. Analyzes project diagrams and generates a professional document in selected formats.","operationId":"createJob_5","requestBody":{"description":"Document generation request","content":{"application/json":{"schema":{"type":"string"},"example":{"projectId":"proj_abc123xyz","projectName":"E-Commerce Platform","docType":"business_requirements","outputFormats":["md","pdf","docx"]}}},"required":true},"responses":{"200":{"description":"Job created successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"Duplicate job","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/cloud-target/jobs":{"post":{"tags":["Modeling: Cloud Target Generation"],"summary":"Create Cloud Target Job","description":"Create a new cloud target generation job. Generates infrastructure-as-code and deployment configurations for the specified cloud provider.","operationId":"createJob_6","requestBody":{"description":"Cloud target generation request","content":{"application/json":{"schema":{"type":"string"},"examples":{"GCP Target":{"summary":"Generate for Google Cloud Platform","description":"GCP Target","value":{"projectId":"proj_abc123xyz","provider":"gcp","config":{"region":"us-central1","enableCloudRun":true}}},"AWS Target":{"summary":"Generate for Amazon Web Services","description":"AWS Target","value":{"projectId":"proj_abc123xyz","provider":"aws","config":{"region":"us-east-1","enableECS":true}}},"Azure Target":{"summary":"Generate for Microsoft Azure","description":"Azure Target","value":{"projectId":"proj_abc123xyz","provider":"azure","config":{"region":"eastus","enableAKS":true}}}}}},"required":true},"responses":{"200":{"description":"Job created successfully","content":{"application/json":{"example":{"jobId":"cloudtarget_abc123xyz","status":"pending","projectId":"proj_abc123xyz","provider":"gcp"}}}},"400":{"description":"Invalid request","content":{"application/json":{"example":{"error":"invalid_request","message":"provider must be one of: gcp, aws, azure"}}}},"409":{"description":"Duplicate job","content":{"application/json":{"example":{"error":"duplicate_job","message":"A cloud target job is already running","existingJobId":"cloudtarget_existing123"}}}}}}},"/modeling/cloud-target/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: Cloud Target Generation"],"summary":"Cancel Job","description":"Cancel a running cloud target generation job.","operationId":"cancelJob_5","parameters":[{"name":"jobId","in":"path","description":"The job ID to cancel","required":true,"schema":{"type":"string"},"example":"cloudtarget_abc123xyz"}],"responses":{"200":{"description":"Job cancelled","content":{"application/json":{"example":{"cancelled":true}}}}}}},"/modeling/byodata/sql/ddl":{"post":{"tags":["Modeling: Bring Your Own Data"],"operationId":"importSqlDdlMultipart","parameters":[{"name":"dialect","in":"query","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}},"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/byodata/mongodb/import":{"post":{"tags":["Modeling: Bring Your Own Data"],"operationId":"importMongo","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/byodata/mongodb/connect":{"post":{"tags":["Modeling: Bring Your Own Data"],"operationId":"connectMongo","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/assistant/technical-chat":{"post":{"tags":["Technical Assistant"],"summary":"Technical assistant chat","description":"Run the in-app technical assistant with page/context-aware grounding and MCP-backed execution when appropriate.","operationId":"technicalChat","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalAssistantMessageRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TechnicalAssistantMessageResponse"}}}}}}},"/modeling/app-gen/validate/{projectId}":{"post":{"tags":["Modeling: Application Generation"],"summary":"Validate Project","description":"Validate a project's diagrams for generation readiness. Returns errors (blocking) and warnings (non-blocking).","operationId":"validate_1","parameters":[{"name":"projectId","in":"path","description":"The project ID to validate","required":true,"schema":{"type":"string"},"example":"proj_abc123xyz"}],"responses":{"200":{"description":"Validation completed","content":{"application/json":{"example":{"valid":true,"errors":[],"warnings":[{"type":"no-class-diagrams","severity":"warning","message":"No class diagrams found"}]}}}}}}},"/modeling/app-gen/generate":{"post":{"tags":["Modeling: Application Generation"],"summary":"Generate Application (SSE)","description":"Generate complete application code from a UML project with real-time progress updates via Server-Sent Events. The SSE stream emits progress events during generation and a complete event with the full result.\n\n**SSE Event Types:**\n- `progress`: `{\"type\": \"progress\", \"phase\": \"...\", \"message\": \"...\"}`\n- `complete`: `{\"type\": \"complete\", \"result\": {...}}`\n- `error`: `{\"type\": \"error\", \"message\": \"...\"}`","operationId":"generate","requestBody":{"description":"Generation request with project ID and optional configuration","content":{"application/json":{"schema":{"type":"string"},"examples":{"Basic Generation":{"summary":"Generate with default settings","description":"Basic Generation","value":{"projectId":"proj_abc123xyz"}},"Full Configuration":{"summary":"Generate with custom strategy and config","description":"Full Configuration","value":{"projectId":"proj_abc123xyz","strategyType":"fully-generative","config":{"techStack":"nodejs-typescript","generateUI":true,"generateInfrastructure":true,"mcpCompliant":true}}}}}},"required":true},"responses":{"200":{"description":"SSE stream with progress and result events","content":{"text/event-stream":{"example":"data: {\"type\":\"progress\",\"phase\":\"analyzing\",\"message\":\"Analyzing UML diagrams...\"}\n\ndata: {\"type\":\"progress\",\"phase\":\"generating\",\"message\":\"Generating backend code...\"}\n\ndata: {\"type\":\"complete\",\"result\":{\"success\":true,\"fileCount\":45,\"files\":[...]}}\n"}}},"400":{"description":"Invalid request - missing projectId","content":{"text/event-stream":{"example":"data: {\"type\":\"error\",\"message\":\"projectId is required\"}\n"}}}}}},"/modeling/app-gen/generate-sync":{"post":{"tags":["Modeling: Application Generation"],"summary":"Generate Application (Synchronous)","description":"Generate complete application code synchronously and return the full result as JSON. Use this endpoint for smaller projects or when SSE streaming is not desired.\n\n**Note:** This endpoint blocks until generation completes. For larger projects, consider using the SSE endpoint.","operationId":"generateSync","requestBody":{"description":"Generation request with project ID and optional configuration","content":{"application/json":{"schema":{"type":"string"},"examples":{"Basic Generation":{"summary":"Generate with default settings","description":"Basic Generation","value":{"projectId":"proj_abc123xyz"}},"With Strategy":{"summary":"Generate with specific strategy","description":"With Strategy","value":{"projectId":"proj_abc123xyz","strategyType":"fully-generative","config":{"techStack":"react-typescript"}}}}}},"required":true},"responses":{"200":{"description":"Generation completed successfully","content":{"application/json":{"example":{"success":true,"projectId":"proj_abc123xyz","strategy":"fully-generative","fileCount":45,"files":[{"path":"src/index.ts","content":"..."},{"path":"src/models/User.ts","content":"..."}],"generatedAt":"2026-01-23T10:30:00Z"}}}},"400":{"description":"Invalid request - missing projectId","content":{"application/json":{"example":{"error":"validation_error","message":"projectId is required"}}}},"500":{"description":"Generation failed","content":{"application/json":{"example":{"error":"generation_error","message":"Failed to generate: Project not found"}}}}}}},"/modeling/app-gen/design-chat":{"post":{"tags":["Modeling: Application Generation"],"summary":"Conversational UI Design & Media Synthesis","description":"Converse with the AI Design Architect and analyze uploaded reference images/videos to synthesize custom theme tokens, form editing templates, and custom dashboard/form plugin specifications.","operationId":"designChat","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen/cancel/{jobId}":{"post":{"tags":["Modeling: Application Generation"],"summary":"Cancel Generation","description":"Request cancellation of a running generation job. The generation will check the cancelled flag and stop gracefully.","operationId":"cancel_1","parameters":[{"name":"jobId","in":"path","description":"The job ID to cancel","required":true,"schema":{"type":"string"},"example":"appgen_abc123xyz"}],"responses":{"200":{"description":"Cancellation requested","content":{"application/json":{"example":{"message":"Cancellation requested"}}}}}}},"/modeling/app-gen-jobs/{jobId}/cancel":{"post":{"tags":["Modeling: App Generation Jobs"],"summary":"Cancel Job","description":"Request cancellation of a running generation job.","operationId":"cancelJob_6","parameters":[{"name":"jobId","in":"path","description":"The job ID to cancel","required":true,"schema":{"type":"string"},"example":"appgen_abc123xyz"}],"responses":{"200":{"description":"Cancellation requested","content":{"application/json":{"example":{"message":"Cancellation requested"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen-jobs/create":{"post":{"tags":["Modeling: App Generation Jobs"],"summary":"Create Generation Job","description":"Create a new application generation job. Returns a job ID for tracking progress via SSE or polling. Duplicate jobs for the same project are rejected with a 409 status.","operationId":"createJob_7","requestBody":{"description":"Job creation request","content":{"application/json":{"schema":{"type":"string"},"examples":{"Basic Job":{"summary":"Create job with minimal parameters","description":"Basic Job","value":{"projectId":"proj_abc123xyz","projectName":"My E-Commerce App"}},"Full Configuration":{"summary":"Create job with all options","description":"Full Configuration","value":{"projectId":"proj_abc123xyz","projectName":"My E-Commerce App","strategyType":"fully-generative","config":{"techStack":"nodejs-typescript","generateUI":true,"generateInfrastructure":true,"mcpCompliant":true}}}}}},"required":true},"responses":{"200":{"description":"Job created successfully","content":{"application/json":{"example":{"jobId":"appgen_abc123xyz","status":"pending","projectId":"proj_abc123xyz","createdAtMs":1706012345678}}}},"400":{"description":"Invalid request","content":{"application/json":{"example":{"error":"validation_error","message":"projectId is required"}}}},"409":{"description":"Duplicate job - generation already in progress","content":{"application/json":{"example":{"error":"duplicate_job","message":"A generation job is already running for this project","existingJobId":"appgen_existing123"}}}},"500":{"description":"Server error","content":{"application/json":{"example":{"error":"server_error","message":"Failed to create job"}}}}}}},"/modeling/app-deploy-iac/jobs":{"post":{"tags":["Modeling: App Deploy IaC"],"summary":"Create App Deploy IaC Job","description":"Create an async job that emits Terraform + deploy scripts for a completed app-generation ZIP.","operationId":"createJob_8","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/app-deploy-iac/jobs/{jobId}/cancel":{"post":{"tags":["Modeling: App Deploy IaC"],"operationId":"cancelJob_7","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/mcp/modeling":{"get":{"tags":["MCP: Modeling Server"],"operationId":"streamableHttpGet","parameters":[{"name":"Mcp-Session-Id","in":"header","required":false,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"type":"object"}},"application/json":{"schema":{"type":"object"}}}}}},"post":{"tags":["MCP: Modeling Server"],"summary":"Streamable HTTP JSON-RPC","description":"Canonical MCP Streamable HTTP transport. Send JSON-RPC initialize / tools/list / tools/call. Session id is returned and expected in the Mcp-Session-Id header.","operationId":"streamableHttpPost","parameters":[{"name":"Mcp-Session-Id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"tags":["MCP: Modeling Server"],"operationId":"streamableHttpDelete","parameters":[{"name":"Mcp-Session-Id","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/mcp/modeling/tools/list":{"post":{"tags":["MCP: Modeling Server"],"summary":"List Tools","description":"List all available tools in this MCP server.","operationId":"listTools","responses":{"200":{"description":"Tools listed","content":{"application/json":{"example":"{\n  \"tools\": [\n    {\n      \"name\": \"import_from_github\",\n      \"description\": \"Import source code from a GitHub repository\",\n      \"inputSchema\": {...}\n    }\n  ]\n}\n"}}}}}},"/mcp/modeling/tools/call":{"post":{"tags":["MCP: Modeling Server"],"summary":"Call Tool","description":"Execute a tool with the provided arguments.","operationId":"callTool","requestBody":{"description":"Tool call request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpRequest"},"example":{"name":"import_from_github","arguments":{"repository_url":"https://github.com/owner/repo","branch":"main"}}}},"required":true},"responses":{"200":{"description":"Tool executed successfully","content":{"application/json":{"example":{"content":[{"type":"text","text":"{\"success\": true, \"sourcePath\": \"/data/uploads/user/repo\"}"}],"isError":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Tool not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/modeling/sse":{"get":{"tags":["MCP: Modeling Server"],"summary":"SSE Connection","description":"Establish an SSE connection for MCP protocol. Returns an endpoint event with the message URL.","operationId":"sseConnect","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}},"post":{"tags":["MCP: Modeling Server"],"operationId":"ssePost","parameters":[{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/modeling/message":{"post":{"tags":["MCP: Modeling Server"],"summary":"SSE Message Endpoint","description":"Receive JSON-RPC messages from MCP clients. Responses are sent via the SSE connection.","operationId":"sseMessage","parameters":[{"name":"sessionId","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/data/tools/list":{"post":{"tags":["MCP: Data Server"],"summary":"List Tools","description":"List all available tools in this MCP server.","operationId":"listTools_1","responses":{"200":{"description":"Tools listed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/data/tools/call":{"post":{"tags":["MCP: Data Server"],"summary":"Call Tool","description":"Execute a tool with the provided arguments.","operationId":"callTool_1","requestBody":{"description":"Tool call request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpRequest"},"example":{"name":"mongodb_find","arguments":{"database":"ecosystem_modeling","collection":"projects","query":{"userId":"user123"}}}}},"required":true},"responses":{"200":{"description":"Tool executed successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Tool not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/data/sse":{"get":{"tags":["MCP: Data Server"],"operationId":"sseConnect_1","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}},"post":{"tags":["MCP: Data Server"],"operationId":"ssePost_1","parameters":[{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/data/message":{"post":{"tags":["MCP: Data Server"],"operationId":"sseMessage_1","parameters":[{"name":"sessionId","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/algorithms/tools/list":{"post":{"tags":["MCP: Algorithms Server"],"summary":"List Tools","description":"List all available tools in this MCP server.","operationId":"listTools_2","responses":{"200":{"description":"Tools listed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/algorithms/tools/call":{"post":{"tags":["MCP: Algorithms Server"],"summary":"Call Tool","description":"Execute a tool with the provided arguments.","operationId":"callTool_2","requestBody":{"description":"Tool call request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpRequest"},"example":{"name":"generate_forecast","arguments":{"database":"mydb","collection":"sales","date_field":"date","value_field":"revenue","periods":30}}}},"required":true},"responses":{"200":{"description":"Tool executed successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Tool not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/algorithms/sse":{"get":{"tags":["MCP: Algorithms Server"],"operationId":"sseConnect_2","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}},"post":{"tags":["MCP: Algorithms Server"],"operationId":"ssePost_2","parameters":[{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/algorithms/message":{"post":{"tags":["MCP: Algorithms Server"],"operationId":"sseMessage_2","parameters":[{"name":"sessionId","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/ai/tools/list":{"post":{"tags":["MCP: AI Server"],"summary":"List Tools","description":"List all available tools in this MCP server.","operationId":"listTools_3","responses":{"200":{"description":"Tools listed","content":{"application/json":{}}}}}},"/mcp/ai/tools/call":{"post":{"tags":["MCP: AI Server"],"summary":"Call Tool","description":"Execute a tool with the provided arguments.","operationId":"callTool_3","requestBody":{"description":"Tool call request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpRequest"},"example":{"name":"chat_completions","arguments":{"model":"gpt-5","messages":[{"role":"user","content":"Hello"}]}}}},"required":true},"responses":{"200":{"description":"Tool executed successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Tool not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/ai/sse":{"get":{"tags":["MCP: AI Server"],"operationId":"sseConnect_3","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}},"post":{"tags":["MCP: AI Server"],"operationId":"ssePost_3","parameters":[{"name":"sessionId","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/ai/message":{"post":{"tags":["MCP: AI Server"],"operationId":"sseMessage_3","parameters":[{"name":"sessionId","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/interaction":{"post":{"tags":["Interactions API"],"summary":"Record Digital Interactions","description":"Processes and records digital interactions in MongoDB. The document format must include the following fields: `uuid`, `tracking_name`, `tracking_sequence`, `time_stamp`, `user_id`, `event`, `sub_event`. Additional validation and default values will be handled as needed.","operationId":"addMongoDocuments","requestBody":{"description":"JSON object representing the interaction containing all required fields.","content":{"application/json":{"schema":{"type":"string","example":{"uuid":"123e4567-e89b-12d3-a456-426614174000","tracking_name":"example_tracking","tracking_sequence":1,"time_stamp":"2023-08-23T10:05:45Z","user_id":"example_user","event":"click","sub_event":"button_click","type":"interaction"}}}},"required":true},"responses":{"200":{"description":"Interaction recorded successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Input validation failed. Missing one or more required fields.","content":{"application/json":{}}},"500":{"description":"An internal server error occurred while recording the interaction.","content":{"application/json":{}}}}}},"/intent":{"post":{"tags":["AI Services API"],"summary":"Detect intent from text","description":"This endpoint processes the provided text input and detects the intent using the intentDetection service.\nTo provide your own prompt use the following format: <INTENT_DETECT>Classify the following text: {TEXT}</INTENT_DETECT>. \nCan also use the ecosystem_meta/prompt_library for predefined prompts. Then use <INTENT_DETECT>id=prompt_id</INTENT_DETECT>","operationId":"intent","requestBody":{"description":"The text input to analyze for intent detection","content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Intent detection succeeded","content":{"application/json":{}}},"400":{"description":"Invalid request payload","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/intent/chat":{"post":{"tags":["AI Services API"],"summary":"Process prompt from text, automatically detect model approach","description":"This endpoint processes the provided text input and detects the intent using the intentDetection service.\nTo provide your own prompt use the following format: <INTENT_DETECT>Classify the following text: {TEXT}</INTENT_DETECT>. \nCan also use the ecosystem_meta/prompt_library for predefined prompts. Then use <INTENT_DETECT>id=prompt_id</INTENT_DETECT>","operationId":"intent_detect","requestBody":{"description":"The text input to analyze for intent detection","content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Intent detection succeeded","content":{"application/json":{}}},"400":{"description":"Invalid request payload","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/importSQLTable":{"post":{"tags":["Worker: H2O"],"summary":"Import SQL table","description":"Imports data from an SQL table based on the provided connection details and query. The input JSON should include: `connection_url`, `table`, `select_query`, `username`, `password`, and `columns`.","operationId":"importSQLTable","requestBody":{"description":"JSON payload containing SQL connection details, query, and table information.","content":{"application/json":{"schema":{"type":"string","example":{"connection_url":"jdbc:mysql://localhost:3306/mydatabase","table":"my_table","select_query":"SELECT * FROM my_table WHERE column = 'value'","username":"db_user","password":"password123","columns":["column1","column2"]}}}},"required":true},"responses":{"200":{"description":"Successfully imported the SQL table.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input payload or error during SQL table import.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the SQL import process.","content":{"application/json":{}}}}}},"/getTransactions":{"post":{"tags":["Transaction Categorization"],"summary":"Get entity transactions","description":"Retrieves transactions for an entity based on the parameters provided in the JSON payload.","operationId":"getEntityTransactions","requestBody":{"description":"JSON payload containing parameters to filter and retrieve entity transactions.","content":{"application/json":{"schema":{"type":"string"},"example":{"database":"transaction_db","collection":"transactions","filter":{"customer_id":"12345"}}}},"required":true},"responses":{"200":{"description":"Successfully retrieved entity transactions.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during transaction retrieval.","content":{"application/json":{}}}}}},"/getTransactionsCatPredicted":{"post":{"tags":["Transaction Categorization"],"summary":"Get transaction predictions","description":"Fetches transaction categorization predictions based on the provided parameters in JSON format.","operationId":"getTransactionsCatPredicted","requestBody":{"description":"JSON payload containing parameters to filter and retrieve transaction predictions.","content":{"application/json":{"schema":{"type":"string"},"example":{"database":"transaction_db","collection":"predictions_collection","filter":{"category":"food"}}}},"required":true},"responses":{"200":{"description":"Successfully retrieved transaction predictions.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during data retrieval.","content":{"application/json":{}}}}}},"/getRestWithConfig":{"post":{"tags":["Utilities"],"summary":"Execute a REST API call with configuration","description":"Executes a REST API call using configuration settings provided in `ecosystem_meta` or `rest_config`. Setup parameters in the configuration with `type` and `url` keys. Start with `-u username -p password` if the API requires login. `Bearer bearer_key` can be used for JWT-based calls. Default call type is GET with all parameters included to perform the call. If POST or PUT is used, format as `POST: url :PARAM: body`.","operationId":"getRestWithConfig","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["*/*"]}}],"requestBody":{"description":"The request payload containing the configuration and parameters for the API call.","content":{"text/plain":{"schema":{"type":"string"},"example":"POST: url :PARAM: body"}},"required":true},"responses":{"200":{"description":"Successfully executed the REST API call with the configuration and returned the response.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid configuration or request payload.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while executing the API call.","content":{"application/json":{}}}}}},"/getRestGeneric":{"post":{"tags":["Utilities"],"summary":"Execute a generic REST API call","description":"Executes a generic REST API call. Setup parameters as follows: start with `-u username -p password` if the API requires login. `Bearer bearer_key` can be used for JWT-based calls. Default call type is GET with all parameters included to perform the call. If POST or PUT is used, format as `POST: url :PARAM: body`.","operationId":"getRestGeneric","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["*/*"]}}],"requestBody":{"description":"The request payload containing the parameters for the API call.","content":{"text/plain":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully executed the REST API call and returned the response.","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload or parameters.","content":{"text/plain":{}}},"500":{"description":"Internal server error occurred while executing the API call.","content":{"text/plain":{}}}}}},"/getOpenAiResult":{"post":{"tags":["AI Services API"],"summary":"Get result from AI model","description":"Processes a request to generate results from an AI model. Provide a JSON payload with mandatory key `prompt`, and optional keys such as `model`, `max_tokens`, and `temperature`.\n\nExample input:\n{\n  \"messages\" : [ {\n    \"role\" : \"user\",\n    \"content\" : {\n      \"0\" : 104,\n      \"1\" : 101,\n      \"2\" : 108,\n      \"3\" : 112,\n      \"4\" : 58\n    }\n  } ]\n}","operationId":"getOpenAiResult","requestBody":{"description":"The JSON payload for the AI model request.","content":{"application/json":{"schema":{"type":"object","example":{"messages":[{"role":"user","content":{"0":104,"1":101,"2":108,"3":112,"4":58}}]}}}},"required":true},"responses":{"200":{"description":"Successfully processed the AI model request.","content":{"application/json":{"schema":{"type":"object","example":{"created":1682077175,"usage":{"completion_tokens":449,"prompt_tokens":330,"total_tokens":779},"model":"gpt-4o","id":"chatcmpl-77jOxn01Hn9ynjRZ0lyMgGfA8YHfJ","choices":[{"finish_reason":"stop","index":0,"message":{"role":"assistant","content":"The following commands are used to manage your chat session..."}}],"object":"chat.completion"}}}}},"400":{"description":"Invalid request payload","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/generate":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Generate a completion (prompt-based)","description":"Ollama-compatible /api/generate endpoint. Intercepts permanent ecosystem models via internal processing; proxies all others to Ollama with streaming NDJSON passthrough.","operationId":"generate_1","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Generation completed","content":{"application/json":{}}},"503":{"description":"Ollama not configured"}}}},"/generateClass":{"post":{"tags":["Management Engine: Code Generation"],"summary":"Process code generation","description":"Processes code generation and save class to destination. Example input: {\"package_name\":\"\", \"class_name\": \"\", \"output_dir\": \"\", \"target_url\": \"\"} CODE: public class TestClass { public static void main(String[] args) { System.out.println(\"Hello, World!\"); } } -> If the input does not contain CODE: then the entire text block is considered code and class etc will be extracted automatically.","operationId":"generateClass","requestBody":{"description":"Configuration and CODE:","content":{"text/plain":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully processed.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input.","content":{"application/json":{}}},"500":{"description":"Internal server error.","content":{"application/json":{}}}}}},"/generateBuild":{"post":{"tags":["Ecosystem Generation Engine"],"summary":"Initiate the build process","description":"Uses the `prediction_step` JSON payload in the POST body to initiate the build process.","operationId":"generateBuild","requestBody":{"description":"JSON payload containing the prediction step details.","content":{"application/json":{"schema":{"type":"string","example":{"prediction_step":"build_parameters","other_key":"other_value"}}}},"required":true},"responses":{"200":{"description":"Successfully initiated the build process.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid JSON payload or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the build process.","content":{"application/json":{}}}}}},"/generate-my-api-key":{"post":{"tags":["API Keys"],"summary":"Generate my API key","description":"Generates an API key for the currently authenticated user. Use this to get a key for MCP clients like Claude Desktop. Default validity is 1 year.","operationId":"generateMyApiKey","parameters":[{"name":"validTimeDays","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":365}}],"responses":{"200":{"description":"API key successfully generated","content":{"text/plain":{"schema":{"type":"string"}}}},"401":{"description":"Not authenticated","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/generate-api-key":{"post":{"tags":["API Keys"],"summary":"Generate an API key (Admin)","description":"Generates an API key for a given service with a specified validity period in days. Admin only.","operationId":"generateApiKey","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","default":"api-key-generator"}},{"name":"validTimeDays","in":"query","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"API key successfully generated","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid validity period or request parameters","content":{"application/json":{}}}}}},"/executeMongoDBscript":{"post":{"tags":["Data Management Engine"],"summary":"Execute a MongoDB script","description":"This service allows you to run any MongoDB script in the target database. Please use with caution.","operationId":"executeMongoDBscript","parameters":[{"name":"script","in":"query","description":"The MongoDB script to be executed.","required":true,"schema":{"type":"string"},"example":"db.collection.find({})"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully executed the MongoDB script.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input or malformed script.","content":{"application/json":{}}},"500":{"description":"Error while executing the MongoDB script.","content":{"application/json":{}}}}}},"/executeGeneric":{"post":{"tags":["Utilities"],"summary":"Execute a generic script","description":"Runs any script in the target container. This endpoint should be used with caution as it allows executing arbitrary scripts.","operationId":"executeGeneric","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["*/*"]}}],"requestBody":{"description":"The script to be executed in the target container.","content":{"text/plain":{"schema":{"type":"string"},"example":"echo 'Hello, World!'"}},"required":true},"responses":{"200":{"description":"Successfully executed the script.","content":{"application/json":{"schema":{"type":"string"}}}},"403":{"description":"Access denied. User does not have sufficient privileges.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while executing the script.","content":{"application/json":{}}}}}},"/embed":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Embed data using the CHAT_SERVER","description":"Processes the embed request by sending the provided JSON payload to the CHAT_SERVER endpoint. Returns the server response.","operationId":"embed","requestBody":{"description":"The JSON payload for the embed request. Example: {\"model\":\"ecosystem.Ai\", \"data\":\"embedding data\"}","content":{"application/json":{"schema":{"type":"object","example":{"model":"ecosystem.Ai","data":"embedding data"}}}},"required":true},"responses":{"200":{"description":"Embedding successfully processed","content":{"application/json":{"schema":{"type":"string","example":{"result":"Success"}}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deployPredictor":{"post":{"tags":["Prediction Engine"],"operationId":"deployPredictor","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deleteMongoDocuments":{"post":{"tags":["Data Management Engine"],"summary":"Delete documents from a MongoDB collection","description":"This service deletes documents from the specified collection. It stores deleted documents in the `_archive` collection of the same database. The request body should contain JSON with `database`, `collection`, `key`, and `value` to identify the document to delete.","operationId":"deleteMongoDocuments","parameters":[{"name":"projectJSON","in":"query","description":"The JSON structure containing the database, collection, key, and value for identifying the document to delete. Example: {'database':'mydb', 'collection':'mycollection', 'key':'KEY_NAME', 'value':'KEY_VALUE_TO_DELETE'} or {'database':'mydb', 'collection':'mycollection', 'id':{'key':'KEY_NAME', 'value':'KEY_VALUE_TO_DELETE'}}","required":true,"schema":{"type":"string"},"example":"{'database':'mydb', 'collection':'mycollection', 'key':'KEY_NAME', 'value':'KEY_VALUE_TO_DELETE'}"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully deleted the document and archived it.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/deleteAllMongoDocuments":{"post":{"tags":["Data Management Engine"],"summary":"Delete all documents from a MongoDB collection","description":"This service deletes all documents from the specified MongoDB collection. If a `find` parameter is included in the request body, it will delete only documents matching the specified criteria. No `_archive` will be created.","operationId":"deleteAllMongoDocuments","parameters":[{"name":"projectJSON","in":"query","description":"The JSON structure containing the database, collection, and optional `find` criteria for document selection. Example: {'database':'mydb', 'collection':'mycollection', 'find':{'status':'inactive'}}","required":true,"schema":{"type":"string"},"example":"{'database':'mydb', 'collection':'mycollection', 'find':{'status':'inactive'}}"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully deleted the documents from the specified collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/create":{"post":{"tags":["Ecosystem Main Admin"],"summary":"Create user profile","description":"Creates a new user profile based on the provided JSON payload.","operationId":"createProfile","requestBody":{"description":"JSON payload containing the user profile details.","content":{"application/json":{"schema":{"type":"string"},"example":{"username":"john_doe","email":"john.doe@example.com","roles":["USER"]}}},"required":true},"responses":{"200":{"description":"Successfully created the user profile.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input data provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while creating the profile.","content":{"application/json":{}}}}}},"/createTenant":{"get":{"tags":["Worker: AWS"],"summary":"Create a Tenant","description":"Creates a new tenant in the system using the provided tenant identifier.","operationId":"createTenant","parameters":[{"name":"tenant","in":"query","description":"The unique identifier for the tenant to be created.","required":true,"schema":{"type":"string"},"example":"exampleTenant"}],"responses":{"200":{"description":"Tenant creation was successful.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid tenant identifier or missing parameter.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}},"post":{"tags":["Worker: AWS"],"summary":"Create a Tenant","description":"Creates a new tenant in the system using the provided tenant information in the request body.","operationId":"createTenantPost","requestBody":{"description":"The JSON payload containing tenant details required to create a new tenant.","content":{"application/json":{"schema":{"type":"string","example":{"tenant_id":"exampleTenant","tenant_name":"Example Tenant","settings":{"region":"us-east-1"}}}}},"required":true},"responses":{"200":{"description":"Tenant successfully created.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid tenant data in the request body.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/createInstance":{"post":{"tags":["Worker: PaaS"],"summary":"Create and start a new instance","description":"Creates a new instance, updates its status to 'starting', cleans and initializes it, then marks it as 'running'.\nRequest payload should be JSON: {\"instance\": {...}, \"signedUser\": {...}}","operationId":"createInstance","requestBody":{"description":"JSON containing the instance ID and signed user details.","content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"description":"Instance created and started successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload.","content":{"text/plain":{}}},"500":{"description":"Server error during instance creation.","content":{"text/plain":{}}}}}},"/copy":{"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Copy a model","description":"Proxies to Ollama /api/copy. Cannot copy permanent ecosystem models as source.","operationId":"copyModel","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Model copied","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Cannot copy permanent model","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/convertYAMLtoJSON":{"post":{"tags":["Utilities"],"summary":"Convert YAML to JSON","description":"Converts a YAML string to its equivalent JSON representation.","operationId":"convertYAMLtoJSON","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["*/*"]}}],"requestBody":{"description":"The YAML string to be converted to JSON.","content":{"application/x-yaml":{"schema":{"type":"string"},"example":"key1: value1\nkey2:\n  subKey: subValue"}},"required":true},"responses":{"200":{"description":"Successfully converted YAML to JSON.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid YAML input.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during conversion.","content":{"application/json":{}}}}}},"/convertJSONtoYAML":{"post":{"tags":["Utilities"],"summary":"Convert JSON to YAML","description":"Converts a JSON string to its equivalent YAML representation.","operationId":"convertJSONtoYAML","parameters":[{"name":"Accept","in":"header","schema":{"type":"string","enum":["*/*"]}}],"requestBody":{"description":"The JSON string to be converted to YAML.","content":{"application/json":{"schema":{"type":"string"},"example":{"key1":"value1","key2":{"subKey":"subValue"}}}},"required":true},"responses":{"200":{"description":"Successfully converted JSON to YAML.","content":{"application/x-yaml":{"schema":{"type":"string"}}}},"400":{"description":"Invalid JSON input.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during conversion.","content":{"application/json":{}}}}}},"/chat":{"get":{"tags":["AI Services API","LLM Generative Services"],"summary":"Get chat server information","description":"This endpoint provides information about the chat server. Use the POST method for actual LLM calls.","operationId":"chatGet","responses":{"200":{"description":"Information retrieved successfully","content":{"application/json":{}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}},"post":{"tags":["AI Services API","LLM Generative Services"],"summary":"Chat with the system","description":"Processes a chat request and either forwards it to the CHAT_SERVER or processes it internally using the ecosystem.Ai backend. The /api/chat is a OLLAMA standard, use /v1/chat/completions for more generic cases.","operationId":"proxyChat","parameters":[{"name":"sse","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"description":"The JSON payload containing the chat request. Example: {\"model\":\"ecosystem.Ai\", \"messages\":[{\"role\":\"user\", \"content\":\"Hello\"}]}","content":{"application/json":{"schema":{"type":"object","example":{"model":"ecosystem.Ai","messages":[{"role":"user","content":"Hello"}]}}}},"required":true},"responses":{"200":{"description":"Chat request processed successfully","content":{"application/json":{"schema":{"type":"string","example":{"response":"Hello, how can I help you?"}}}}},"400":{"description":"Invalid request payload"},"500":{"description":"Internal server error"}}}},"/billing/meter-event":{"post":{"tags":["Billing API"],"summary":"Record Token Usage","description":"Records LLM token usage for metered billing. Creates a Stripe meter event with the specified token count. Use this endpoint to track API usage for pay-as-you-go billing.\n\n**Important Notes:**\n- Token count must be a positive whole number\n- Timestamps must be within past 35 days and not more than 5 minutes in the future\n- Use idempotency keys to prevent duplicate charges on retries\n- Rate limit: 1,000 calls/second","operationId":"recordMeterEvent","requestBody":{"description":"Meter event request with customer and usage details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeterEventRequest"},"examples":{"Basic Usage":{"summary":"Record 1 million tokens","description":"Basic Usage","value":{"stripeCustomerId":"cus_ABC123xyz","tokenCount":1000000}},"With Idempotency Key":{"summary":"Record usage with idempotency for safe retries","description":"With Idempotency Key","value":{"stripeCustomerId":"cus_ABC123xyz","tokenCount":2500000,"idempotencyKey":"req-550e8400-e29b-41d4-a716-446655440000"}},"With Custom Timestamp":{"summary":"Record usage for a specific time (e.g., batch processing)","description":"With Custom Timestamp","value":{"stripeCustomerId":"cus_ABC123xyz","tokenCount":500000,"idempotencyKey":"batch-20240115-001","timestamp":1705334400}}}}},"required":true},"responses":{"200":{"description":"Meter event recorded successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeterEventResponse"},"example":{"success":true,"eventId":"evt_1ABC123xyz","idempotencyKey":"req-550e8400-e29b-41d4-a716-446655440000","customerId":"cus_ABC123xyz","tokenCount":1000000,"timestamp":1705334400}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"example":{"success":false,"error":"Stripe customer ID is required"}}}},"500":{"description":"Failed to record meter event","content":{"application/json":{"example":{"success":false,"error":"Stripe error: No such customer: cus_invalid"}}}}}}},"/billing/meter-event/by-email":{"post":{"tags":["Billing API"],"summary":"Record Token Usage by Email","description":"Records LLM token usage by looking up the Stripe customer by email address first. This is a convenience endpoint when you don't have the Stripe customer ID readily available.\n\n**Use Case:** When your application identifies users by email rather than Stripe customer ID.","operationId":"recordMeterEventByEmail","parameters":[{"name":"email","in":"query","description":"User email address registered in Stripe","required":true,"schema":{"type":"string"},"example":"user@example.com"},{"name":"tokenCount","in":"query","description":"Number of tokens used (positive whole number)","required":true,"schema":{"type":"integer","format":"int64"},"example":1000000},{"name":"idempotencyKey","in":"query","description":"Optional unique key to prevent duplicate charges. Recommended for production use.","required":false,"schema":{"type":"string"},"example":"req-550e8400-e29b-41d4-a716-446655440000"}],"responses":{"200":{"description":"Meter event recorded successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeterEventResponse"}}}},"404":{"description":"No Stripe customer found for the given email","content":{"application/json":{"example":{"success":false,"error":"No customer found for email: user@example.com"}}}},"500":{"description":"Failed to record meter event","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MeterEventResponse"}}}}}}},"/auth/sign-up":{"post":{"tags":["Auth Controller"],"summary":"Register user","description":"Sign up a new user and return a JWT token.","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignUpDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/auth/sign-up-internal":{"post":{"tags":["Auth Controller"],"summary":"Register user without email verification","description":"Sign up a new user and return a JWT token without email verification.","operationId":"registerInternal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignUpDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/auth/sign-out":{"post":{"tags":["Auth Controller"],"summary":"Logout user","description":"Sign out the user and perform logout-related actions, such as invalidating sessions.","operationId":"logout","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseMessage"}}}}}}},"/auth/restore-pass":{"post":{"tags":["Auth Controller"],"summary":"Restore password","description":"Restore the user's password using a token and new password.","operationId":"restorePassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestorePasswordDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseMessage"}}}}}}},"/auth/reset-pass":{"post":{"tags":["Auth Controller"],"summary":"Reset password for signed-in user","description":"Reset the password for a signed-in user with a new password.","operationId":"resetPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseMessage"}}}}}}},"/auth/request-pass":{"post":{"tags":["Auth Controller"],"summary":"Request password reset","description":"Generate a link for restoring the password, which should be sent via email.","operationId":"requestPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestPasswordDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseMessage"}}}}}}},"/auth/refresh-token":{"post":{"tags":["Auth Controller"],"summary":"Refresh token","description":"Provide a new token using a refresh token.","operationId":"refreshToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenDTO"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RefreshTokenDTO"}}}}}}},"/auth/login":{"post":{"tags":["Auth Controller"],"summary":"Login user","description":"Authenticate the user and provide a JWT token.","operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginDTO"}}},"required":true},"responses":{"200":{"description":"Successful login with token.","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Invalid credentials provided.","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/archiveProjectDeployments":{"post":{"tags":["Prediction Engine"],"summary":"Archive Project Deployments","description":"Archives older deployment steps for a project, retaining a specified number of the most recent deployments.","operationId":"archiveProjectDeployments","requestBody":{"content":{"application/json":{"schema":{"type":"string"},"examples":{"Example Request":{"description":"Example Request","value":{"project_id":"my-project-id","number_to_retain":5}}}}},"required":true},"responses":{"200":{"description":"Successfully archived deployments.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request parameters provided.  Either project_id or number_to_retain is missing or invalid.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error occurred during archiving.","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/algorithm":{"post":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process algorithm with JSON payload","description":"Processes an algorithm based on the provided JSON document payload and returns the result.","operationId":"processAlgorithm","requestBody":{"description":"The JSON document payload to process.","content":{"application/json":{"schema":{"type":"string"},"example":{"algorithm":"example_algorithm","parameters":{"param1":"value1","param2":"value2"}}}},"required":true},"responses":{"200":{"description":"Successfully processed the algorithm.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid JSON document provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during processing.","content":{"application/json":{}}}}}},"/algorithm1":{"post":{"tags":["Algorithm: Ecosystem Algorithms"],"operationId":"processAlgorithm1","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/addMongoDocuments":{"post":{"tags":["Data Management Engine"],"summary":"Store a document in a MongoDB collection","description":"This service stores a document for the specified database, collection, and document. If the 'update' key is provided, the document is updated using the specified key.","operationId":"addMongoDocuments_1","parameters":[{"name":"projectJSON","in":"query","description":"The JSON structure containing the database, collection, and document details. Example: {'database':'db1','collection':'coll1','document':{'f1':1, 'f2':'val1'}, 'update':'key_name'}","required":true,"schema":{"type":"string"},"example":"{'database':'db1','collection':'coll1','document':{'f1':1, 'f2':'val1'}, 'update':'key_name'}"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Successfully stored the document in the specified MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or structure in the provided JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/activity":{"post":{"tags":["Ecosystem User Profiles"],"summary":"Post user activity","description":"Posts a new activity for the user based on the provided JSON payload.","operationId":"postActivity","requestBody":{"description":"JSON payload containing the activity details.","content":{"application/json":{"schema":{"type":"string"},"example":{"activity":"Login","timestamp":"2024-01-01T10:00:00Z","details":"Successful login"}}},"required":true},"responses":{"200":{"description":"Successfully posted the user activity.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid activity data.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while posting the activity.","content":{"application/json":{}}}}}},"/modeling/projects/{id}/plugins/{instanceId}":{"delete":{"tags":["Modeling: Management"],"summary":"Remove Plugin from Project","description":"Remove a plugin from a project by instanceId.","operationId":"removeProjectPlugin","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"instanceId","in":"path","description":"Plugin instance ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plugin removed","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project or plugin not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}},"patch":{"tags":["Modeling: Management"],"summary":"Update Project Plugin","description":"Update an existing plugin by instanceId. Allowed fields: instanceName, enabled, values, prompt, status, targetEntities.","operationId":"updateProjectPlugin","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"instanceId","in":"path","description":"Plugin instance ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"Plugin updated","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project or plugin not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/ontology/role-mappings":{"patch":{"tags":["Modeling: Ontology Roles"],"summary":"Confirm ontology role mappings","description":"Persist confirmedRoleMappings and rolePolicyMode on the project","operationId":"patchRoleMappings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/version":{"get":{"tags":["AI Services API","LLM Generative Services"],"summary":"Get Ollama server version","description":"Proxies to the Ollama /api/version endpoint. Returns a synthetic version when Ollama is not configured.","operationId":"version","responses":{"200":{"description":"Version retrieved successfully","content":{"application/json":{"schema":{"type":"object","example":{"version":"0.0.0"}}}}}}}},"/validate":{"get":{"tags":["Ecosystem User Profiles"],"summary":"Validate user profile","description":"Validates a user profile by checking the provided user ID and password.","operationId":"validateProfile","parameters":[{"name":"userid","in":"query","description":"The user ID to validate.","required":false,"schema":{"type":"string"},"example":"user123"},{"name":"password","in":"query","description":"The password associated with the user ID.","required":false,"schema":{"type":"string"},"example":"password123"}],"responses":{"200":{"description":"Validation completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during validation.","content":{"application/json":{}}}}}},"/validateTenant":{"get":{"tags":["Worker: AWS"],"summary":"Validate Tenant","description":"Checks if the provided tenant value is valid.","operationId":"validateTenant","parameters":[{"name":"tenant","in":"query","description":"The tenant to validate.","required":true,"schema":{"type":"string"},"example":"exampleTenant"}],"responses":{"200":{"description":"Tenant validation completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. The tenant parameter is missing or malformed.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/v1/models":{"get":{"tags":["AI Services API","LLM Generative Services"],"summary":"List available models (OpenAI-compatible)","description":"Returns an OpenAI-compatible model list. Always includes the permanent ecosystem models and merges any models available from Ollama.","operationId":"listModels","responses":{"200":{"description":"Model list retrieved","content":{"application/json":{}}}}}},"/updateKeyName":{"get":{"tags":["Data Management Engine"],"summary":"Update a field key name in a MongoDB collection","description":"This service updates a field's key name in the specified MongoDB collection. It searches for documents that match the `find` criteria and replaces the field name from `from` to `to`.","operationId":"updateKeyName","parameters":[{"name":"database","in":"query","description":"The MongoDB database in which the collection is located.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection in which the field key name will be updated.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"find","in":"query","description":"The query criteria to find the documents that need the field key updated.","required":true,"schema":{"type":"string"},"example":"{ 'status': 'active' }"},{"name":"from","in":"query","description":"The current field key name that will be replaced.","required":true,"schema":{"type":"string"},"example":"oldField"},{"name":"to","in":"query","description":"The new field key name that will replace the old one.","required":true,"schema":{"type":"string"},"example":"newField"}],"responses":{"200":{"description":"Successfully updated the field key name in the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/test":{"get":{"tags":["notifications-controller"],"operationId":"test","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/testPredictor":{"get":{"tags":["Prediction Engine"],"operationId":"testPredictor","parameters":[{"name":"value","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/tags":{"get":{"tags":["AI Services API","LLM Generative Services"],"summary":"Retrieve available tags","description":"Fetches the list of tags from the CHAT_SERVER. Includes an additional tag for the ecosystem.Ai model when applicable.","operationId":"tags","responses":{"200":{"description":"Tags retrieved successfully","content":{"application/json":{"schema":{"type":"object","example":{"tags":[{"name":"ecosystem.Ai:latest","details":{"format":"gguf","parameter_size":"7B"}}]}}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/studio/sessions/{sessionId}":{"get":{"tags":["Studio"],"summary":"Get session","description":"Get a Studio session by id.","operationId":"getSession","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/studio/sessions/{sessionId}/events":{"get":{"tags":["Studio"],"summary":"Session events","description":"SSE stream for session updates.","operationId":"sessionEvents","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"type":"object"}}}}}}},"/sse/notifications":{"get":{"tags":["notifications-controller"],"operationId":"subscribeToNotifications","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/splitFrame":{"get":{"tags":["Worker: H2O"],"summary":"Split a data frame","description":"Splits a data frame into multiple parts based on the provided criteria.","operationId":"splitFrame","parameters":[{"name":"frame","in":"query","required":true,"schema":{"type":"string"}},{"name":"ratio","in":"query","required":true,"schema":{"type":"number","format":"double"}}],"responses":{"200":{"description":"Successfully split the data frame.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input or error during data frame splitting.","content":{"application/json":{}}}}}},"/sicEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Standard Industrial Classification (SIC) Enrichment","description":"Enriches the specified MongoDB collection by processing attributes related to the Standard Industrial Classification (SIC). Optionally filters data based on the `find` query parameter.","operationId":"sicEnrich","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the enrichment is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute to process for SIC enrichment.","required":true,"schema":{"type":"string"},"example":"industryCode"},{"name":"find","in":"query","description":"A JSON query to filter the documents for enrichment.","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"SIC enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during SIC enrichment.","content":{"application/json":{}}}}}},"/setTenant":{"get":{"tags":["Worker: AWS"],"summary":"Set Tenant Configuration","description":"Sets the tenant configuration using a JSON string provided as a query parameter.","operationId":"setTenant","parameters":[{"name":"string","in":"query","description":"A JSON string containing the tenant configuration. Example: `{ \"tenant_id\": \"exampleTenantId\", \"configKey\": \"configValue\" }`.","required":true,"schema":{"type":"string"},"example":{"tenant_id":"exampleTenantId","configKey":"configValue"}}],"responses":{"200":{"description":"Tenant configuration was successfully set.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload or missing configuration data.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/setConfiguration":{"get":{"tags":["Worker: AWS"],"summary":"Set AWS configuration","description":"Sets the AWS environment configuration using a JSON payload provided as a query parameter. The `string` parameter must include keys such as `hosted_zone_id`, `vpc_id`, `certificate_arn`, `subnet_id`, `region`, `template_path`, `template_path_data`, and optionally `pem_path`.","operationId":"setConfiguration","parameters":[{"name":"string","in":"query","description":"A JSON string containing the configuration details. Example: {\"hosted_zone_id\": \"exampleZoneId\", \"vpc_id\": \"exampleVpcId\", \"certificate_arn\": \"exampleCertArn\", \"subnet_id\": \"exampleSubnetId\", \"region\": \"exampleRegion\", \"template_path\": \"/path/to/template\", \"template_path_data\": \"/path/to/data\", \"pem_path\": \"/path/to/pem\"}","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Configuration was successfully set.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request payload or missing configuration keys.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/setChatThread":{"get":{"tags":["AI Services API"],"summary":"Set Chat Thread","description":"Associates a UUID with a chat thread and returns the assigned thread ID.","operationId":"setChatThread","parameters":[{"name":"uuid","in":"query","description":"The unique identifier of the chat thread to associate","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Thread ID successfully assigned","content":{"application/json":{"schema":{"type":"object","example":{"thread_id":1}}}}},"400":{"description":"Invalid input parameter","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/restoreMongoDatabase":{"get":{"tags":["Data Management Engine"],"summary":"Restore MongoDB database and collection from a specified folder","description":"This service restores the specified MongoDB database and collection from files in the given folder.","operationId":"restoreMongoDatabase","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database to restore.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The name of the MongoDB collection to restore.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"folder","in":"query","description":"The folder from which the data will be restored.","required":true,"schema":{"type":"string"},"example":"/data/backups"}],"responses":{"200":{"description":"Successfully restored the MongoDB database and collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/renameCollection":{"get":{"tags":["Data Management Engine"],"summary":"Rename a collection in a MongoDB database","description":"Renames an existing collection in the specified MongoDB database to a new name.","operationId":"renameCollection","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The current name of the collection to rename.","required":true,"schema":{"type":"string"},"example":"my_collection"},{"name":"new_collection","in":"query","description":"The new name for the collection.","required":true,"schema":{"type":"string"},"example":"my_new_collection"}],"responses":{"200":{"description":"Successfully renamed the collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database or collection name, or the new name is already in use.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while renaming the collection.","content":{"application/json":{}}}}}},"/ps":{"get":{"tags":["AI Services API","LLM Generative Services"],"summary":"List running models","description":"Proxies to the Ollama /api/ps endpoint to list currently loaded models. Always includes the permanent ecosystem models.","operationId":"ps","responses":{"200":{"description":"Running models retrieved successfully","content":{"application/json":{"schema":{"type":"object","example":{"models":[]}}}}}}}},"/profiles":{"get":{"tags":["Ecosystem Main Admin"],"summary":"Get user profiles","description":"Retrieves a list of all user profiles.","operationId":"getProfiles","responses":{"200":{"description":"Successfully retrieved user profiles.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error occurred while retrieving profiles.","content":{"application/json":{}}}}}},"/profile":{"get":{"tags":["Ecosystem User Profiles"],"summary":"Get user profile","description":"Retrieves the user profile for the specified user ID.","operationId":"getProfile","parameters":[{"name":"userid","in":"query","description":"The user ID whose profile is to be retrieved.","required":false,"schema":{"type":"string"},"example":"user123"}],"responses":{"200":{"description":"Successfully retrieved the user profile.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while retrieving the profile.","content":{"application/json":{}}}}}},"/processRange":{"get":{"tags":["Data Munging Engine"],"summary":"Apply Range-Based Rules on a MongoDB Collection","description":"Processes data in a MongoDB collection based on a range-based rule set defined in the `rules` parameter. Updates or creates a new attribute according to the rules.","operationId":"processRange","parameters":[{"name":"database","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the operation will be applied.","required":true,"schema":{"type":"string"},"example":"sourceCollection"},{"name":"mongoAttribute","in":"query","description":"The MongoDB attribute to process using the range rules.","required":true,"schema":{"type":"string"},"example":"age"},{"name":"newAttribute","in":"query","description":"The new attribute or column to be created or updated with the results.","required":true,"schema":{"type":"string"},"example":"ageCategory"},{"name":"find","in":"query","description":"The MongoDB query to filter documents for processing.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"rules","in":"query","description":"The JSON rule set specifying how ranges should be applied. Example JSON: `{type:\"range\", range:[ {from:1,to:3,value:0},{from:4,to:5,value:1} ]}`","required":true,"schema":{"type":"string","default":"{type:\"range\", range:[ {from:1,to:3,value:0},{from:4,to:5,value:1} ]}"},"example":{"type":"range","range":[{"from":1,"to":3,"value":0},{"from":4,"to":5,"value":1}]}}],"responses":{"200":{"description":"Range-based processing completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input or missing parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during range processing.","content":{"application/json":{}}}}}},"/processPrompt":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process prompt for enrichment, Prompt Enrichment","description":"Processes a prompt for enrichment based on the specified database, collection, field, pipeline, output collection, and prompt category. The result is returned asynchronously.","operationId":"processPrompt","parameters":[{"name":"database","in":"query","description":"The name of the database containing the input data.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the input collection within the database.","required":true,"schema":{"type":"string"},"example":"input_collection"},{"name":"field","in":"query","description":"The specific field in the collection to process.","required":true,"schema":{"type":"string"},"example":"text_field"},{"name":"pipeline","in":"query","description":"The pipeline configuration for the enrichment process.","required":true,"schema":{"type":"string"},"example":{"stages":[{"$match":{"status":"active"}}]}},{"name":"output_collection","in":"query","description":"The name of the output collection to store the results.","required":true,"schema":{"type":"string"},"example":"output_collection"},{"name":"prompt_category","in":"query","description":"The category of the prompt to process.","required":true,"schema":{"type":"string"},"example":"text_enrichment"}],"responses":{"200":{"description":"Successfully processed the prompt and stored results.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during prompt processing.","content":{"application/json":{}}}}}},"/processPostCallback":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process post-callback","description":"Processes a post-callback for the specified job name asynchronously and returns the result.","operationId":"processPostCallback","parameters":[{"name":"job_name","in":"query","description":"The name of the job for which the post-callback is being processed.","required":true,"schema":{"type":"string"},"example":"post_callback_job_123"}],"responses":{"200":{"description":"Successfully processed the post-callback.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid job name provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during post-callback processing.","content":{"application/json":{}}}}}},"/processFileToFrameImport":{"get":{"tags":["Worker: H2O"],"summary":"Process file and import to frame","description":"Processes a specified file and imports it into a data frame. The file path and other parameters are required for this operation.","operationId":"processFileToFrame","parameters":[{"name":"filePath","in":"query","description":"The path of the file to process.","required":true,"example":"/path/to/file.csv"},{"name":"frameName","in":"query","description":"The name of the frame to import the processed file into.","required":true,"example":"processed_frame"},{"name":"file_name","in":"query","required":true,"schema":{"type":"string"}},{"name":"first_row_column_names","in":"query","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"separator","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully processed the file and imported into the frame.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid file path, frame name, or error during processing.","content":{"application/json":{}}}}}},"/processEmlo":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process EMLO job","description":"Processes an EMLO job based on the provided job name and returns the result.","operationId":"processEmlo","parameters":[{"name":"job_name","in":"query","description":"The name of the EMLO job to process.","required":true,"schema":{"type":"string"},"example":"emlo_analysis_job_123"}],"responses":{"200":{"description":"Successfully processed the EMLO job.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid job name provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during job processing.","content":{"application/json":{}}}}}},"/processEmloPrompt":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process EmotionGenetics prompt","description":"Processes an EmotionGenetics / EmotionGenetics prompt for the specified job name and category asynchronously and returns the result.","operationId":"processEmloPrompt","parameters":[{"name":"job_name","in":"query","description":"The name of the job for which the EmotionGenetics prompt is being processed.","required":true,"schema":{"type":"string"},"example":"emlo_prompt_job_123"},{"name":"category","in":"query","description":"The category associated with the EmotionGenetics prompt.","required":true,"schema":{"type":"string"},"example":"text_enrichment"}],"responses":{"200":{"description":"Successfully processed the EmotionGenetics prompt.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during EmotionGenetics prompt processing.","content":{"application/json":{}}}}}},"/processEmloAnalytic":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process EMLO analytic job asynchronously","description":"Processes an EMLO analytic job asynchronously based on the provided job name and returns the result.","operationId":"processEmloAnalytic","parameters":[{"name":"job_name","in":"query","description":"The name of the EMLO analytic job to process.","required":true,"schema":{"type":"string"},"example":"emlo_analytic_job_123"}],"responses":{"200":{"description":"Successfully initiated the EMLO analytic job.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid job name provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during job processing.","content":{"application/json":{}}}}}},"/processEcogeneticNetwork":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Analyze graph data using metadata and parameters","description":"Analyzes a graph network using metadata and analysis parameters provided in JSON format. Metadata specifies the vertices and edges, while analysis parameters define the source and destination for the analysis. Example metadata: {\"vertex\":[\"MCH_CITY_NAME\",\"MCH_MERCHANT_NAME\"],\"edges\":[{\"from\":\"MCH_CITY_NAME\",\"to\":\"MCH_MERCHANT_NAME\"}]}. Example analysis parameters: {\"destination\":\"Bakeries\",\"source\":\"12345678\"}.","operationId":"processEcogeneticNetwork","parameters":[{"name":"database","in":"query","description":"The database name to query.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The collection name containing the graph data.","required":true,"schema":{"type":"string"},"example":"network_collection"},{"name":"collectionOut","in":"query","description":"The output collection name for storing results.","required":true,"schema":{"type":"string"},"example":"output_collection"},{"name":"find","in":"query","description":"The search query or criteria for the graph data.","required":true,"schema":{"type":"string"},"example":{"age":{"$gt":30}}},{"name":"graphMeta","in":"query","description":"JSON metadata for the graph. Example: {\"vertex\":[\"MCH_CITY_NAME\",\"MCH_MERCHANT_NAME\"],\"edges\":[{\"from\":\"MCH_CITY_NAME\",\"to\":\"MCH_MERCHANT_NAME\"}]}.","required":true,"schema":{"type":"string"},"example":{"vertex":["MCH_CITY_NAME","MCH_MERCHANT_NAME"],"edges":[{"from":"MCH_CITY_NAME","to":"MCH_MERCHANT_NAME"}]}},{"name":"graphParam","in":"query","description":"JSON parameters for the graph analysis. Example: {\"destination\":\"Bakeries\",\"source\":\"12345678\"}.","required":true,"schema":{"type":"string"},"example":{"destination":"Bakeries","source":"12345678"}}],"responses":{"200":{"description":"Successfully processed the graph network.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during processing.","content":{"application/json":{}}}}}},"/processDirectedGraph":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Analyze graph data using metadata and analysis parameters","description":"Analyzes a directed graph based on the provided graph metadata and analysis parameters. The metadata includes vertex and edge information, file paths, and column mapping. The parameters define specific analysis details.","operationId":"processDirectedGraph","parameters":[{"name":"graphMeta","in":"query","description":"JSON metadata for the graph. Example: {\"vertex\":[0,1],\"edges\":[{\"from\":0,\"to\":1}],\"from\":0,\"source\":\"/data/data.csv\",\"dotfile\":\"/data/data.dot\",\"to\":1}.","required":true,"schema":{"type":"string"},"example":{"vertex":[0,1],"edges":[{"from":0,"to":1}],"from":0,"source":"/data/data.csv","dotfile":"/data/data.dot","to":1}},{"name":"graphParam","in":"query","description":"JSON parameters for the graph analysis. Example: {\"destination\":\"Bakeries\",\"source\":\"12345678\"}.","required":true,"schema":{"type":"string"},"example":{"destination":"Bakeries","source":"12345678"}}],"responses":{"200":{"description":"Successfully processed the graph.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input metadata or parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during graph processing.","content":{"application/json":{}}}}}},"/processDirectedGraph2":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Analyze graph data with additional parameters","description":"Analyzes a directed graph using graph metadata, analysis parameters, and additional database details. The metadata includes vertex and edge information, file paths, and column mapping. The parameters define specific analysis details.","operationId":"processDirectedGraph2","parameters":[{"name":"database","in":"query","description":"The database name to query.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The collection name containing the graph data.","required":true,"schema":{"type":"string"},"example":"graph_collection"},{"name":"collectionOut","in":"query","description":"The output collection name for storing results.","required":true,"schema":{"type":"string"},"example":"output_collection"},{"name":"find","in":"query","description":"The query or search criteria for the graph data.","required":true,"schema":{"type":"string"},"example":{"age":{"$gt":30}}},{"name":"graphMeta","in":"query","description":"JSON metadata for the graph. Example: {\"vertex\":[0,1],\"edges\":[{\"from\":0,\"to\":1}],\"from\":0,\"source\":\"/data/data.csv\",\"dotfile\":\"/data/data.dot\",\"to\":1}.","required":true,"schema":{"type":"string"},"example":{"vertex":[0,1],"edges":[{"from":0,"to":1}],"from":0,"source":"/data/data.csv","dotfile":"/data/data.dot","to":1}},{"name":"graphParam","in":"query","description":"JSON parameters for the graph analysis. Example: {\"destination\":\"Bakeries\",\"source\":\"12345678\"}.","required":true,"schema":{"type":"string"},"example":{"destination":"Bakeries","source":"12345678"}}],"responses":{"200":{"description":"Successfully processed the graph.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during graph processing.","content":{"application/json":{}}}}}},"/processClientPulseReliability":{"get":{"tags":["Data Munging Engine"],"summary":"Calculate Client Pulse Reliability Measures","description":"Provides client pulse reliability metrics:\n- **H(X)**: Reliability of the client pulse,\n- **H(X|Y)**: Conditional reliability,\n- **H(X,Y)**: Joint reliability.\n\n Use the `type` parameter with values like `'reliability'` or `'conditional'` to specify the calculation.","operationId":"processEntropy","parameters":[{"name":"database","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the client pulse data.","required":true,"schema":{"type":"string"},"example":"pulseDataCollection"},{"name":"mongoAttribute","in":"query","description":"The attribute in the collection whose reliability is calculated.","required":true,"schema":{"type":"string"},"example":"pulseValue"},{"name":"collectionOut","in":"query","description":"The MongoDB collection where the results will be saved.","required":true,"schema":{"type":"string"},"example":"reliabilityResults"},{"name":"groupby","in":"query","description":"The field used for grouping the data before calculation.","required":true,"schema":{"type":"string"},"example":"clientId"},{"name":"find","in":"query","description":"The JSON query to filter documents before calculation.","required":true,"schema":{"type":"string"},"example":{"clientStatus":"active"}},{"name":"type","in":"query","description":"The type of calculation to perform. Accepted values: `'reliability'`, `'conditional'`.","required":true,"schema":{"type":"string"},"example":"reliability"}],"responses":{"200":{"description":"Reliability calculation completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the reliability calculation.","content":{"application/json":{}}}}}},"/processBasket":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process basket analysis","description":"Performs basket analysis using the Apriori algorithm with the provided database, collection, search, and field parameters for both customers and items, along with a support count threshold.","operationId":"processBasket","parameters":[{"name":"dbCust","in":"query","description":"The database name for customer data.","required":true,"schema":{"type":"string"},"example":"customer_db"},{"name":"colCust","in":"query","description":"The collection name for customer data.","required":true,"schema":{"type":"string"},"example":"customer_collection"},{"name":"searchCust","in":"query","description":"The search criteria for customers.","required":true,"schema":{"type":"string"},"example":{"age":{"$gt":30}}},{"name":"custField","in":"query","description":"The customer field to analyze.","required":true,"schema":{"type":"string"},"example":"purchased_items"},{"name":"dbItem","in":"query","description":"The database name for item data.","required":true,"schema":{"type":"string"},"example":"item_db"},{"name":"colItem","in":"query","description":"The collection name for item data.","required":true,"schema":{"type":"string"},"example":"item_collection"},{"name":"itemField","in":"query","description":"The item field to analyze.","required":true,"schema":{"type":"string"},"example":"item_name"},{"name":"supportCount","in":"query","description":"The support count threshold for the Apriori algorithm.","required":true,"schema":{"type":"integer","format":"int32"},"example":5}],"responses":{"200":{"description":"Successfully processed the basket analysis.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during basket analysis.","content":{"application/json":{}}}}}},"/processApriori":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Process Apriori algorithm","description":"Executes the Apriori algorithm with the provided database, collections, fields, and support count threshold to generate association rules.","operationId":"processApriori","parameters":[{"name":"database","in":"query","description":"The name of the database to process.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the input collection.","required":true,"schema":{"type":"string"},"example":"input_collection"},{"name":"collectionOut","in":"query","description":"The name of the output collection for storing results.","required":true,"schema":{"type":"string"},"example":"output_collection"},{"name":"find","in":"query","description":"The search query or criteria.","required":true,"schema":{"type":"string"},"example":{"age":{"$gt":30}}},{"name":"custField","in":"query","description":"The customer field to analyze.","required":true,"schema":{"type":"string"},"example":"purchased_items"},{"name":"dbItem","in":"query","description":"The name of the database containing item data.","required":true,"schema":{"type":"string"},"example":"item_database"},{"name":"colItem","in":"query","description":"The collection name for item data.","required":true,"schema":{"type":"string"},"example":"item_collection"},{"name":"itemField","in":"query","description":"The item field to analyze.","required":true,"schema":{"type":"string"},"example":"item_name"},{"name":"supportCount","in":"query","description":"The support count threshold for the Apriori algorithm.","required":true,"schema":{"type":"integer","format":"int32"},"example":5}],"responses":{"200":{"description":"Successfully executed the Apriori algorithm and generated results.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during processing.","content":{"application/json":{}}}}}},"/prepareProjectZip":{"get":{"tags":["Prediction Engine"],"operationId":"prepareProjectZip","parameters":[{"name":"projectID","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/predictionModels":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve prediction models","description":"Fetches a list of all available prediction models.","operationId":"getModels","responses":{"200":{"description":"Successfully retrieved the list of prediction models.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Error while retrieving prediction models.","content":{"application/json":{}}}}}},"/predictionJobs":{"get":{"tags":["Worker: H2O"],"summary":"Get all prediction jobs","description":"Retrieves a list of all prediction jobs currently available.","operationId":"getJobs","responses":{"200":{"description":"Successfully retrieved prediction jobs.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Error while retrieving prediction jobs.","content":{"application/json":{}}}}}},"/predictionFrames":{"get":{"tags":["Worker: H2O"],"summary":"Get prediction frames","description":"Retrieves a list of all available prediction frames.","operationId":"getFrames","responses":{"200":{"description":"Successfully retrieved prediction frames.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Error while retrieving prediction frames.","content":{"application/json":{}}}}}},"/predictionEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Prediction-based Enrichment","description":"Performs prediction-based enrichment in a MongoDB collection using a specified predictor. Adds prediction results to the collection based on the provided attributes and search query.","operationId":"predictionEnrich","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database containing the source collection.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where prediction enrichment is to be applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"search","in":"query","description":"The search query to filter documents for prediction enrichment (e.g., using MongoDB query syntax in JSON format).","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"predictor","in":"query","description":"The name or ID of the predictor model to use for enrichment.","required":true,"schema":{"type":"string"},"example":"examplePredictor"},{"name":"predictor_label","in":"query","description":"The label or name associated with the predictor output.","required":true,"schema":{"type":"string"},"example":"predictedOutcome"},{"name":"attributes","in":"query","description":"An array of attributes from the documents to be used as input for predictions.","required":true,"schema":{"type":"array","items":{"type":"string"}},"example":["field1","field2","field3"]}],"responses":{"200":{"description":"Prediction-based enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during prediction enrichment.","content":{"application/json":{}}}}}},"/ping":{"get":{"tags":["Ecosystem Home"],"summary":"Ping the server","description":"Returns a response to indicate that the server is active, including the provided message and server version.","operationId":"getMessage","parameters":[{"name":"message","in":"query","description":"The message to be echoed back if the server is running.","required":false,"schema":{"type":"string","default":"default server hello"},"example":"Ping test message"}],"responses":{"200":{"description":"Successfully received the ping message.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error occurred during the ping.","content":{"application/json":{}}}}}},"/personalityEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Personality Enrichment","description":"Enriches personality-related data in MongoDB by processing selected attributes. The enrichment output can be saved to a specified collection. Filters can be applied using the `find` parameter.","operationId":"personalityEnrich","parameters":[{"name":"database","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"personalityDB"},{"name":"collection","in":"query","description":"The MongoDB source collection for enrichment.","required":true,"schema":{"type":"string"},"example":"personalityData"},{"name":"collectionOut","in":"query","description":"The MongoDB collection where the enrichment results will be saved.","required":true,"schema":{"type":"string"},"example":"enrichedPersonality"},{"name":"groupby","in":"query","description":"The field by which the enrichment data is grouped.","required":true,"schema":{"type":"string"},"example":"userId"},{"name":"type","in":"query","description":"The type of personality enrichment to perform.","required":true,"schema":{"type":"string"},"example":"behavioral"},{"name":"category","in":"query","description":"The category for enrichment (e.g., `introvert`, `extrovert`).","required":true,"schema":{"type":"string"},"example":"introvert"},{"name":"find","in":"query","description":"A JSON query to filter documents for enrichment.","required":true,"schema":{"type":"string"},"example":{"active":true}}],"responses":{"200":{"description":"Personality enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the enrichment process.","content":{"application/json":{}}}}}},"/oauth/authorize":{"get":{"tags":["MCP OAuth"],"summary":"Authorization Endpoint","description":"OAuth 2.1 authorization endpoint. Initiates authorization code flow with PKCE.","operationId":"authorize","parameters":[{"name":"response_type","in":"query","required":true,"schema":{"type":"string"}},{"name":"client_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"code_challenge","in":"query","required":false,"schema":{"type":"string"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"type":"string","default":"S256"}}],"responses":{"200":{"description":"OK"}}}},"/notifications":{"get":{"tags":["notifications-controller"],"operationId":"getNotifications","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","default":"all"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NotificationsResponse"}}}}}},"delete":{"tags":["notifications-controller"],"operationId":"clearAllNotifications","responses":{"200":{"description":"OK"}}}},"/nlpWorker":{"get":{"tags":["Data Munging Engine"],"summary":"Perform NLP-based enrichment on documents in a MongoDB collection","description":"Uses NLP (Natural Language Processing) tools to enrich documents in a MongoDB collection and writes the results to an output collection. Various parameters allow customization of the enrichment process, including `type`, `transformer`, and summarization limits.","operationId":"nlpWorker","parameters":[{"name":"database","in":"query","description":"The MongoDB source database name where the collection resides.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB source collection containing the documents to enrich.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"database_out","in":"query","description":"The MongoDB destination database where enriched documents will be saved.","required":true,"schema":{"type":"string"},"example":"outputDatabase"},{"name":"collection_out","in":"query","description":"The MongoDB destination collection where enriched documents will be written.","required":true,"schema":{"type":"string"},"example":"enrichedCollection"},{"name":"attribute","in":"query","description":"The attribute in the source documents to process and enrich.","required":true,"schema":{"type":"string"},"example":"text"},{"name":"find","in":"query","description":"A JSON query to filter documents for enrichment.","required":false,"schema":{"type":"string"},"example":{"active":true}},{"name":"type","in":"query","description":"The type of NLP processing to apply, e.g., `nlp_b5_base` (default).","required":false,"schema":{"type":"string","default":"nlp_b5_base"},"example":"nlp_b5_base"},{"name":"transformer","in":"query","description":"The transformer model to use, e.g., `t5-small` (default).","required":false,"schema":{"type":"string","default":"t5-small"},"example":"t5-small"},{"name":"summarization_min","in":"query","description":"The minimum length for summarization output (default: 5).","required":false,"schema":{"type":"string","default":"5"},"example":5},{"name":"summarization_max","in":"query","description":"The maximum length for summarization output (default: 10).","required":false,"schema":{"type":"string","default":"10"},"example":10},{"name":"model","in":"query","description":"The NLP model to use, e.g., `original` (default).","required":false,"schema":{"type":"string","default":"original"},"example":"original"}],"responses":{"200":{"description":"NLP-based enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during NLP enrichment.","content":{"application/json":{}}}}}},"/mungeTransactions":{"get":{"tags":["Data Munging Engine"],"summary":"Munge Transactions","description":"Processes data munging for transactions on a specified project and performs the specified munging step.","operationId":"mungeTransactions","parameters":[{"name":"project_id","in":"query","description":"The unique identifier for the project whose transactions need to be munged.","required":true,"schema":{"type":"string"},"example":"exampleProjectId"},{"name":"munging_step","in":"query","description":"The specific munging step to be performed on the transactions.","required":true,"schema":{"type":"integer"},"example":1}],"responses":{"200":{"description":"Processing completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or missing mandatory fields.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/mungeTransactionsAggregate":{"get":{"tags":["Data Munging Engine"],"summary":"Munge and Aggregate Transactions","description":"Handles the aggregation of transactions for the specified project and performs a given munging step.","operationId":"mungeTransactionsAggregate","parameters":[{"name":"project_id","in":"query","description":"The unique identifier for the project whose transactions need to be aggregated.","required":true,"schema":{"type":"string"},"example":"exampleProjectId"},{"name":"munging_step","in":"query","description":"The specific munging step to be performed on the transactions.","required":true,"schema":{"type":"integer"},"example":1}],"responses":{"200":{"description":"Aggregation and munging process completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or request format.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/modeling/user/wizard":{"get":{"tags":["Modeling: Project Wizard"],"summary":"List Project Wizard runs","description":"Returns the wizard run history array from the authenticated user's modeling profile.","operationId":"getWizardHistory","responses":{"200":{"description":"Wizard history returned","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/user/whitelist-status":{"get":{"tags":["Modeling: Management"],"summary":"Check Whitelist Status","description":"Check if the current user is whitelisted for unlimited access.","operationId":"getWhitelistStatus","responses":{"200":{"description":"Whitelist status","content":{"application/json":{"example":{"whitelisted":true}}}}}}},"/modeling/user/usage-status":{"get":{"tags":["Modeling: Management"],"summary":"Get Usage Status","description":"Get the current user's usage mode (trial, paid, whitelisted, exceeded) plus billing period token counts. Used by the frontend to display correct token counters.","operationId":"getUsageStatus","responses":{"200":{"description":"Usage status","content":{"application/json":{"example":{"mode":"paid","totalTokensUsed":2187951,"tokensRemaining":9223372036854775807,"periodTokensUsed":0,"subscriptionPeriodStartMs":1739692800000,"planName":"pro"}}}}}}},"/modeling/user/trial-license":{"get":{"tags":["Modeling: Management"],"summary":"Get Trial License","description":"Get the current user's trial license information.","operationId":"getTrialLicense","responses":{"200":{"description":"License status (exists: false if no license)","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/user/token-totals":{"get":{"tags":["Modeling: Management"],"summary":"Get Token Usage Totals","description":"Get the current user's token usage totals. Optionally filter by sinceMs to get usage after a specific timestamp.","operationId":"getTokenTotals","parameters":[{"name":"sinceMs","in":"query","description":"Optional: Only count usage after this timestamp (ms since epoch)","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Token totals","content":{"application/json":{"example":{"promptTokens":50000,"completionTokens":25000,"totalTokens":75000,"callCount":150,"estimatedCallCount":10,"estimatedTotalTokens":5000}}}}}}},"/modeling/user/earliest-usage":{"get":{"tags":["Modeling: Management"],"summary":"Get Earliest Usage Timestamp","description":"Get the timestamp of the user's earliest token usage. Used as the billing anchor for calculating usage periods.","operationId":"getEarliestUsage","responses":{"200":{"description":"Earliest timestamp","content":{"application/json":{"example":{"timestampMs":1705747200000}}}},"404":{"description":"No usage found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/jobs/{jobId}":{"get":{"tags":["Modeling: UML Generation Jobs"],"summary":"Get Job Status","description":"Get the current status and progress of a UML generation job.","operationId":"getStatus","parameters":[{"name":"jobId","in":"path","description":"The job ID","required":true,"schema":{"type":"string"},"example":"umljob_abc123xyz"}],"responses":{"200":{"description":"Job status retrieved","content":{"application/json":{"example":{"jobId":"umljob_abc123xyz","status":"running","progressPct":45,"phase":"generating_class_diagrams","message":"Generating class diagram 1 of 2...","tokenUsageSoFar":{"total_tokens":1500}}}}},"403":{"description":"Access denied","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/jobs/{jobId}/result":{"get":{"tags":["Modeling: UML Generation Jobs"],"summary":"Get Job Result","description":"Get the result of a completed UML generation job.","operationId":"getResult","parameters":[{"name":"jobId","in":"path","description":"The job ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Result retrieved","content":{"application/json":{"example":{"projectId":"proj_abc123xyz","diagramCount":5,"updatedAtMs":1706012345678}}}},"403":{"description":"Access denied","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/jobs/{jobId}/events":{"get":{"tags":["Modeling: UML Generation Jobs"],"summary":"Stream Job Events (SSE)","description":"Subscribe to real-time job events via Server-Sent Events.","operationId":"events","parameters":[{"name":"jobId","in":"path","description":"The job ID to stream","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"SSE stream established","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/jobs/stats/timing":{"get":{"tags":["Modeling: UML Generation Jobs"],"summary":"Get Timing Statistics","description":"Get aggregate generation time statistics for estimating job duration.","operationId":"getTimingStats","responses":{"200":{"description":"Statistics retrieved","content":{"application/json":{"example":{"averageDurationMs":45000,"medianDurationMs":38000,"p95DurationMs":120000,"sampleSize":150}}}}}}},"/modeling/uml/jobs/project/{projectId}/lock":{"get":{"tags":["Modeling: UML Generation Jobs"],"summary":"Get Project Lock Status","description":"Check if a project is locked due to an active generation job. Used for cross-session/cross-browser project locking.","operationId":"getProjectLockStatus","parameters":[{"name":"projectId","in":"path","description":"The project ID to check","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Lock status retrieved","content":{"application/json":{"examples":{"Unlocked":{"description":"Unlocked","value":{"locked":false,"projectId":"proj_abc123xyz"}},"Locked":{"description":"Locked","value":{"locked":true,"projectId":"proj_abc123xyz","jobId":"umljob_abc123","status":"running","progressPct":60}}}}}},"400":{"description":"Invalid projectId","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analysis-jobs/{jobId}":{"get":{"tags":["Modeling: UML Analysis Jobs"],"summary":"Get UML analysis job status","operationId":"getJob","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analysis-jobs/{jobId}/result":{"get":{"tags":["Modeling: UML Analysis Jobs"],"summary":"Get UML analysis job result","operationId":"getResult_1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/uml/analysis-jobs/{jobId}/events":{"get":{"tags":["Modeling: UML Analysis Jobs"],"summary":"Stream UML analysis job events","operationId":"streamEvents","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/modeling/uml/analysis-jobs/active":{"get":{"tags":["Modeling: UML Analysis Jobs"],"summary":"List active UML analysis jobs for current user","operationId":"getActiveJobs","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/me/security-block-status":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Security block status for current user","description":"Whether this account email appears on the MongoDB blocklist (ecosystem_modeling.user_security_blocklist). Intended for the SPA after password or OAuth login.","operationId":"getMySecurityBlockStatus","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/marketing-banner/active":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Get active marketing site promo banners","description":"Public read for ecosystemcode.com promo strip. Returns banners array (empty when none live) and rotationIntervalSeconds.","operationId":"getActiveMarketingBanner","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/modeling/tracking/email-images/public/{year}/{month}/{filename}":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Get public email campaign uploaded file (for mail clients)","description":"No authentication — URL is unguessable (UUID filename). Used by <img> / <a href> in HTML emails.","operationId":"getPublicEmailCampaignImage","parameters":[{"name":"year","in":"path","required":true,"schema":{"type":"string"}},{"name":"month","in":"path","required":true,"schema":{"type":"string"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/modeling/tracking/admin/user-event-logs":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"User event log lines for timeline (admin)","description":"Chronological rows from ecosystem_modeling.logs for one user (for S-path chart). Optional startDate / endDate are UTC calendar days (YYYY-MM-DD), inclusive.","operationId":"getUserEventLogs","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string"}},{"name":"startDate","in":"query","required":false,"schema":{"type":"string"}},{"name":"endDate","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/trial-licenses":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List trial licenses with usage (admin)","description":"Latest trial acceptance per user from ecosystem_modeling.trial_licenses, plus token totals, remaining trial headroom, and last activity from llm_token_logs / logs.","operationId":"getTrialLicensesWithMetrics","parameters":[{"name":"userEmail","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/security-block-transactions":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Security block / unblock audit transactions (admin)","description":"Append-only records from ecosystem_modeling.user_security_block_transactions (newest first). Each block or unblock writes one row alongside logs.","operationId":"listSecurityBlockTransactions","parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/recent-logs":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Recent platform logs (admin)","description":"Paged recent rows from ecosystem_modeling.logs, newest first (timestampMs). Default limit 1000; use skip for additional pages. Optional level (e.g. error) filters before sort — use for the admin error log view.","operationId":"getRecentLogs","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1000}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"level","in":"query","required":false,"schema":{"type":"string"}},{"name":"userEmail","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/usage":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Hosting usage summary by user (admin)","description":"Aggregates ecosystem_modeling.logs for hosting_* events, grouped by userEmail. Returns per-user event counts, first/last activity, and providers used.","operationId":"getHostingUsageSummary","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/usage/{email}/events":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Hosting usage events for one user (admin)","description":"Returns recent hosting_* events for the given userEmail, newest first. Used for the drill-down view on the Hosting Usage tab.","operationId":"getHostingUsageEventsForUser","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":200}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/orphans/profiles":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"[ADMIN] List cloud profiles available for orphan scanning","description":"Returns every cloud_provider_profiles document (with secrets stripped) so the admin can pick which credentials to scan with.","operationId":"listAdminOrphanProfiles","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/jobs":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Recent hosted app lifecycle jobs (admin)","description":"Returns recent hosted_app job documents with safe diagnostic fields for the commercial Hosting logs panel.","operationId":"getHostingJobs","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"userEmail","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"action","in":"query","required":false,"schema":{"type":"string"}},{"name":"jobType","in":"query","required":false,"schema":{"type":"string","default":"hosted_app"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/events":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Recent hosting audit events (admin)","description":"Returns recent hosting-category audit log rows for the commercial Hosting logs panel.","operationId":"getHostingEvents","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":200}},{"name":"hostingAppId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/apps":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List all hosted apps across users (admin)","description":"Returns hosted_app documents from every user, with optional filters for owner email, provider, status, and free-text query. Encrypted seed connection strings are stripped. Used by the commercial dashboard 'Hosted Apps' tab.","operationId":"listAllHostedApps","parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting-access":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List hosting access requests (admin)","description":"Returns all hosting_access requests. Optional ?status= filter (pending, approved, denied).","operationId":"listHostingAccessRequests","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/email-campaign-runs":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"List recent sales email campaigns (per-recipient audit)","description":"Returns rows from ecosystem_modeling.email_campaign_runs (newest first).","operationId":"listEmailCampaignRuns","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"recipientEmail","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/email-campaign-runs/{campaignId}/recipients":{"get":{"tags":["Modeling: Tracking & Analytics"],"summary":"Sales email campaign detail — all recipients","description":"Returns the run summary plus one row per recipient from ecosystem_modeling.email_campaign_recipients.","operationId":"getEmailCampaignRecipients","parameters":[{"name":"campaignId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/synthetic-data/jobs/{jobId}":{"get":{"tags":["Modeling: Synthetic Data Generation"],"summary":"Get Job Status","description":"Get the current status of a synthetic data generation job.","operationId":"getJobStatus","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/synthetic-data/jobs/{jobId}/result":{"get":{"tags":["Modeling: Synthetic Data Generation"],"summary":"Get Job Result","description":"Get the generated synthetic data files for a completed job.","operationId":"getJobResult","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/synthetic-data/jobs/{jobId}/events":{"get":{"tags":["Modeling: Synthetic Data Generation"],"summary":"Job Events (SSE)","description":"Server-Sent Events stream for real-time job progress updates.","operationId":"jobEvents","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/modeling/synthetic-data/jobs/active":{"get":{"tags":["Modeling: Synthetic Data Generation"],"summary":"Get Active Job","description":"Get the active synthetic data job for the current user (for reconnection).","operationId":"getActiveJob","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/storage":{"get":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Get Storage Overview","description":"Get a complete overview of all user storage including uploaded files and generated applications.","operationId":"getStorageOverview","responses":{"200":{"description":"Storage overview retrieved","content":{"application/json":{"example":{"uploads":[{"filename":"source.zip","sizeBytes":102400,"uploadedAt":"2026-01-23T10:00:00Z"}],"generatedApps":[{"id":"app_abc123xyz","filename":"MyProject_app-generation.zip","type":"app-generation","projectId":"proj_abc123","projectName":"My Project","generatedAt":"2026-01-23T10:30:00Z","fileCount":45,"sizeBytes":256000}]}}}}}}},"/modeling/storage/uploads/{filename}/download":{"get":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Download Uploaded File","description":"Download a previously uploaded file.","operationId":"downloadUploadedFile","parameters":[{"name":"filename","in":"path","description":"The filename to download","required":true,"schema":{"type":"string"},"example":"source.zip"}],"responses":{"200":{"description":"File download","content":{"application/octet-stream":{"schema":{"type":"object"}}}},"404":{"description":"File not found","content":{"application/octet-stream":{"schema":{"type":"object"}}}}}}},"/modeling/source-import/projects":{"get":{"tags":["Modeling: Source Import"],"operationId":"listProjects","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-import/projects/{projectName}":{"get":{"tags":["Modeling: Source Import"],"operationId":"getProject","parameters":[{"name":"projectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Source Import"],"operationId":"deleteProject","parameters":[{"name":"projectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/jobs/{jobId}":{"get":{"tags":["Modeling: Source Code Analysis"],"operationId":"getJobStatus_1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/jobs/{jobId}/result":{"get":{"tags":["Modeling: Source Code Analysis"],"operationId":"getJobResult_1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/jobs/{jobId}/events":{"get":{"tags":["Modeling: Source Code Analysis"],"operationId":"subscribeToJobEvents","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"type":"object"}}}}}}},"/modeling/source-analysis/jobs/active":{"get":{"tags":["Modeling: Source Code Analysis"],"operationId":"getActiveJob_1","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/prompts":{"get":{"tags":["Modeling: Prompt Catalog"],"summary":"List Prompts","description":"List all available Contextual Prompt templates with basic metadata.","operationId":"listPrompts","responses":{"200":{"description":"Prompts retrieved","content":{"application/json":{"example":[{"id":"uml.class.system","name":"UML Class System Prompt","kind":"system"},{"id":"uml.class.prompt","name":"UML Class Generation Prompt","kind":"prompt"},{"id":"code.generate.prompt","name":"Code Generation Prompt","kind":"template"}]}}}}}},"/modeling/prompts/{promptId}":{"get":{"tags":["Modeling: Prompt Catalog"],"summary":"Get Prompt by ID","description":"Get a specific prompt template by its ID.","operationId":"getPrompt","parameters":[{"name":"promptId","in":"path","description":"The prompt ID","required":true,"schema":{"type":"string"},"example":"uml.class.system"}],"responses":{"200":{"description":"Prompt retrieved","content":{"application/json":{"example":{"id":"uml.class.system","name":"UML Class System Prompt","kind":"system","value":"You are an expert software architect..."}}}},"404":{"description":"Prompt not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/prompts/examples/full":{"get":{"tags":["Modeling: Prompt Catalog"],"summary":"Get Diagram Examples","description":"Get example diagrams and their prompts for reference.","operationId":"getDiagramExamples","responses":{"200":{"description":"Examples retrieved","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/modeling/prompts/catalog/full":{"get":{"tags":["Modeling: Prompt Catalog"],"summary":"Get Full Catalog","description":"Get the complete prompt catalog with all templates and their full content.","operationId":"getFullCatalog","responses":{"200":{"description":"Full catalog retrieved","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/modeling/projects":{"get":{"tags":["Modeling: Management"],"summary":"List Projects","description":"List all projects accessible to the current user. Returns projects owned by user, shared with user, public projects, and legacy projects.","operationId":"listProjects_1","responses":{"200":{"description":"List of projects","content":{"application/json":{"example":[{"id":"proj_abc123","name":"My Project","description":"A sample project","userId":"uid_xxx","ownerEmail":"user@example.com","sharing":{"isPublic":false,"sharedWith":[]},"createdAt":"2025-01-20T10:00:00Z","updatedAt":"2025-01-25T14:30:00Z"}]}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{projectId}/git-status":{"get":{"tags":["Modeling: Git Publishing"],"summary":"Get Git Status","description":"Get the last Git publish status for a project.","operationId":"getStatus_1","parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Git status","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}":{"get":{"tags":["Modeling: Management"],"summary":"Get Project by ID","description":"Get a specific project by ID. Returns 404 if project doesn't exist or user doesn't have access.","operationId":"getProjectById","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project found","content":{"application/json":{}}},"404":{"description":"Project not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Management"],"summary":"Delete Project","description":"Delete a project by ID. Only the owner can delete a project. All diagrams in the project will also be deleted.","operationId":"deleteProject_1","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project deleted","content":{"application/json":{"example":{"success":true,"message":"Project deleted successfully"}}}},"404":{"description":"Project not found or not authorized to delete","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/plugins/by-name":{"get":{"tags":["Modeling: Management"],"summary":"Get Project Plugin by Name","description":"Find a plugin in the project by name (instanceName or pluginId). Use for 'show plugin X' or to resolve name to instance_id for edit.","operationId":"getProjectPluginByName","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","description":"Plugin name (instanceName or pluginId, partial match)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plugin found","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project or plugin not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/ontology/role-policies":{"get":{"tags":["Modeling: Ontology Roles"],"summary":"Get ontology role policies","description":"Return rolePolicies, suggested mappings, and confirmed mappings for a project","operationId":"getRolePolicies","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/ontology/export":{"get":{"tags":["Modeling: Ontology Synthesis"],"summary":"Export ontology","description":"Download last synthesized ontology as Turtle, OWL, or RDF (RDF/XML)","operationId":"export","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"ttl"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/{id}/domain-completeness":{"get":{"tags":["Modeling: Domain Completeness"],"summary":"Get Domain Completeness Report","description":"Validates the project's class diagrams against the domain catalog's shapes.ttl. The domain is taken from the query parameter when supplied, otherwise from the domainId recorded on the project's ontologyContext during generation.","operationId":"getDomainCompleteness","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"domainId","in":"query","required":false,"schema":{"type":"string"}},{"name":"industryId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/starred":{"get":{"tags":["Modeling: Management"],"summary":"List Starred Projects","description":"List all projects starred by the current user.","operationId":"listStarredProjects","responses":{"200":{"description":"List of starred projects","content":{"application/json":{}}}}}},"/modeling/projects/dashboard":{"get":{"tags":["Modeling: Management"],"summary":"List Dashboard Project Summaries","description":"List lightweight project summaries for the dashboard. Returns only card and badge fields; full projects and diagrams are fetched when a project is opened.","operationId":"listDashboardProjects","responses":{"200":{"description":"List of dashboard project summaries","content":{"application/json":{}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/projects/by-name":{"get":{"tags":["Modeling: Management"],"summary":"Find Project by Name","description":"Find a project by name. Returns 404 if not found or user doesn't have access.","operationId":"getProjectByName","parameters":[{"name":"name","in":"query","description":"Project name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project found","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Project not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/pipeline-diagnostic/learned-fixes":{"get":{"tags":["Modeling: Pipeline Diagnostics"],"summary":"Get Learned Fixes","description":"Retrieve the learned fixes stored for a project. These are applied automatically during generation.","operationId":"getLearnedFixes","parameters":[{"name":"projectId","in":"query","description":"Modeling Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/pipeline-diagnostic/diagnose":{"get":{"tags":["Modeling: Pipeline Diagnostics"],"summary":"Diagnose Pipeline Errors","description":"Fetch and analyze pipeline errors from GCP logs. Returns detected issues and suggested fixes.","operationId":"diagnosePipeline","parameters":[{"name":"projectId","in":"query","description":"GCP Project ID","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"query","description":"Pipeline Job ID (optional, uses latest failed job if not provided)","required":false,"schema":{"type":"string"}},{"name":"region","in":"query","description":"GCP Region","required":false,"schema":{"type":"string","default":"us-central1"}}],"responses":{"200":{"description":"Diagnosis complete","content":{"application/json":{"example":{"projectId":"my-project","jobId":"data-pipeline-20260205","success":true,"detectedErrors":[{"type":"PLACEHOLDER_NOT_REPLACED","cause":"SQL placeholder not replaced","suggestion":"Add missing placeholder replacement"}],"suggestedFixes":[{"type":"PLACEHOLDER_NOT_REPLACED","command":"./scripts/run-pipeline.sh","manualSteps":["1. Check SQL files","2. Add sed replacement"]}]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Diagnosis failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/ontology/validation/metadata":{"get":{"tags":["Modeling: Ontology Validation"],"summary":"Ontology validation metadata","description":"Returns supported standards (RDF 1.2, OWL 2, SKOS, SHACL, BFO), rule catalog, formats, input modes, and recommendation schema. No authentication required.","operationId":"getValidationMetadata","responses":{"200":{"description":"Metadata returned","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/jobs/recent":{"get":{"tags":["resource-modeling-jobs"],"operationId":"getRecentJobs","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":30}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/jobs/concurrency":{"get":{"tags":["resource-modeling-jobs"],"operationId":"getConcurrencyStatus","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/jobs/active":{"get":{"tags":["resource-modeling-jobs"],"operationId":"getActiveJobs_1","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/{hostingAppId}":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Get hosted app","operationId":"getHostedApp","parameters":[{"name":"hostingAppId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Hosted Apps"],"summary":"Delete terminated hosted app record","operationId":"deleteHostedApp","parameters":[{"name":"hostingAppId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/{hostingAppId}/database-connection":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Get hosted app database connection string","operationId":"getDatabaseConnection","parameters":[{"name":"hostingAppId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/profiles/{profileId}":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Get cloud provider profile","operationId":"getProfile_1","parameters":[{"name":"profileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Hosted Apps"],"summary":"Delete cloud provider profile","operationId":"deleteProfile","parameters":[{"name":"profileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/local-runtime":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Local hosting runtime hints derived from this server's IP","operationId":"getLocalRuntime","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/jobs/{jobId}":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Get hosted app lifecycle job","operationId":"getJob_1","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/jobs/{jobId}/events":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Stream hosted app job events","operationId":"streamJob","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/jobs/active":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Get active hosted app job","operationId":"getActiveJob_2","parameters":[{"name":"hostingAppId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/hosted-apps/access":{"get":{"tags":["Modeling: Hosted Apps"],"summary":"Check hosting access status for current user","operationId":"getAccessStatus","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/generated-apps":{"get":{"tags":["Modeling: Storage & Generated Apps"],"summary":"List Generated Apps","description":"List all stored generated application packages for the authenticated user.","operationId":"listStoredApps","responses":{"200":{"description":"Apps retrieved","content":{"application/json":{"example":{"apps":[{"id":"app_abc123xyz","filename":"MyProject_app-generation.zip","type":"app-generation","projectId":"proj_abc123","projectName":"My Project","generatedAt":"2026-01-21T10:30:00Z","fileCount":45,"sizeBytes":256000}],"count":1}}}}}}},"/modeling/generated-apps/{id}":{"get":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Get Generated App","description":"Get metadata for a specific generated application package.","operationId":"getStoredApp","parameters":[{"name":"id","in":"path","description":"The app ID","required":true,"schema":{"type":"string"},"example":"app_abc123xyz"}],"responses":{"200":{"description":"App metadata retrieved","content":{"application/json":{"example":{"id":"app_abc123xyz","filename":"MyProject_app-generation.zip","type":"app-generation","projectId":"proj_abc123","projectName":"My Project","generatedAt":"2026-01-21T10:30:00Z","fileCount":45,"sizeBytes":256000}}}},"404":{"description":"App not found","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Delete Generated App","description":"Delete a generated application package from storage.","operationId":"deleteStoredApp","parameters":[{"name":"id","in":"path","description":"The app ID to delete","required":true,"schema":{"type":"string"},"example":"app_abc123xyz"}],"responses":{"200":{"description":"App deleted","content":{"application/json":{"example":{"message":"Deleted successfully","id":"app_abc123xyz"}}}},"404":{"description":"App not found","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Delete failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/generated-apps/{id}/download":{"get":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Download Generated App","description":"Download the zip file for a generated application package.","operationId":"downloadStoredApp","parameters":[{"name":"id","in":"path","description":"The app ID","required":true,"schema":{"type":"string"},"example":"app_abc123xyz"}],"responses":{"200":{"description":"File download with Content-Disposition header","content":{"application/octet-stream":{"schema":{"type":"object"}}}},"404":{"description":"App not found","content":{"application/octet-stream":{"schema":{"type":"object"}}}}}}},"/modeling/domains":{"get":{"tags":["Modeling: Domain Catalog"],"summary":"List Catalog Domains","description":"List all domains in the bundled domain catalog with wizard metadata, prompt seeds, and asset availability flags.","operationId":"listDomains","responses":{"200":{"description":"Domains retrieved","content":{"application/json":{"example":{"domains":[{"id":"crm","acronym":"CRM","name":"Customer Relationship Management","icon":"Users","chips":["Contact","Account","Opportunity"],"entities":["Contact","Account","Opportunity"],"hasDescription":true,"hasOntology":true,"hasShapes":true}]}}}}}}},"/modeling/domains/{domainId}":{"get":{"tags":["Modeling: Domain Catalog"],"summary":"Get Catalog Domain","description":"Get one domain's manifest metadata plus its domain-language description markdown.","operationId":"getDomain","parameters":[{"name":"domainId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Domain retrieved","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Unknown domain id","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/domains/{domainId}/validate":{"get":{"tags":["Modeling: Domain Catalog"],"summary":"Validate Catalog Domain Ontology","description":"Full RDF 1.2 / OWL / SKOS / SHACL validation report for a bundled catalog domain. Optional industryId merges the industry overlay. No authentication required.","operationId":"validateDomain","parameters":[{"name":"domainId","in":"path","required":true,"schema":{"type":"string"}},{"name":"industryId","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeRecommendations","in":"query","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/domains/{domainId}/ontology":{"get":{"tags":["Modeling: Domain Catalog"],"summary":"Get Domain Seed Ontology (Turtle)","description":"Returns the domain's bundled ontology.ttl content.","operationId":"getDomainOntology","parameters":[{"name":"domainId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/domains/industries":{"get":{"tags":["Modeling: Domain Catalog"],"summary":"List Catalog Industries","description":"List the registered industries available for optional industry-specific overlays.","operationId":"listIndustries","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/doc-gen/jobs/{jobId}":{"get":{"tags":["Modeling: Document Generation"],"summary":"Get Job Status","description":"Get the current status and details of a document generation job.","operationId":"getJob_2","parameters":[{"name":"jobId","in":"path","description":"The job ID to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job retrieved successfully","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/doc-gen/jobs/{jobId}/stream":{"get":{"tags":["Modeling: Document Generation"],"summary":"Stream Job Updates (SSE)","description":"Subscribe to real-time job updates via Server-Sent Events.","operationId":"streamJob_1","parameters":[{"name":"jobId","in":"path","description":"The job ID to stream","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"SSE stream established","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}},"404":{"description":"Job not found","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/modeling/diagrams/{id}":{"get":{"tags":["Modeling: Management"],"summary":"Get Diagram by ID","description":"Get a specific diagram by ID. Returns 404 if diagram doesn't exist or user doesn't have access.","operationId":"getDiagramById","parameters":[{"name":"id","in":"path","description":"Diagram ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Diagram found","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Diagram not found or no access","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Modeling: Management"],"summary":"Delete Diagram","description":"Delete a diagram by ID. Only users with access to the parent project can delete diagrams.","operationId":"deleteDiagram","parameters":[{"name":"id","in":"path","description":"Diagram ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Diagram deleted","content":{"application/json":{"example":{"success":true,"message":"Diagram deleted successfully"}}}},"404":{"description":"Diagram not found or not authorized to delete","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/diagrams/project/{projectId}":{"get":{"tags":["Modeling: Management"],"summary":"List Diagrams for Project","description":"List all diagrams in a project. Returns empty array if project not found or no access.","operationId":"listDiagramsForProject","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of diagrams","content":{"application/json":{"example":[{"id":"diag_123","name":"Class Diagram","type":"class","projectId":"proj_abc123","elements":[],"connections":[],"createdAt":"2025-01-20T10:00:00Z","updatedAt":"2025-01-25T14:30:00Z"}]}}}}},"delete":{"tags":["Modeling: Management"],"summary":"Delete All Diagrams for Project","description":"Delete all diagrams in a project. Only users with access to the project can delete its diagrams.","operationId":"deleteDiagramsForProject","parameters":[{"name":"projectId","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Diagrams deleted","content":{"application/json":{"example":{"success":true,"message":"Deleted 5 diagram(s)","deletedCount":5}}}},"404":{"description":"Project not found or not authorized","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/diagrams/counts":{"get":{"tags":["Modeling: Management"],"summary":"Get Diagram Counts by Project","description":"Get the count of diagrams for each accessible project. Returns an array of {projectId, count} objects.","operationId":"getDiagramCounts","responses":{"200":{"description":"Diagram counts","content":{"application/json":{"example":[{"projectId":"proj_abc123","count":5},{"projectId":"proj_def456","count":3}]}}}}}},"/modeling/diagrams/by-name":{"get":{"tags":["Modeling: Management"],"summary":"Find Diagram by Name","description":"Find a diagram by name within a project. Returns 200 OK with exists: true/false to avoid console 404 errors for normal 'check if exists' operations.","operationId":"getDiagramByName","parameters":[{"name":"projectId","in":"query","description":"Project ID","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","description":"Diagram name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Response with exists flag and diagram data if found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/cloud-target/jobs/{jobId}":{"get":{"tags":["Modeling: Cloud Target Generation"],"summary":"Get Job Status","description":"Get the current status of a cloud target generation job.","operationId":"getJobStatus_2","parameters":[{"name":"jobId","in":"path","description":"The job ID","required":true,"schema":{"type":"string"},"example":"cloudtarget_abc123xyz"}],"responses":{"200":{"description":"Job status retrieved","content":{"application/json":{"example":{"jobId":"cloudtarget_abc123xyz","status":"running","progressPct":60,"phase":"generating","provider":"gcp"}}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/cloud-target/jobs/{jobId}/result":{"get":{"tags":["Modeling: Cloud Target Generation"],"summary":"Get Job Result","description":"Get the generated cloud configuration files for a completed job.","operationId":"getJobResult_2","parameters":[{"name":"jobId","in":"path","description":"The job ID","required":true,"schema":{"type":"string"},"example":"cloudtarget_abc123xyz"}],"responses":{"200":{"description":"Result retrieved","content":{"application/json":{"example":{"files":[{"path":"terraform/main.tf","content":"..."},{"path":"kubernetes/deployment.yaml","content":"..."},{"path":"cloudbuild.yaml","content":"..."}],"provider":"gcp","fileCount":8}}}},"400":{"description":"Job not completed","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/cloud-target/jobs/{jobId}/events":{"get":{"tags":["Modeling: Cloud Target Generation"],"summary":"Stream Job Events (SSE)","description":"Subscribe to real-time job updates via Server-Sent Events.","operationId":"subscribeToJobEvents_1","parameters":[{"name":"jobId","in":"path","description":"The job ID to stream","required":true,"schema":{"type":"string"},"example":"cloudtarget_abc123xyz"}],"responses":{"200":{"description":"SSE stream established","content":{"text/event-stream":{"example":"event: status\ndata: {\"jobId\":\"cloudtarget_abc123xyz\",\"status\":\"running\",\"progressPct\":50}\n"}}},"404":{"description":"Job not found","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/cloud-target/jobs/active":{"get":{"tags":["Modeling: Cloud Target Generation"],"summary":"Get Active Job","description":"Check if the current user has an active cloud target generation job. Useful for UI reconnection.","operationId":"getActiveJob_3","responses":{"200":{"description":"Active job status","content":{"application/json":{"examples":{"No Active Job":{"description":"No Active Job","value":{"hasActiveJob":false}},"Has Active Job":{"description":"Has Active Job","value":{"hasActiveJob":true,"jobId":"cloudtarget_abc123xyz","projectId":"proj_abc123","provider":"gcp","status":"running","progressPct":45,"phase":"generating"}}}}}}}}},"/modeling/byodata/mongodb/databases":{"get":{"tags":["Modeling: Bring Your Own Data"],"operationId":"listMongoDatabases","parameters":[{"name":"secretRef","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/byodata/mongodb/databases/{database}/collections":{"get":{"tags":["Modeling: Bring Your Own Data"],"operationId":"listMongoCollections","parameters":[{"name":"secretRef","in":"query","required":true,"schema":{"type":"string"}},{"name":"database","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen/website-styles":{"get":{"tags":["Modeling: Application Generation"],"summary":"List Website Style Presets","description":"Get the catalog of visual style presets available for the generated public marketing website.","operationId":"getWebsiteStyles","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen/strategies":{"get":{"tags":["Modeling: Application Generation"],"summary":"List Generation Strategies","description":"Get a list of all available generation strategies and their capabilities.","operationId":"getStrategies","responses":{"200":{"description":"Strategies retrieved successfully","content":{"application/json":{"example":{"strategies":[{"id":"fully-generative","name":"Fully Generative","description":"AI-powered full application generation","techStacks":["nodejs-typescript","react-typescript","python-fastapi"]},{"id":"template-based","name":"Template Based","description":"Generate from predefined templates","techStacks":["nodejs-typescript"]}],"defaultStrategy":"fully-generative"}}}},"500":{"description":"Server error","content":{"application/json":{"example":{"error":"error","message":"Failed to retrieve strategies"}}}}}}},"/modeling/app-gen/strategies/{techStack}":{"get":{"tags":["Modeling: Application Generation"],"summary":"Get Strategies for Tech Stack","description":"Get generation strategies that support a specific technology stack.","operationId":"getStrategiesForTechStack","parameters":[{"name":"techStack","in":"path","description":"Technology stack identifier","required":true,"schema":{"type":"string"},"example":"nodejs-typescript"}],"responses":{"200":{"description":"Strategies retrieved successfully","content":{"application/json":{"example":{"techStack":"nodejs-typescript","strategies":[{"id":"fully-generative","name":"Fully Generative","description":"AI-powered full application generation"}]}}}},"500":{"description":"Server error","content":{"application/json":{"example":{"error":"error","message":"Failed to retrieve strategies"}}}}}}},"/modeling/app-gen/preview/{projectId}":{"get":{"tags":["Modeling: Application Generation"],"summary":"Preview Generation","description":"Preview what files would be generated for a project without actually performing the generation. Useful for understanding the scope of generation before committing.","operationId":"preview","parameters":[{"name":"projectId","in":"path","description":"The project ID to preview generation for","required":true,"schema":{"type":"string"},"example":"proj_abc123xyz"},{"name":"strategyType","in":"query","description":"Generation strategy type (defaults to fully-generative)","required":false,"schema":{"type":"string"},"example":"fully-generative"},{"name":"techStack","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preview generated successfully","content":{"application/json":{"example":{"projectId":"proj_abc123xyz","strategy":"fully-generative","estimatedFiles":45,"fileList":["src/index.ts","src/models/User.ts","src/controllers/UserController.ts","src/routes/userRoutes.ts"],"techStack":"nodejs-typescript"}}}},"400":{"description":"Preview failed","content":{"application/json":{"example":{"error":"preview_error","message":"Project has no diagrams to generate from"}}}},"500":{"description":"Server error","content":{"application/json":{"example":{"error":"preview_error","message":"Failed to preview generation"}}}}}}},"/modeling/app-gen/download/{downloadId}":{"get":{"tags":["Modeling: Application Generation"],"summary":"Download Generated App as ZIP","description":"Download a previously generated application as a ZIP file. The downloadId is included in the SSE complete event from the generate endpoint. Results are cached for 30 minutes after generation.","operationId":"downloadZip","parameters":[{"name":"downloadId","in":"path","description":"The download ID from the SSE complete event","required":true,"schema":{"type":"string"},"example":"dl_abc123xyz"}],"responses":{"200":{"description":"ZIP file download","content":{"application/octet-stream":{}}},"404":{"description":"Download not found or expired","content":{"application/octet-stream":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen-jobs/{jobId}":{"get":{"tags":["Modeling: App Generation Jobs"],"summary":"Get Job Status","description":"Get the current status and details of a generation job.","operationId":"getJob_3","parameters":[{"name":"jobId","in":"path","description":"The job ID to retrieve","required":true,"schema":{"type":"string"},"example":"appgen_abc123xyz"}],"responses":{"200":{"description":"Job retrieved successfully","content":{"application/json":{"example":{"jobId":"appgen_abc123xyz","status":"running","progressPct":45,"phase":"generating","message":"Generating backend services...","projectId":"proj_abc123xyz","projectName":"My E-Commerce App","createdAtMs":1706012345678,"startedAtMs":1706012346000}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen-jobs/{jobId}/stream":{"get":{"tags":["Modeling: App Generation Jobs"],"summary":"Stream Job Updates (SSE)","description":"Subscribe to real-time job updates via Server-Sent Events. Receives status updates as the job progresses through phases.","operationId":"streamJob_2","parameters":[{"name":"jobId","in":"path","description":"The job ID to stream","required":true,"schema":{"type":"string"},"example":"appgen_abc123xyz"}],"responses":{"200":{"description":"SSE stream established","content":{"text/event-stream":{"example":"event: status\ndata: {\"jobId\":\"appgen_abc123xyz\",\"status\":\"running\",\"progressPct\":25}\n\nevent: progress\ndata: {\"phase\":\"generating\",\"message\":\"Generating models...\",\"progressPct\":50}\n\nevent: complete\ndata: {\"jobId\":\"appgen_abc123xyz\",\"status\":\"succeeded\",\"resultId\":\"result_xyz\"}\n"}}},"404":{"description":"Job not found","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/modeling/app-gen-jobs/{jobId}/result":{"get":{"tags":["Modeling: App Generation Jobs"],"summary":"Get Job Result","description":"Get the full generation result for a completed job. Only available for jobs with status 'succeeded'.","operationId":"getResult_2","parameters":[{"name":"jobId","in":"path","description":"The job ID to get results for","required":true,"schema":{"type":"string"},"example":"appgen_abc123xyz"}],"responses":{"200":{"description":"Result retrieved successfully","content":{"application/json":{"example":{"success":true,"projectId":"proj_abc123xyz","fileCount":45,"files":[{"path":"src/index.ts","content":"..."},{"path":"src/models/User.ts","content":"..."}],"generatedAt":"2026-01-23T10:30:00Z"}}}},"400":{"description":"Job has no result (still running or failed)","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Job or result not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/modeling/app-gen-jobs/recent":{"get":{"tags":["Modeling: App Generation Jobs"],"summary":"Get Recent Jobs","description":"Get the most recent generation jobs for the authenticated user.","operationId":"getRecentJobs_1","parameters":[{"name":"limit","in":"query","description":"Maximum number of jobs to return","required":false,"schema":{"type":"integer","format":"int32","default":10},"example":10}],"responses":{"200":{"description":"Jobs retrieved successfully","content":{"application/json":{"example":{"jobs":[{"jobId":"appgen_abc123xyz","projectId":"proj_abc123","projectName":"My App","status":"succeeded","createdAtMs":1706012345678}]}}}}}}},"/modeling/app-gen-jobs/active/{projectId}":{"get":{"tags":["Modeling: App Generation Jobs"],"summary":"Get Active Job for Project","description":"Check if a project has an active (running) generation job.","operationId":"getActiveJob_4","parameters":[{"name":"projectId","in":"path","description":"The project ID to check","required":true,"schema":{"type":"string"},"example":"proj_abc123xyz"}],"responses":{"200":{"description":"Status retrieved successfully","content":{"application/json":{"examples":{"No Active Job":{"description":"No Active Job","value":{"hasActiveJob":false}},"Has Active Job":{"description":"Has Active Job","value":{"hasActiveJob":true,"job":{"jobId":"appgen_abc123xyz","status":"running","progressPct":45}}}}}}}}}},"/modeling/app-deploy-iac/jobs/{jobId}":{"get":{"tags":["Modeling: App Deploy IaC"],"operationId":"getJobStatus_3","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/app-deploy-iac/jobs/{jobId}/events":{"get":{"tags":["Modeling: App Deploy IaC"],"operationId":"subscribeToJobEvents_2","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modelGrids":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve model grids","description":"Fetches a list of all available model grids used for predictions.","operationId":"getGrids","parameters":[{"name":"model","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the list of model grids.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Error while retrieving model grids.","content":{"application/json":{}}}}}},"/mcp/modeling/info":{"get":{"tags":["MCP: Modeling Server"],"summary":"Get Server Info","description":"Get MCP server information including name, version, and capabilities.","operationId":"getServerInfo","responses":{"200":{"description":"Server info retrieved","content":{"application/json":{"example":{"name":"ecosystem-modeling","version":"1.0.0","description":"EcosystemCode Modeling MCP Server","protocolVersion":"2026-07-28","capabilities":{"tools":true}}}}}}}},"/mcp/modeling/health":{"get":{"tags":["MCP: Modeling Server"],"operationId":"health","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/data/info":{"get":{"tags":["MCP: Data Server"],"summary":"Get Server Info","description":"Get MCP server information including name, version, and capabilities.","operationId":"getServerInfo_1","responses":{"200":{"description":"Server info retrieved","content":{"application/json":{"example":{"name":"ecosystem-data","version":"1.0.0","description":"EcosystemCode Data MCP Server","protocolVersion":"2024-11-05","capabilities":{"tools":true}}}}}}}},"/mcp/data/health":{"get":{"tags":["MCP: Data Server"],"operationId":"health_1","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/algorithms/info":{"get":{"tags":["MCP: Algorithms Server"],"summary":"Get Server Info","description":"Get MCP server information including name, version, and capabilities.","operationId":"getServerInfo_2","responses":{"200":{"description":"Server info retrieved","content":{"application/json":{"example":{"name":"ecosystem-algorithms","version":"1.0.0","description":"EcosystemCode Algorithms MCP Server","protocolVersion":"2024-11-05","capabilities":{"tools":true}}}}}}}},"/mcp/algorithms/health":{"get":{"tags":["MCP: Algorithms Server"],"operationId":"health_2","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/ai/info":{"get":{"tags":["MCP: AI Server"],"summary":"Get Server Info","description":"Get MCP server information including name, version, and capabilities.","operationId":"getServerInfo_3","responses":{"200":{"description":"Server info retrieved","content":{"application/json":{"example":{"name":"ecosystem-ai","version":"1.0.0","description":"EcosystemCode AI/ML MCP Server","protocolVersion":"2024-11-05","capabilities":{"tools":true}}}}}}}},"/mcp/ai/health":{"get":{"tags":["MCP: AI Server"],"operationId":"health_3","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mccEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Merchant Category Code (MCC) Enrichment","description":"Enriches a MongoDB collection by processing attributes related to Merchant Category Code (MCC). Optionally filters data based on the `find` query parameter.","operationId":"mccEnrich","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database containing the collection.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where MCC enrichment is applied.","required":true,"schema":{"type":"string"},"example":"transactionsCollection"},{"name":"attribute","in":"query","description":"The attribute to enrich with MCC data.","required":true,"schema":{"type":"string"},"example":"transactionCode"},{"name":"find","in":"query","description":"A JSON query to filter documents for enrichment.","required":true,"schema":{"type":"string"},"example":{"status":"approved"}}],"responses":{"200":{"description":"MCC enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during MCC enrichment.","content":{"application/json":{}}}}}},"/manageTenant":{"get":{"tags":["Worker: AWS"],"summary":"Manage Tenant Operations","description":"Performs various tenant management operations based on the provided `action` parameter. Supported actions include: `scripts_update`, `data_update`, `stop`, `start`, and `type_change`. Note: The `scripts_update` action overwrites all options.","operationId":"manageTenant","parameters":[{"name":"action","in":"query","description":"The action to be performed on the tenant. Supported actions are: `scripts_update`, `data_update`, `stop`, `start`, and `type_change`.","required":true,"schema":{"type":"string"},"example":"scripts_update"}],"responses":{"200":{"description":"The requested tenant action was successfully completed.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid action or input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/locationEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Enrich Location Data in MongoDB","description":"Enriches location-related attributes in a MongoDB collection by analyzing or updating the specified attribute values.","operationId":"locationEnrich","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where location enrichment will be applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute in the collection to enrich with location data.","required":true,"schema":{"type":"string"},"example":"locationCoordinates"}],"responses":{"200":{"description":"Location enrichment process completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the location enrichment process.","content":{"application/json":{}}}}}},"/listUserInstances":{"get":{"tags":["Worker: PaaS"],"summary":"List all user instances","description":"Returns a JSON array of all instances for user.","operationId":"listUserInstances","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"User instances retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Server error during user instances retrieval.","content":{"text/plain":{}}}}}},"/listUserInstanceLogs":{"get":{"tags":["Worker: PaaS"],"summary":"List all user instance logs","description":"Returns a JSON array of all available logs.","operationId":"listUserInstanceLogs","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}}],"responses":{"200":{"description":"User instance logs retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Server error during user instance logs.","content":{"text/plain":{}}}}}},"/listTenants":{"get":{"tags":["Worker: AWS"],"summary":"List All Tenants","description":"Retrieves a list of all tenants available in the system.","operationId":"listTenants","responses":{"200":{"description":"List of tenants retrieved successfully.","content":{"application/json":{"schema":{"type":"array","example":["tenant1","tenant2","tenant3"]}}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/listPulseResponderDynamic":{"get":{"tags":["ecosystem-scoring-params"],"summary":"Obtain client pulse responder dynamic parameters","description":"This service retrieves dynamic parameters for the client pulse responder.","operationId":"listPulseResponderDynamic","parameters":[{"name":"principal","in":"query","description":"Details about the client making the request, extracted from security context.","schema":{"type":"object","properties":{"name":{"type":"string"}}}}],"responses":{"200":{"description":"Process successfully completed.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request or malformed parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/listModules":{"get":{"tags":["Worker: PaaS"],"summary":"List all modules","description":"Returns a JSON array of all available modules.","operationId":"listModules","responses":{"200":{"description":"Modules retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Server error during modules retrieval.","content":{"text/plain":{}}}}}},"/listInstances":{"get":{"tags":["Worker: PaaS"],"summary":"List all instances","description":"Returns a JSON array of all available instances.","operationId":"listInstances","responses":{"200":{"description":"Instances retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Server error during instances retrieval.","content":{"text/plain":{}}}}}},"/importMongoDocuments":{"get":{"tags":["Data Management Engine"],"summary":"Import documents into a MongoDB collection","description":"This service imports documents from a file into the specified MongoDB database and collection. The file is specified by its name and type, and documents are imported accordingly.","operationId":"importMongoDocuments","parameters":[{"name":"file_name","in":"query","description":"The name of the file containing the documents to import.","required":true,"schema":{"type":"string"},"example":"data.json"},{"name":"file_type","in":"query","description":"The type of the file, such as 'json' or 'csv'.","required":true,"schema":{"type":"string"},"example":"json"},{"name":"database","in":"query","description":"The name of the MongoDB database where the documents will be imported.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The name of the MongoDB collection where the documents will be imported.","required":true,"schema":{"type":"string"},"example":"mycollection"}],"responses":{"200":{"description":"Successfully imported the documents into the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or file type.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/importModule":{"get":{"tags":["Prediction Engine"],"operationId":"importProject","parameters":[{"name":"module_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserPredictions":{"get":{"tags":["Prediction Engine"],"operationId":"getUserPredictions","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserModels":{"get":{"tags":["Prediction Engine"],"operationId":"getUserModels","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserModel":{"get":{"tags":["Prediction Engine"],"operationId":"getUserModel","parameters":[{"name":"model_identity","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserFrames":{"get":{"tags":["Prediction Engine"],"operationId":"getUserFrames","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserFrame":{"get":{"tags":["Prediction Engine"],"operationId":"getUserFrame","parameters":[{"name":"frame_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserFiles":{"get":{"tags":["Prediction Engine"],"operationId":"getUserFiles","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserFeatureStores":{"get":{"tags":["Prediction Engine"],"operationId":"getUserFeatureStores","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserDeployments":{"get":{"tags":["Prediction Engine"],"operationId":"getUserDeployments","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getUserDeployment":{"get":{"tags":["Prediction Engine"],"operationId":"getUserDeployment","parameters":[{"name":"deployments_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getTransactionsProcessed":{"get":{"tags":["Transaction Categorization"],"summary":"Get processed transactions","description":"Fetches a specified number of processed transactions from the database.","operationId":"getTransactionsProcessed","parameters":[{"name":"count","in":"query","description":"The number of processed transactions to retrieve.","required":true,"schema":{"type":"integer","format":"int32"},"example":10}],"responses":{"200":{"description":"Successfully retrieved processed transactions.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid count parameter provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during data retrieval.","content":{"application/json":{}}}}}},"/getTimeline":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Retrieve user timeline","description":"Fetches the timeline for a specific user, limited to the specified number of entries.","operationId":"getTimeline","parameters":[{"name":"user","in":"query","description":"The user ID for whom the timeline is to be fetched.","required":true,"schema":{"type":"string"},"example":"user123"},{"name":"limit","in":"query","description":"The maximum number of timeline entries to retrieve.","required":true,"schema":{"type":"integer","format":"int32"},"example":10}],"responses":{"200":{"description":"Successfully retrieved the user timeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid user ID or limit parameter.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while retrieving the timeline.","content":{"application/json":{}}}}}},"/getStatus":{"get":{"tags":["Worker: AWS"],"summary":"Get Tenant Status","description":"Retrieves the status for the specified tenant.","operationId":"getStatus_2","parameters":[{"name":"tenant","in":"query","description":"The ID of the tenant whose status needs to be retrieved.","required":true,"schema":{"type":"string"},"example":"exampleTenantId"}],"responses":{"200":{"description":"Status retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. The tenant parameter is missing or malformed.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/getSentiment":{"get":{"tags":["Google Worker API"],"summary":"Analyze Sentiment","description":"Analyzes the sentiment of the provided input string using Google APIs and returns the sentiment score.","operationId":"getSentiment","parameters":[{"name":"string","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getSecurity":{"get":{"tags":["Google Worker API"],"summary":"Get Google Security Attributes","description":"Retrieves security attributes and metadata for the specified path. Uses GoogleAuth service to validate or analyze security settings.","operationId":"getSecurity","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getPulseResponderProfile":{"get":{"tags":["ecosystem-scoring-params"],"summary":"Obtain client pulse responder profile data","description":"Retrieve the client pulse responder profile from the specified database and collection. If the `database` parameter is not provided, it defaults to `behavior`. The valid collection name is required.","operationId":"getPulseResponderProfile","parameters":[{"name":"database","in":"query","description":"The name of the database to retrieve the profile data from. Defaults to `behavior` if not provided.","required":false,"schema":{"type":"string"},"example":"client_database"},{"name":"collection","in":"query","description":"The name of the collection within the specified database. This parameter is required.","required":true,"schema":{"type":"string"},"example":"wellnessInterventionThompson"}],"responses":{"200":{"description":"The profile data was successfully retrieved.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Missing or invalid request parameters (e.g., collection name not provided).","content":{"application/json":{}}},"500":{"description":"Internal server error occurred when retrieving the profile data.","content":{"application/json":{}}}}}},"/getPulseResponderOptions":{"get":{"tags":["ecosystem-scoring-params"],"summary":"Obtain client pulse options items","description":"Retrieve an independent dataset updated and tracked in real-time by the client pulse responder. The `params` query parameter should be a JSON object containing the necessary information for the request.","operationId":"getPulseResponderOptions","parameters":[{"name":"params","in":"query","description":"A JSON string containing the parameters for the request. It must include keys like `database`, `collection`, `find`, `skip`, and `limit`. Example: `{\"database\": \"exampleDB\", \"collection\": \"exampleCollection\", \"find\": \"{}\", \"skip\": 0, \"limit\": 10}`","required":true,"schema":{"type":"string"},"example":{"database":"exampleDB","collection":"exampleCollection","find":"{}","skip":0,"limit":10}}],"responses":{"200":{"description":"The dataset was successfully retrieved.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. Missing or malformed JSON in the `params` query string.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while retrieving the dataset.","content":{"application/json":{}}}}}},"/getPulseResponderMessages":{"get":{"tags":["ecosystem-scoring-params"],"summary":"Obtain client pulse responder parameters","description":"Retrieve messages from the specified database and collection. The `database` parameter defaults to 'behavior' if not provided.","operationId":"getPulseResponderMessages","parameters":[{"name":"database","in":"query","description":"The database to retrieve messages from. Defaults to 'behavior' if not provided.","required":false,"schema":{"type":"string"},"example":"behavior"},{"name":"collection","in":"query","description":"The collection within the database to retrieve messages from.","required":true,"schema":{"type":"string"},"example":"wellnessInterventionThompson"}],"responses":{"200":{"description":"Process successfully completed, and messages retrieved.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. For example, if the collection name is not specified.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/getProperty":{"get":{"tags":["Server Properties"],"summary":"Read a property by key","description":"Retrieve the value of a specific property using its key.","operationId":"getProperty","parameters":[{"name":"key","in":"query","description":"The key of the property to retrieve","required":true,"schema":{"type":"string","default":""},"example":"propertyKey"}],"responses":{"200":{"description":"Successfully retrieved the property value","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Property key not found","content":{"application/json":{}}}}}},"/getProperties":{"get":{"tags":["Server Properties"],"summary":"Get properties file","description":"Retrieve the content of the server properties file","operationId":"getProperties","parameters":[{"name":"propertyKey","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved properties","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Properties not found","content":{"application/json":{}}}}}},"/getPrestoSQL":{"get":{"tags":["Data Management Engine: Presto"],"summary":"Execute Presto SQL query","description":"Executes a Presto SQL query on the specified connection and returns the result.","operationId":"getPrestoSQL","parameters":[{"name":"sql","in":"query","description":"The SQL query to execute.","required":false,"schema":{"type":"string"},"example":"select * from cassandra.system_schema.columns"},{"name":"connection","in":"query","description":"The connection string for the Presto database.","required":false,"schema":{"type":"string"},"example":"cassandra/system_schema?user=cassandra"}],"responses":{"200":{"description":"Successfully executed the SQL query and returned the result.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid SQL query or connection string.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the query.","content":{"application/json":{}}}}}},"/getPrediction":{"get":{"tags":["Prediction Engine"],"operationId":"getUserPrediction","parameters":[{"name":"predict_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getPredictionProjects":{"get":{"tags":["Prediction Engine"],"operationId":"getUserPredictionProjects","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getPredictionProjectsBase":{"get":{"tags":["Prediction Engine"],"operationId":"getPredictionProjectsBase","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getPredictionProject":{"get":{"tags":["Prediction Engine"],"operationId":"getUserPredictionProject","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getMongoDocumentLabels":{"get":{"tags":["Data Management Engine"],"summary":"Get labels of documents from a MongoDB collection","description":"This service retrieves the labels (field names) of documents from the specified MongoDB database and collection.","operationId":"getMongoDocumentLabels","parameters":[{"name":"database","in":"query","description":"The MongoDB database from which to retrieve document labels.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection from which to retrieve document labels.","required":true,"schema":{"type":"string"},"example":"mycollection"}],"responses":{"200":{"description":"Successfully retrieved the document labels from the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/getMongoDBList":{"get":{"tags":["Data Management Engine"],"summary":"Get MongoDB database list","description":"Retrieves a list of all databases available on the specified MongoDB server.","operationId":"getMongoDBList","parameters":[{"name":"server","in":"query","description":"The MongoDB server address from which to fetch the database list.","required":true,"schema":{"type":"string"},"example":"mongodb://localhost:27017"}],"responses":{"200":{"description":"Successfully retrieved the list of databases.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid server address or request parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while fetching the database list.","content":{"application/json":{}}}}}},"/getMongoDBFind":{"get":{"tags":["Data Management Engine"],"summary":"Find documents in a MongoDB collection","description":"Retrieves documents from the specified MongoDB collection based on the provided query parameters, projections, and pagination settings.","operationId":"getMongoDBFind","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the MongoDB collection.","required":true,"schema":{"type":"string"},"example":"my_collection"},{"name":"field","in":"query","description":"The query filter as a JSON string. Use URL-encoded values if needed.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"projections","in":"query","description":"The fields to include or exclude in the result as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1,"status":1}},{"name":"skip","in":"query","description":"The number of documents to skip.","required":true,"schema":{"type":"integer"},"example":0},{"name":"limit","in":"query","description":"The maximum number of documents to retrieve.","required":true,"schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Successfully retrieved documents from the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or query filters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while fetching documents.","content":{"application/json":{}}}}}},"/getMongoDBFindSort":{"get":{"tags":["Data Management Engine"],"summary":"Find and sort documents in a MongoDB collection","description":"Retrieves documents from the specified MongoDB collection using the provided query filters, projections, sorting, and pagination settings. If the field parameter is a JSON array (indicating a pipeline), it performs an aggregation pipeline query.","operationId":"getMongoDBFindSort","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the MongoDB collection.","required":true,"schema":{"type":"string"},"example":"my_collection"},{"name":"field","in":"query","description":"The query filter as a JSON string or pipeline array.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"projections","in":"query","description":"The fields to include or exclude in the result as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1,"status":1}},{"name":"sort","in":"query","description":"The sorting criteria as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1}},{"name":"skip","in":"query","description":"The number of documents to skip.","required":true,"schema":{"type":"integer"},"example":0},{"name":"limit","in":"query","description":"The maximum number of documents to retrieve.","required":true,"schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Successfully retrieved documents or executed the aggregation pipeline.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters, query filters, or pipeline structure.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/getMongoDBFindLabels":{"get":{"tags":["Data Management Engine"],"summary":"Find and label documents in a MongoDB collection","description":"Retrieves documents from the specified MongoDB collection based on query filters and projections, with the option to skip a specified number of documents.","operationId":"getMongoDBFindLabels","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the MongoDB collection.","required":true,"schema":{"type":"string"},"example":"my_collection"},{"name":"field","in":"query","description":"The query filter as a JSON string.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"projections","in":"query","description":"The fields to include or exclude in the result as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1,"status":1}},{"name":"skip","in":"query","description":"The number of documents to skip.","required":true,"schema":{"type":"integer"},"example":0}],"responses":{"200":{"description":"Successfully retrieved and labeled documents from the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or query filters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/getMongoDBCollections":{"get":{"tags":["Data Management Engine"],"summary":"Get MongoDB collections","description":"Retrieves a list of all collections in the specified MongoDB database.","operationId":"getMongoDBCollections","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database from which to fetch the collection list.","required":true,"schema":{"type":"string"},"example":"my_database"}],"responses":{"200":{"description":"Successfully retrieved the list of collections in the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database name or request parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while fetching the collection list.","content":{"application/json":{}}}}}},"/getMongoDBCollectionStats":{"get":{"tags":["Data Management Engine"],"summary":"Get MongoDB collection statistics","description":"Retrieves statistics for a specific collection in the specified MongoDB database.","operationId":"getMongoDBCollectionStats","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the collection in the specified MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_collection"}],"responses":{"200":{"description":"Successfully retrieved the statistics for the specified collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database or collection name.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while fetching collection statistics.","content":{"application/json":{}}}}}},"/getMongoDBAggregate":{"get":{"tags":["Data Management Engine"],"summary":"Aggregate documents in a MongoDB collection","description":"Performs an aggregation query on the specified MongoDB collection using the provided filters, projections, aggregation pipeline, and sorting options.","operationId":"getMongoDBAggregate","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the MongoDB collection.","required":true,"schema":{"type":"string"},"example":"my_collection"},{"name":"field","in":"query","description":"The query filter as a JSON string. Use URL-encoded values if needed.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"projections","in":"query","description":"The fields to include or exclude in the result as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1,"status":1}},{"name":"aggregate","in":"query","description":"The aggregation pipeline stages as a JSON string.","required":true,"schema":{"type":"string"},"example":[{"$match":{"status":"active"}},{"$group":{"_id":"$category","total":{"$sum":1}}}]},{"name":"sort","in":"query","description":"The sorting criteria as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1}}],"responses":{"200":{"description":"Successfully performed aggregation on the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters, query filters, or aggregation pipeline.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the aggregation query.","content":{"application/json":{}}}}}},"/getMongoCollectionIndexes":{"get":{"tags":["Data Management Engine"],"summary":"Get indexes of a MongoDB collection","description":"This service retrieves the indexes of the specified MongoDB collection from the given database.","operationId":"getMongoCollectionIndexes","parameters":[{"name":"database","in":"query","description":"The MongoDB database from which to retrieve collection indexes.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection for which to retrieve indexes.","required":true,"schema":{"type":"string"},"example":"mycollection"}],"responses":{"200":{"description":"Successfully retrieved the indexes of the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/getModel":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve a model","description":"Fetches details of a specific model based on the provided model ID.","operationId":"getModel","parameters":[{"name":"modelId","in":"query","description":"The ID of the model to retrieve.","required":true,"example":"model_123"},{"name":"model_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the model details.","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Model not found.","content":{"application/json":{}}},"400":{"description":"Invalid model ID or error during retrieval.","content":{"application/json":{}}}}}},"/getModelStats":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve model statistics","description":"Fetches specific statistics for a model. The `stats_type` can be `h2o` or `ecosystem`, and the `source` can be one of the following: `cross_validation_metrics`, `cross_validation_metrics_summary`, `scoring_history`, `model_summary`, `variable_importances`, `training_metrics`, or `validation_metrics`.","operationId":"getModelStats","parameters":[{"name":"model_id","in":"query","description":"The ID of the model for which statistics are being requested.","required":true,"schema":{"type":"string"},"example":"model_123"},{"name":"stats_type","in":"query","description":"The type of statistics to retrieve. Allowed values: `h2o`, `ecosystem`.","required":true,"schema":{"type":"string"},"example":"h2o"},{"name":"source","in":"query","description":"The source of the statistics. Allowed values: `cross_validation_metrics`, `cross_validation_metrics_summary`, `scoring_history`, `model_summary`, `variable_importances`, `training_metrics`, `validation_metrics`.","required":true,"schema":{"type":"string"},"example":"model_summary"}],"responses":{"200":{"description":"Successfully retrieved the model statistics.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or error during processing.","content":{"application/json":{}}},"404":{"description":"Model or statistics source not found.","content":{"application/json":{}}}}}},"/getHiveToMongoDB":{"get":{"tags":["Data Management Engine: Hive"],"summary":"Hive database select and ingest into MongoDB. driver=apache (default) or driver=cloudera.","operationId":"getHiveToMongo","parameters":[{"name":"sql","in":"query","required":false,"schema":{"type":"string","default":"select release_version from system.local"}},{"name":"database","in":"query","required":false,"schema":{"type":"string","default":"master"}},{"name":"collection","in":"query","required":false,"schema":{"type":"string","default":"data"}},{"name":"connection_string","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"driver","in":"query","required":false,"schema":{"type":"string","default":"apache"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getFrame":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve a data frame","description":"Fetches details of a specific data frame based on the provided frame ID.","operationId":"getFrame","parameters":[{"name":"frameId","in":"query","description":"The ID of the data frame to retrieve.","required":true,"example":"frame_123"},{"name":"frame_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the data frame.","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Data frame not found.","content":{"application/json":{}}},"400":{"description":"Invalid frame ID or error during retrieval.","content":{"application/json":{}}}}}},"/getFrameColumns":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve frame columns","description":"Fetches the columns of a specific data frame based on the provided frame ID.","operationId":"getFrameColumns","parameters":[{"name":"frameId","in":"query","description":"The ID of the data frame to retrieve columns for.","required":true,"example":"frame_123"},{"name":"frame_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the frame columns.","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Frame not found.","content":{"application/json":{}}},"400":{"description":"Invalid frame ID or error during retrieval.","content":{"application/json":{}}}}}},"/getFrameColumnSummary":{"get":{"tags":["Worker: H2O"],"summary":"Get column details","description":"Fetches details and summary statistics for a specified column in a data frame.","operationId":"getFrameColumnSummary","parameters":[{"name":"frame","in":"query","description":"The name or ID of the data frame.","required":true,"schema":{"type":"string"},"example":"frame_123"},{"name":"column","in":"query","description":"The name of the column to retrieve details for.","required":true,"schema":{"type":"string"},"example":"column_name"}],"responses":{"200":{"description":"Successfully retrieved column details.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid frame or column name, or error during processing.","content":{"application/json":{}}},"404":{"description":"Data frame or column not found.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while retrieving column details.","content":{"application/json":{}}}}}},"/getFiles":{"get":{"tags":["Data Management Engine: Files"],"summary":"List models in the /data volume","description":"This listing service locks listing into the /data volume. To browse all models, specify /models in the path.","operationId":"getUserFiles_1","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"path","in":"query","required":false,"schema":{"type":"string","default":"./"}}],"responses":{"200":{"description":"Successfully retrieved the list of models","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/getFile":{"get":{"tags":["Data Management Engine: Files"],"summary":"Retrieve log file lines","description":"Obtain a specified number of lines from a log file.","operationId":"getFile","parameters":[{"name":"file","in":"query","description":"The name of the log file to retrieve lines from","required":true,"schema":{"type":"string","default":""},"example":"logfile.log"},{"name":"lines","in":"query","description":"The number of lines to retrieve from the log file","required":true,"schema":{"type":"integer","format":"int32","default":""},"example":10}],"responses":{"200":{"description":"Successfully retrieved log file lines","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"Log file not found","content":{"application/json":{}}}}}},"/getFileTail":{"get":{"tags":["Data Management Engine: Files"],"summary":"Obtain Log File","description":"Retrieve a specified number of lines from a log file.","operationId":"getFile_1","parameters":[{"name":"file","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"lines","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":""}},{"name":"path","in":"query","required":false,"schema":{"type":"string","default":"./"}}],"responses":{"200":{"description":"Successfully retrieved log file lines","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"Log file not found","content":{"application/json":{}}}}}},"/getContainerLogs":{"get":{"tags":["Utilities"],"summary":"Retrieve container logs","description":"Fetches the logs from a specified container type. You can specify the number of lines to retrieve.","operationId":"getContainerLogs","parameters":[{"name":"type","in":"query","description":"The type of container from which to fetch logs.","required":true,"schema":{"type":"string"},"example":"docker"},{"name":"lines","in":"query","description":"The number of log lines to retrieve.","required":true,"schema":{"type":"integer","format":"int32"},"example":100}],"responses":{"200":{"description":"Successfully retrieved container logs.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while fetching logs.","content":{"application/json":{}}}}}},"/getChatThreads":{"get":{"tags":["AI Services API"],"summary":"Get Chat Threads","description":"Retrieves the list of active chat threads for the server.","operationId":"getChatThreads","parameters":[{"name":"type","in":"query","description":"The type of threads to fetch","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Threads successfully retrieved","content":{"application/json":{"schema":{"type":"object","example":{"thread_1":{},"thread_2":{}}}}}},"400":{"description":"Invalid input parameter","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getCategories":{"get":{"tags":["Data Munging Engine"],"summary":"Retrieve Categories from a MongoDB Collection","description":"Fetches distinct categories from a specified MongoDB collection based on the provided category field and optional filtering criteria (`find`). The `total` parameter limits the maximum number of categories returned.","operationId":"getCategories","parameters":[{"name":"database","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the categorical data.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"categoryfield","in":"query","description":"The MongoDB field that represents the category to fetch.","required":true,"schema":{"type":"string"},"example":"categoryName"},{"name":"find","in":"query","description":"The JSON query to filter documents before fetching categories.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"total","in":"query","description":"The maximum number of categories to return.","required":true,"schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Categories retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during category retrieval.","content":{"application/json":{}}}}}},"/getCategoriesRatios":{"get":{"tags":["Data Munging Engine"],"summary":"Retrieve Categories and Their Ratios from a MongoDB Collection","description":"Fetches distinct categories from a MongoDB collection and provides their ratios based on the total number of matching documents. The ratios are calculated for the specified category field with an optional filter query (`find`).","operationId":"getCategoriesRatios","parameters":[{"name":"database","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the categorical data.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"categoryfield","in":"query","description":"The MongoDB field representing the categories for which ratios will be calculated.","required":true,"schema":{"type":"string"},"example":"categoryName"},{"name":"find","in":"query","description":"A JSON query to filter documents for category ratio calculation.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"total","in":"query","description":"The maximum number of categories to return along with their ratios.","required":true,"schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Categories and their ratios retrieved successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while retrieving category ratios.","content":{"application/json":{}}}}}},"/getCassandra":{"get":{"tags":["Data Management Engine: Cassandra"],"summary":"Cassandra database select.","operationId":"getCassandraX","parameters":[{"name":"sql","in":"query","required":false,"schema":{"type":"string","default":"select release_version from system.local"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","default":"c OR r"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getCassandraVersion":{"get":{"tags":["Data Management Engine: Cassandra"],"summary":"Cassandra database version test.","operationId":"getCassandraVersion","parameters":[{"name":"params","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getCassandraToMongoDB":{"get":{"tags":["Data Management Engine: Cassandra"],"summary":"Cassandra database select and ingest into MongoDB.","operationId":"getCassandraToMongo","parameters":[{"name":"sql","in":"query","required":false,"schema":{"type":"string","default":"select release_version from system.local"}},{"name":"database","in":"query","required":false,"schema":{"type":"string","default":"master"}},{"name":"collection","in":"query","required":false,"schema":{"type":"string","default":"data"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getCassandraSql":{"get":{"tags":["Data Management Engine: Cassandra"],"summary":"Cassandra database execute.","operationId":"sqlCassandra","parameters":[{"name":"sql","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getBuild":{"get":{"tags":["Ecosystem Generation Engine"],"summary":"Retrieve build information","description":"Fetches build details or logs associated with the specified UUID. If no UUID is provided, a default server message is returned.","operationId":"getBuild","parameters":[{"name":"uuid","in":"query","description":"The UUID of the build to retrieve information for. If not provided, a default message is returned.","required":false,"schema":{"type":"string","default":"default server hello"},"example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved the build information or default message.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid UUID or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during retrieval.","content":{"application/json":{}}}}}},"/getAutoMLmodel":{"get":{"tags":["Worker: H2O"],"summary":"Retrieve an AutoML model","description":"Fetches details of an AutoML model based on the provided model ID.","operationId":"getAutoMLmodel","parameters":[{"name":"modelId","in":"query","description":"The ID of the AutoML model to retrieve.","required":true,"example":"automl_123"},{"name":"model_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the AutoML model details.","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"AutoML model not found.","content":{"application/json":{}}},"400":{"description":"Invalid model ID or error during retrieval.","content":{"application/json":{}}}}}},"/getAnomaly":{"get":{"tags":["Worker: Microsoft"],"summary":"Detect anomalies in a string","description":"Processes the provided string and detects anomalies using Microsoft worker services.","operationId":"getAnomaly","parameters":[{"name":"string","in":"query","description":"The string to analyze for anomalies.","required":true,"schema":{"type":"string"},"example":"anomaly_input_string"}],"responses":{"200":{"description":"Successfully detected anomalies in the string.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input string or error during anomaly detection.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during processing.","content":{"application/json":{}}}}}},"/getAnalysisResults":{"get":{"tags":["Prediction Engine"],"operationId":"getAnalysisResults","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/getAnalysisResult":{"get":{"tags":["Prediction Engine"],"operationId":"getAnalysisResult","parameters":[{"name":"analysis_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/generateTimeSeriesFeatures":{"get":{"tags":["Data Munging Engine"],"summary":"Generate Time Series Features in MongoDB","description":"Generates a new time series feature set by aggregating data from a MongoDB collection over specified time windows, grouped by specified fields.","operationId":"generateTimeSeriesFeatures","parameters":[{"name":"database","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The source MongoDB collection from which data will be aggregated.","required":true,"schema":{"type":"string"},"example":"sourceCollection"},{"name":"featureset","in":"query","description":"The target collection where the aggregated time series features will be saved.","required":true,"schema":{"type":"string"},"example":"featureSetCollection"},{"name":"groupby","in":"query","description":"The field used for grouping data during aggregation.","required":true,"schema":{"type":"string"},"example":"userId"},{"name":"datefield","in":"query","description":"The date field used as the timestamp for the time series.","required":true,"schema":{"type":"string"},"example":"createdDate"},{"name":"numfield","in":"query","description":"The numeric field used for time series computation.","required":true,"schema":{"type":"string"},"example":"salesAmount"},{"name":"categoryfield","in":"query","description":"The categorical field used for analysis.","required":true,"schema":{"type":"string"},"example":"productCategory"},{"name":"categories","in":"query","description":"The maximum number of categories to keep (default 10).","required":false,"schema":{"type":"integer","default":10},"example":10},{"name":"windowsize","in":"query","description":"The time window size for the series (default 1).","required":false,"schema":{"type":"integer","default":1},"example":7},{"name":"startdate","in":"query","description":"The initial date for time series generation (default 'begin').","required":false,"schema":{"type":"string","default":"begin"},"example":"2023-01-01T00:00:00Z"},{"name":"find","in":"query","description":"The JSON query to filter documents in the source collection.","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"Time series feature set successfully generated and saved.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while generating the feature set.","content":{"application/json":{}}}}}},"/generateModelDetail":{"get":{"tags":["Worker: H2O"],"summary":"Generate individual model collections","description":"Generates individual model collections per analytical type.","operationId":"generateModelDetail","responses":{"200":{"description":"Successfully generated model collections.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input or processing error.","content":{"application/json":{}}}}}},"/generateForecast":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Generate forecast","description":"Generates a forecast based on data from the specified database and collection. The forecast uses the provided attribute, date attribute, and step parameters.","operationId":"generateForecast","parameters":[{"name":"database","in":"query","description":"The name of the database to query.","required":true,"schema":{"type":"string"},"example":"forecast_database"},{"name":"collection","in":"query","description":"The name of the input collection containing the data.","required":true,"schema":{"type":"string"},"example":"input_collection"},{"name":"collectionOut","in":"query","description":"The name of the output collection for storing forecast results.","required":true,"schema":{"type":"string"},"example":"output_collection"},{"name":"find","in":"query","description":"The query or criteria for filtering data.","required":true,"schema":{"type":"string"},"example":{"region":"North America"}},{"name":"attribute","in":"query","description":"The MongoDB attribute to use for the forecast.","required":true,"schema":{"type":"string"},"example":"sales"},{"name":"dateattribute","in":"query","description":"The date attribute used for time-based analysis.","required":true,"schema":{"type":"string"},"example":"sale_date"},{"name":"steps","in":"query","description":"The number of future steps to forecast.","required":true,"schema":{"type":"integer","format":"int32"},"example":10},{"name":"historicsteps","in":"query","description":"The number of historical steps to consider for the forecast.","required":true,"schema":{"type":"integer","format":"int32"},"example":30}],"responses":{"200":{"description":"Successfully generated the forecast.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during forecast generation.","content":{"application/json":{}}}}}},"/generateFeatures":{"get":{"tags":["Data Munging Engine"],"summary":"Generate Feature Set in MongoDB","description":"Generates a new feature set by aggregating data from a specified MongoDB collection. Allows grouping, filtering, and aggregating based on specified fields.","operationId":"generateFeatures","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The name of the source collection from which data will be aggregated.","required":true,"schema":{"type":"string"},"example":"sourceCollection"},{"name":"featureset","in":"query","description":"The name of the target collection where the aggregated features will be stored.","required":true,"schema":{"type":"string"},"example":"featureSetCollection"},{"name":"groupby","in":"query","description":"The field used for grouping data during the aggregation.","required":true,"schema":{"type":"string"},"example":"userId"},{"name":"datefield","in":"query","description":"The date field to include in the aggregation, if applicable.","required":true,"schema":{"type":"string"},"example":"createdDate"},{"name":"numfield","in":"query","description":"The numeric field to use for aggregation operations like sums or averages.","required":true,"schema":{"type":"string"},"example":"purchaseAmount"},{"name":"categoryfield","in":"query","description":"The categorical field to analyze during aggregation.","required":true,"schema":{"type":"string"},"example":"productCategory"},{"name":"find","in":"query","description":"The JSON query to filter documents in the source collection.","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"Feature set successfully generated and saved to the target collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while generating the feature set.","content":{"application/json":{}}}}}},"/generateFeaturesNormalize":{"get":{"tags":["Data Munging Engine"],"summary":"Normalize Numeric Features in a MongoDB Collection","description":"Normalizes the specified numeric fields to a given range and stores the results back to the collection (either in-place or as new fields).","operationId":"generateFeaturesNormalize","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The name of the MongoDB collection containing the data to be normalized.","required":true,"schema":{"type":"string"},"example":"sourceCollection"},{"name":"numfields","in":"query","description":"Comma-separated list of numeric fields to normalize.","required":true,"schema":{"type":"string"},"example":"field1,field2,field3"},{"name":"find","in":"query","description":"The JSON query to filter documents in the collection.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"normalizedHigh","in":"query","description":"The high-end value of the normalized range.","required":true,"schema":{"type":"number","format":"double"},"example":1.0},{"name":"normalizedLow","in":"query","description":"The low-end value of the normalized range.","required":true,"schema":{"type":"number","format":"double"},"example":0.0},{"name":"inPlace","in":"query","description":"Whether to overwrite the original fields with normalized values (`true`) or create new fields (`false`).","required":true,"schema":{"type":"boolean"},"example":true}],"responses":{"200":{"description":"Numeric fields normalized successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the normalization process.","content":{"application/json":{}}}}}},"/generateCoxPhData":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Generate COX PH dataset from transactions","description":"Generates a COX Proportional Hazards dataset based on transactions data, using the specified database, collections, and query criteria.","operationId":"generateCoxPhData","parameters":[{"name":"database","in":"query","description":"The name of the input database containing transaction data.","required":true,"schema":{"type":"string"},"example":"transaction_database"},{"name":"collection","in":"query","description":"The name of the input collection containing transaction data.","required":true,"schema":{"type":"string"},"example":"transaction_collection"},{"name":"databaseOut","in":"query","description":"The name of the output database for storing COX PH data.","required":true,"schema":{"type":"string"},"example":"coxph_database"},{"name":"collectionOut","in":"query","description":"The name of the output collection for storing COX PH data.","required":true,"schema":{"type":"string"},"example":"coxph_collection"},{"name":"customer_field","in":"query","description":"The field representing customer identifiers in the transaction data.","required":true,"schema":{"type":"string"},"example":"customer_id"},{"name":"date_field","in":"query","description":"The field representing transaction dates.","required":true,"schema":{"type":"string"},"example":"transaction_date"},{"name":"find","in":"query","description":"The query criteria to filter transaction data.","required":true,"schema":{"type":"string"},"example":{"region":"North America"}}],"responses":{"200":{"description":"Successfully generated the COX PH dataset.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during dataset generation.","content":{"application/json":{}}}}}},"/fragmentEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Fragment and Enrich a MongoDB Collection Attribute","description":"Processes and enriches the specified attribute of a MongoDB collection by splitting or processing its fragments. Optionally, limits enrichment to string-based fragments using the `stringOnly` parameter.","operationId":"fragmentEnrich","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database containing the collection.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the attribute to enrich.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The MongoDB attribute within the collection to process.","required":true,"schema":{"type":"string"},"example":"textContent"},{"name":"stringOnly","in":"query","description":"Specifies whether to only process string fragments (values: `true` or `false`).","required":true,"schema":{"type":"string"},"example":true}],"responses":{"200":{"description":"Enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during enrichment.","content":{"application/json":{}}}}}},"/fragmentEnrich2":{"get":{"tags":["Data Munging Engine"],"summary":"Fragment and Enrich MongoDB Attributes","description":"Processes and enriches the specified attribute in a MongoDB collection by splitting or processing its fragments. Allows filtering with the `find` query and enables string-only processing using the `stringOnly` parameter.","operationId":"fragmentEnrich2","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database containing the collection.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the attribute to enrich.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute to process for enrichment in the MongoDB collection.","required":true,"schema":{"type":"string"},"example":"textField"},{"name":"stringOnly","in":"query","description":"Specifies whether to process only string fragments. Accepted values: `true` or `false`.","required":true,"schema":{"type":"string"},"example":true},{"name":"find","in":"query","description":"The JSON query to filter documents for enrichment.","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"Fragment enrichment completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during fragment enrichment.","content":{"application/json":{}}}}}},"/foreignKeyLookup":{"get":{"tags":["Data Munging Engine"],"summary":"Perform Foreign Key Lookup and Add Fields to Collection","description":"Perform an N:1 foreign key lookup and return key fields, adding matched data to the source collection. This operation allows linking data between two MongoDB collections based on a foreign key relationship.","operationId":"foreignKeyLookup","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database name containing the source collection.","required":true,"schema":{"type":"string"},"example":"sourceDatabase"},{"name":"collection","in":"query","description":"The MongoDB source collection where the lookup will be performed.","required":true,"schema":{"type":"string"},"example":"sourceCollection"},{"name":"mongodbf","in":"query","description":"The MongoDB database name containing the foreign reference collection.","required":true,"schema":{"type":"string"},"example":"foreignDatabase"},{"name":"collectionf","in":"query","description":"The MongoDB foreign reference collection.","required":true,"schema":{"type":"string"},"example":"foreignCollection"},{"name":"attribute","in":"query","description":"The attribute in the source collection used for the foreign key reference.","required":true,"schema":{"type":"string"},"example":"userId"},{"name":"attributef","in":"query","description":"The attribute in the foreign reference collection used for matching the foreign key.","required":true,"schema":{"type":"string"},"example":"id"},{"name":"search","in":"query","description":"The search query in JSON format to filter the source collection.","required":false,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"fields","in":"query","description":"An array of key-value mappings (e.g., `attribute=attributeforeign`) specifying fields to retrieve from the foreign collection and add to the source collection.","required":true,"schema":{"type":"array","items":{"type":"string"}},"example":["email=email","phone=phoneNumber"]}],"responses":{"200":{"description":"Foreign key lookup performed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the foreign key lookup.","content":{"application/json":{}}}}}},"/foreignKeyAggregator":{"get":{"tags":["Data Munging Engine"],"summary":"Foreign Key Aggregator (1:N)","description":"Performs a 1:N foreign key lookup, aggregates the matching key fields from a foreign reference collection, and adds the aggregated data back to the source collection. Specify fields using the `local=foreign` mapping syntax.","operationId":"getForeignKeyAggregator","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database name containing the source collection.","required":true,"schema":{"type":"string"},"example":"sourceDatabase"},{"name":"collection","in":"query","description":"The MongoDB source collection where the aggregation will be performed.","required":true,"schema":{"type":"string"},"example":"sourceCollection"},{"name":"mongodbf","in":"query","description":"The MongoDB database name containing the foreign reference collection.","required":true,"schema":{"type":"string"},"example":"foreignDatabase"},{"name":"collectionf","in":"query","description":"The MongoDB foreign reference collection.","required":true,"schema":{"type":"string"},"example":"foreignCollection"},{"name":"attribute","in":"query","description":"The attribute in the source collection used to perform the foreign key lookup.","required":true,"schema":{"type":"string"},"example":"userId"},{"name":"attributef","in":"query","description":"The attribute in the foreign reference collection used for matching the foreign key.","required":true,"schema":{"type":"string"},"example":"id"},{"name":"search","in":"query","description":"The search query in JSON format to filter the source collection.","required":false,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"fields","in":"query","description":"An array specifying local-to-foreign field mapping (e.g., `email=email`). These fields will be aggregated and added to the source collection.","required":true,"schema":{"type":"array","items":{"type":"string"}},"example":["email=email","phone=phoneNumber"]}],"responses":{"200":{"description":"Foreign key aggregation performed successfully and data added to the collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while performing foreign key aggregation.","content":{"application/json":{}}}}}},"/fling":{"get":{"tags":["Ecosystem Home"],"summary":"Round-trip server response","description":"Returns a JSON response to verify that the server is active. The response includes predefined data in a table format.","operationId":"getFling","parameters":[{"name":"message","in":"query","description":"A message to include in the response (optional).","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"Successfully retrieved the round-trip response.","content":{"application/json":{"schema":{"type":"string","example":"{ \"columns\": [...], \"rows\": [...], \"type\": \"table\" }"}}}},"500":{"description":"Internal server error occurred during processing.","content":{"application/json":{}}}}}},"/flattenDocument":{"get":{"tags":["Data Munging Engine"],"summary":"Flatten Nested Attributes in a MongoDB Document","description":"Updates existing documents in the specified MongoDB collection by flattening a nested key (attribute) based on a find query.","operationId":"flattenDocument","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the documents to update.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The name of the key to flatten within the documents.","required":true,"schema":{"type":"string"},"example":"nestedKey"},{"name":"find","in":"query","description":"The criteria to find the MongoDB documents for the update (in query format).","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"Flattening operation completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the flattening operation.","content":{"application/json":{}}}}}},"/fillZeros":{"get":{"tags":["Data Munging Engine"],"summary":"Fill Zeros in Attribute","description":"Fills zeros for missing or null values in the specified attribute of a given MongoDB collection.","operationId":"fillZeros","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where zero-filling is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute in the collection to perform the zero-filling operation on.","required":true,"schema":{"type":"string"},"example":"missingValues"}],"responses":{"200":{"description":"Zero-filling operation completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the zero-filling operation.","content":{"application/json":{}}}}}},"/fillValues":{"get":{"tags":["Data Munging Engine"],"summary":"Update attribute values in a MongoDB collection","description":"Updates the specified attribute in a MongoDB collection based on the provided find criteria and update values. The `value` parameter can include string options like `$SENDER_ADDRESS.substring(domain)`.","operationId":"fillValues","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the update operation will be performed.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute in the collection to be updated.","required":true,"schema":{"type":"string"},"example":"status"},{"name":"value","in":"query","description":"The value to update the attribute with. Can include expressions like `$SENDER_ADDRESS.substring(domain)`.","required":true,"schema":{"type":"string"},"example":"$SENDER_ADDRESS.substring(domain)"},{"name":"find","in":"query","description":"The criteria to find the records to update (MongoDB query format).","required":true,"schema":{"type":"string"},"example":{"status":"pending"}}],"responses":{"200":{"description":"Attribute values updated successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while performing the update.","content":{"application/json":{}}}}}},"/exportMongoDocuments":{"get":{"tags":["Data Management Engine"],"summary":"Export documents from a MongoDB collection","description":"This service exports documents from the specified MongoDB database and collection to a file. The exported documents can be sorted, projected, and limited by the specified parameters. The file type can be either JSON, CSV, or another supported format.","operationId":"exportMongoDocuments","parameters":[{"name":"file_name","in":"query","description":"The name of the file to store the exported documents.","required":true,"schema":{"type":"string"},"example":"exported_data.json"},{"name":"file_type","in":"query","description":"The file type for the export, such as 'json' or 'csv'.","required":true,"schema":{"type":"string"},"example":"json"},{"name":"database","in":"query","description":"The MongoDB database to export documents from.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection to export documents from.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"field","in":"query","description":"The field to sort the documents by.","required":true,"schema":{"type":"string"},"example":"createdAt"},{"name":"sort","in":"query","description":"The sort order for the exported documents.","required":true,"schema":{"type":"string"},"example":1},{"name":"projection","in":"query","description":"The fields to include or exclude from the exported documents.","required":true,"schema":{"type":"string"},"example":"{'field1':1, 'field2':0}"},{"name":"limit","in":"query","description":"The maximum number of documents to export.","required":true,"schema":{"type":"integer"},"example":100}],"responses":{"200":{"description":"Successfully exported the documents from the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/exportFrame":{"get":{"tags":["Worker: H2O"],"summary":"Export frame","description":"Exports a specified data frame to a file or storage location.","operationId":"exportFrame","parameters":[{"name":"frame","in":"query","description":"The name or ID of the data frame to export.","required":true,"schema":{"type":"string"},"example":"frame_123"}],"responses":{"200":{"description":"Successfully exported the data frame.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid frame name or error during export.","content":{"application/json":{}}},"404":{"description":"Data frame not found.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while exporting the frame.","content":{"application/json":{}}}}}},"/enumConvert":{"get":{"tags":["Data Munging Engine"],"summary":"Enum Conversion","description":"Converts enum values in the specified MongoDB collection and attribute.","operationId":"enumConvert","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the enum conversion is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute in the collection to perform the enum conversion on.","required":true,"schema":{"type":"string"},"example":"status"}],"responses":{"200":{"description":"Enum conversion successfully performed.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the enum conversion.","content":{"application/json":{}}}}}},"/dumpMongoDatabase":{"get":{"tags":["Data Management Engine"],"summary":"Dump MongoDB database and collection to a specified folder","description":"This service dumps the specified MongoDB database and collection to a file in the given folder. You can specify the operation option for the dump.","operationId":"dumpMongoDatabase","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database to dump.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The name of the MongoDB collection to dump.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"folder","in":"query","description":"The folder where the dumped data will be saved.","required":true,"schema":{"type":"string"},"example":"/data/backups"},{"name":"option","in":"query","description":"The option for the dump operation, such as 'full' or 'incremental'.","required":true,"schema":{"type":"string"},"example":"full"}],"responses":{"200":{"description":"Successfully dumped the database and collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/dropMongoDatabase":{"get":{"tags":["Data Management Engine"],"summary":"Drop a MongoDB database","description":"Removes the specified MongoDB database.","operationId":"dropMongoDatabase","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database to be dropped.","required":true,"schema":{"type":"string"},"example":"old_database"}],"responses":{"200":{"description":"Successfully dropped the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database name.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while dropping the database.","content":{"application/json":{}}}}}},"/dropMongoCollection":{"get":{"tags":["Data Management Engine"],"summary":"Drop a collection from a MongoDB database","description":"Removes a specified collection from the given MongoDB database.","operationId":"dropMongoCollection","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the collection to drop from the specified database.","required":true,"schema":{"type":"string"},"example":"my_collection"}],"responses":{"200":{"description":"Successfully dropped the collection from the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database or collection name.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while dropping the collection.","content":{"application/json":{}}}}}},"/dropMongoCollectionIndex":{"get":{"tags":["Data Management Engine"],"summary":"Drop an index from a MongoDB collection","description":"This service drops the specified index from the MongoDB collection in the given database.","operationId":"dropMongoCollectionIndex","parameters":[{"name":"database","in":"query","description":"The MongoDB database from which to drop the collection index.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection from which to drop the index.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"index","in":"query","description":"The index name to drop from the collection.","required":true,"schema":{"type":"string"},"example":"index_name"}],"responses":{"200":{"description":"Successfully dropped the index from the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/download":{"get":{"tags":["Data Management Engine: Files"],"operationId":"downloadFile","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"path","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"name","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/downloadProjectZip":{"get":{"tags":["Prediction Engine"],"operationId":"downloadProjectZip","parameters":[{"name":"projectID","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"moduleName","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/downloadModel":{"get":{"tags":["Worker: H2O"],"summary":"Download a model","description":"Downloads a specific model based on the provided prediction ID and MOJO ID.","operationId":"downloadModel","parameters":[{"name":"predict_id","in":"query","description":"The prediction ID associated with the model.","required":true,"schema":{"type":"string"},"example":"predict_123"},{"name":"mojo_id","in":"query","description":"The MOJO ID of the model to download.","required":true,"schema":{"type":"string"},"example":"mojo_456"}],"responses":{"200":{"description":"Successfully retrieved the model.","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Model not found.","content":{"application/json":{}}},"400":{"description":"Invalid input parameters or error during retrieval.","content":{"application/json":{}}}}}},"/downloadModelMojo":{"get":{"tags":["Worker: H2O"],"summary":"Download a model MOJO","description":"Downloads the MOJO (Model Object, Optimized) file for a specific model based on the provided model ID.","operationId":"getModelMojo","parameters":[{"name":"model_id","in":"query","description":"The ID of the model whose MOJO file is to be downloaded.","required":true,"schema":{"type":"string"},"example":"model_123"}],"responses":{"200":{"description":"Successfully retrieved the model MOJO file.","content":{"application/octet-stream":{}}},"404":{"description":"Model MOJO file not found.","content":{"application/json":{}}},"400":{"description":"Invalid model ID or error during file retrieval.","content":{"application/json":{}}}}}},"/deleteUserFrame":{"get":{"tags":["Prediction Engine"],"operationId":"deleteUserFrame","parameters":[{"name":"frame_id","in":"query","required":false,"schema":{"type":"string","default":""}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deleteTenant":{"get":{"tags":["Worker: AWS"],"summary":"Delete Tenant","description":"Deletes a tenant in the system or performs specific actions based on the provided `action` parameter.","operationId":"deleteTenant","parameters":[{"name":"tenant","in":"query","description":"The unique identifier for the tenant to be deleted.","required":true,"schema":{"type":"string"},"example":"exampleTenant"},{"name":"action","in":"query","description":"The action to perform on the tenant. Example actions might include `delete_data`, `archive`, or `log_out`.","required":true,"schema":{"type":"string"},"example":"delete_data"}],"responses":{"200":{"description":"The requested tenant action was successfully completed.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. Missing or incorrect parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/deletePulseResponderDynamic":{"get":{"tags":["ecosystem-scoring-params"],"summary":"Delete client pulse responder dynamic parameters and related data","description":"This service deletes the specified documents from the provided database and collection using the given 'find' condition.","operationId":"deletePulseResponderDynamic","parameters":[{"name":"database","in":"query","description":"The name of the database where the document is to be deleted.","required":true,"schema":{"type":"string"},"example":"client_database"},{"name":"collection","in":"query","description":"The name of the collection within the database where the document is to be deleted.","required":true,"schema":{"type":"string"},"example":"dynamic_collection"},{"name":"find","in":"query","description":"The query or condition to find the target document(s) for deletion.","required":true,"schema":{"type":"string"},"example":{"key":"value"}}],"responses":{"200":{"description":"Process successfully completed. The document(s) have been deleted.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request. Ensure all query parameters (database, collection, find) are provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while deleting the data.","content":{"application/json":{}}}}}},"/deleteManyDocuments":{"get":{"tags":["Data Munging Engine"],"summary":"Delete Multiple Documents in MongoDB","description":"Deletes multiple documents from a specified MongoDB collection that match the given find criteria.","operationId":"deleteManyDocuments","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection from which documents will be deleted.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"find","in":"query","description":"The criteria to find MongoDB documents for deletion (MongoDB query format, in JSON).","required":true,"schema":{"type":"string"},"example":{"status":"inactive"}}],"responses":{"200":{"description":"Documents successfully deleted from the collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while deleting the documents.","content":{"application/json":{}}}}}},"/deleteKey":{"get":{"tags":["Data Munging Engine"],"summary":"Delete Key in MongoDB Documents","description":"Deletes a key (attribute) from MongoDB documents within a specified collection that match the given find criteria.","operationId":"deleteKey","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the key deletion will be performed.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The name of the key (attribute) to delete from documents.","required":true,"schema":{"type":"string"},"example":"unnecessaryField"},{"name":"find","in":"query","description":"The criteria to find MongoDB documents for the deletion (in query format).","required":true,"schema":{"type":"string"},"example":{"status":"inactive"}}],"responses":{"200":{"description":"Key successfully deleted from the target documents.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or missing required fields.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while performing the key deletion.","content":{"application/json":{}}}}}},"/deleteFile":{"get":{"tags":["Data Management Engine: Files"],"operationId":"deleteFile","parameters":[{"name":"user","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"path","in":"query","required":false,"schema":{"type":"string","default":"./"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deleteEmloAnalytic":{"get":{"tags":["Algorithm: Ecosystem Algorithms"],"summary":"Delete EMLO analytic job","description":"Deletes an EMLO analytic job based on the provided job name and returns the result.","operationId":"deleteEmloAnalytic","parameters":[{"name":"job_name","in":"query","description":"The name of the EMLO analytic job to delete.","required":true,"schema":{"type":"string"},"example":"emlo_analytic_job_123"}],"responses":{"200":{"description":"Successfully deleted the EMLO analytic job.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid job name provided.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during job deletion.","content":{"application/json":{}}}}}},"/dateEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Enrich Date Features in MongoDB","description":"Extracts and enriches features from a date field (attribute) in a MongoDB collection. The attribute format is expected to be `DATEFIELD=ddMMMyyyy hh:mm:ssZ`.","operationId":"dateEnrich","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The name of the MongoDB collection where date enrichment is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute to extract and enrich features from. It should follow the format `DATEFIELD=ddMMMyyyy hh:mm:ssZ`.","required":true,"schema":{"type":"string"},"example":"createdDate"}],"responses":{"200":{"description":"Date enrichment process completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the date enrichment process.","content":{"application/json":{}}}}}},"/csvFileToMongoDBImport":{"get":{"tags":["Data Management Engine"],"summary":"Import CSV, TSV, or JSON file into MongoDB","description":"This service imports a file (CSV, TSV, or JSON) into the specified MongoDB database and collection.","operationId":"fileMongoDBImport","parameters":[{"name":"csv_file","in":"query","description":"The path to the file (CSV, TSV, or JSON) to import into MongoDB.","required":true,"schema":{"type":"string"},"example":"/path/to/file.csv"},{"name":"database","in":"query","description":"The MongoDB database where the file will be imported.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection where the file data will be stored.","required":true,"schema":{"type":"string"},"example":"mycollection"}],"responses":{"200":{"description":"Successfully imported the file into MongoDB.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/csvFileToMongoDBImport2":{"get":{"tags":["Data Management Engine"],"summary":"Import a file (CSV, TSV, JSON) into MongoDB","description":"This service imports a file (CSV, TSV, or JSON) into the specified MongoDB database and collection, with an optional header line setting.","operationId":"fileMongoDBImport2","parameters":[{"name":"csv_file","in":"query","description":"The path of the file to import into MongoDB (CSV, TSV, or JSON).","required":true,"schema":{"type":"string"},"example":"/path/to/file.csv"},{"name":"database","in":"query","description":"The MongoDB database where the file will be imported.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection where the file data will be stored.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"type","in":"query","description":"The file type: 'csv', 'tsv', or 'json'.","required":true,"schema":{"type":"string"},"example":"csv"},{"name":"headerline","in":"query","description":"Indicates whether the first row in the CSV or TSV file is a header line (true/false).","required":true,"schema":{"type":"string"},"example":true}],"responses":{"200":{"description":"Successfully imported the file into MongoDB.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/csvFileToJSON":{"get":{"tags":["Data Management Engine"],"summary":"Convert CSV file to JSON","description":"This service converts a CSV file to a JSON format and saves it as a JSON file in the specified location.","operationId":"csvToJSON","parameters":[{"name":"csv_file","in":"query","description":"The path of the CSV file to convert.","required":true,"schema":{"type":"string"},"example":"/path/to/input.csv"},{"name":"json_file","in":"query","description":"The path where the resulting JSON file will be saved.","required":true,"schema":{"type":"string"},"example":"/path/to/output.json"}],"responses":{"200":{"description":"Successfully converted CSV to JSON and saved the file.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/createPrestoSQL":{"get":{"tags":["Data Management Engine: Presto"],"summary":"Execute Presto SQL create query","description":"Executes a Presto SQL create table query on the specified connection.","operationId":"createPrestoSQL","parameters":[{"name":"sql","in":"query","description":"The SQL create query to execute.","required":false,"schema":{"type":"string"},"example":"create table if not exists _test (column1 varchar, column2 bigint)"},{"name":"connection","in":"query","description":"The connection string for the Presto database.","required":false,"schema":{"type":"string"},"example":"cassandra/system_schema?user=cassandra"}],"responses":{"200":{"description":"Successfully executed the SQL create query.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid SQL query or connection string.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the query.","content":{"application/json":{}}}}}},"/createMongoCollectionIndex":{"get":{"tags":["Data Management Engine"],"summary":"Create an index for a MongoDB collection","description":"This service creates an index for a MongoDB collection in the specified database. If the index already exists, it will not be created again.","operationId":"createMongoCollectionIndex","parameters":[{"name":"database","in":"query","description":"The MongoDB database where the collection is located.","required":true,"schema":{"type":"string"},"example":"mydb"},{"name":"collection","in":"query","description":"The MongoDB collection for which to create the index.","required":true,"schema":{"type":"string"},"example":"mycollection"},{"name":"index","in":"query","description":"The name of the index to create for the collection.","required":true,"schema":{"type":"string"},"example":"index_name"}],"responses":{"200":{"description":"Successfully created the index for the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or malformed JSON.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/createJSONfromTEXT":{"get":{"tags":["Utilities"],"summary":"Create JSON from a text string","description":"Creates a JSON file from a text string. Specify the `inFile` as the input text file path and `outFile` as the output file path. To write output to a database, use the format `<database>.<collection>` for the `outFile` parameter.","operationId":"createJSONfromTEXT","parameters":[{"name":"inFile","in":"query","description":"The input file path containing the text string to be converted.","required":true,"schema":{"type":"string"},"example":"/path/to/input.txt"},{"name":"outFile","in":"query","description":"The output file path to save the generated JSON. Use `<database>.<collection>` to write to a database.","required":true,"schema":{"type":"string"},"example":"database.collection"}],"responses":{"200":{"description":"Successfully created JSON from the text string.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/copyFile":{"get":{"tags":["Data Management Engine: Files"],"operationId":"copyFile","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string"}},{"name":"to","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/convertTextFileFromTo":{"get":{"tags":["Data Management Engine: Files"],"summary":"Convert text files with transformation rules","description":"Convert text files from one format to another using processing transformation rules. Example rules: {\"rules\":[ {\"type\":\"range\", \"column\": 3, \"range\":[{\"from\":1, \"to\":3, \"value\":0},{\"from\":4, \"to\":5, \"value\":1}]},{\"type\":\"remove\", \"column\":4} ]}. To clean CSV files, use {\"convert\":\"remove_non_printable\"}.","operationId":"convertTextFileFromTo","parameters":[{"name":"inFile","in":"query","description":"The input file path","required":true,"schema":{"type":"string"},"example":"/path/to/input/file.txt"},{"name":"inDelimiter","in":"query","description":"The delimiter used in the input file","required":true,"schema":{"type":"string"},"example":","},{"name":"outFile","in":"query","description":"The output file path","required":true,"schema":{"type":"string"},"example":"/path/to/output/file.txt"},{"name":"outDelimiter","in":"query","description":"The delimiter to be used in the output file","required":true,"schema":{"type":"string"},"example":"|"},{"name":"rules","in":"query","description":"Transformation rules in JSON format","required":true,"schema":{"$ref":"#/components/schemas/JSONObject","default":{"empty":false,"mapType":"java.util.HashMap"}},"example":{"rules":[{"type":"range","column":3,"range":[{"from":1,"to":3,"value":0},{"from":4,"to":5,"value":1}]},{"type":"remove","column":4}]}}],"responses":{"200":{"description":"Successfully converted the text file","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters or transformation rules","content":{"application/json":{}}}}}},"/convertRemoveNonPrintables":{"get":{"tags":["Data Management Engine: Files"],"summary":"Remove non-printable characters from file","description":"Removes non-printable characters from the specified file. Provide the full path to the input and output files.","operationId":"convertRemoveNonPrintables","parameters":[{"name":"inFile","in":"query","description":"The full path of the input file","required":true,"schema":{"type":"string"},"example":"/path/to/input/file.txt"},{"name":"outFile","in":"query","description":"The full path of the output file","required":true,"schema":{"type":"string"},"example":"/path/to/output/file.txt"}],"responses":{"200":{"description":"Successfully removed non-printable characters","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid file paths or processing error","content":{"application/json":{}}}}}},"/convertRangeFromTo":{"get":{"tags":["Utilities"],"summary":"Convert a value based on range rules","description":"Converts a numerical value using specified range rules. The rules should define ranges and their corresponding values. For example: `{type:\"range\", range:[ {from:1,to:3,value:0},{from:4,to:5,value:1} ]}`.","operationId":"convertRangeFromTo","parameters":[{"name":"rules","in":"query","description":"JSON object defining the range rules. The format includes a type and a list of ranges with 'from', 'to', and 'value' properties.","required":true,"schema":{"type":"string"},"example":"{type:\"range\", range:[ {from:1,to:3,value:0},{from:4,to:5,value:1} ]}"},{"name":"value","in":"query","description":"The numerical value to be converted based on the rules.","required":true,"schema":{"type":"number","format":"double"},"example":4.5}],"responses":{"200":{"description":"Successfully converted the value based on the range rules.","content":{"application/json":{"schema":{"type":"number","format":"double"}}}},"400":{"description":"Invalid input parameters or range rules.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the request.","content":{"application/json":{}}}}}},"/convertCsvFromTo":{"get":{"tags":["Data Management Engine: Files"],"summary":"Convert CSV file to another formatted CSV file","description":"Converts a CSV file into another file with specific formatting. Provide the full paths of the input and output files.","operationId":"convertCsvFromTo","parameters":[{"name":"inFile","in":"query","description":"The full path of the input CSV file","required":true,"schema":{"type":"string"},"example":"/path/to/input/file.csv"},{"name":"outFile","in":"query","description":"The full path of the output formatted CSV file","required":true,"schema":{"type":"string"},"example":"/path/to/output/file.csv"},{"name":"char","in":"query","description":"The character encoding or specific formatting rule for the output CSV","required":true,"schema":{"type":"string"},"example":"UTF-8"}],"responses":{"200":{"description":"Successfully converted the CSV file","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid file paths or formatting issues","content":{"application/json":{}}}}}},"/config":{"get":{"tags":["Utilities"],"summary":"Get server version details","description":"Retrieves all version details of the server, including version, name, and build time.","operationId":"getConfig","responses":{"200":{"description":"Successfully retrieved version details of the server.","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error occurred while fetching the version details.","content":{"application/json":{}}}}}},"/concatColumns":{"get":{"tags":["Data Munging Engine"],"summary":"Concatenate Two Columns and Create a New Feature","description":"Concatenates two columns (fields) in a MongoDB collection and creates a new feature (column). The new field is specified using the `attribute` parameter with the format `NEWFIELD=FIELD1,FIELD2`.","operationId":"concatTwoColumns","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the operation is performed.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"Specifies the new field and the fields to concatenate in the format `NEWFIELD=FIELD1,FIELD2`.","required":true,"schema":{"type":"string"},"example":"fullName=firstName,lastName"}],"responses":{"200":{"description":"Columns concatenated successfully, and the new feature was created.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the concatenation process.","content":{"application/json":{}}}}}},"/closeChatThreads":{"get":{"tags":["AI Services API"],"summary":"Close Chat Threads","description":"Closes all active chat threads of the specified type.","operationId":"closeChatThreads","parameters":[{"name":"type","in":"query","description":"The type of threads to close","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Threads successfully closed","content":{"application/json":{"schema":{"type":"object","example":{"message":"Done"}}}}},"400":{"description":"Invalid input parameter","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/changeToEnum":{"get":{"tags":["Worker: H2O"],"summary":"Change column type to enum","description":"Changes the type of a specified column in a data frame to enum.","operationId":"changeToEnum","parameters":[{"name":"frame","in":"query","description":"The name or ID of the data frame.","required":true,"schema":{"type":"string"},"example":"frame_123"},{"name":"column","in":"query","description":"The name of the column to change to enum.","required":true,"schema":{"type":"string"},"example":"column_name"}],"responses":{"200":{"description":"Successfully changed the column type to enum.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid frame or column name, or error during processing.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the type change process.","content":{"application/json":{}}}}}},"/cancelJob":{"get":{"tags":["Worker: H2O"],"summary":"Cancel a prediction job","description":"Cancels a specific prediction job based on the provided job ID.","operationId":"cancelJob_8","parameters":[{"name":"jobId","in":"query","description":"The ID of the job to cancel.","required":true,"example":12345},{"name":"job_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully canceled the prediction job.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid job ID or error while canceling the job.","content":{"application/json":{}}}}}},"/buildOrbitLGT":{"get":{"tags":["Worker: Uber"],"summary":"Build Orbit LGT model","description":"Trains an Orbit LGT (Local Global Trend) model using the specified input and output database/collection details, response column, date column, and other parameters.","operationId":"buildOrbitLGT","parameters":[{"name":"input_database","in":"query","description":"The name of the input database containing training data.","required":true,"schema":{"type":"string"},"example":"training_database"},{"name":"input_collection","in":"query","description":"The name of the input collection containing training data.","required":true,"schema":{"type":"string"},"example":"training_collection"},{"name":"output_database","in":"query","description":"The name of the output database where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_database"},{"name":"output_collection","in":"query","description":"The name of the output collection where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_collection"},{"name":"response_column","in":"query","description":"The column in the dataset that contains the response variable.","required":true,"schema":{"type":"string"},"example":"sales"},{"name":"date_column","in":"query","description":"The column in the dataset that contains date values.","required":true,"schema":{"type":"string"},"example":"transaction_date"},{"name":"seasonality","in":"query","description":"The seasonality to consider in the model.","required":true,"schema":{"type":"string"},"example":"monthly"},{"name":"seed","in":"query","description":"The random seed for reproducibility.","required":true,"schema":{"type":"integer","format":"int32"},"example":42},{"name":"find","in":"query","description":"The query string used to filter data.","required":true,"schema":{"type":"string"},"example":{"region":"North America"}}],"responses":{"200":{"description":"Successfully trained the Orbit LGT model.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during model training.","content":{"application/json":{}}}}}},"/buildOrbitETS":{"get":{"tags":["Worker: Uber"],"summary":"Build Orbit ETS model","description":"Trains an Orbit ETS (Error, Trend, Seasonality) model using the specified input and output database/collection details, response column, date column, and other parameters.","operationId":"buildOrbitETS","parameters":[{"name":"input_database","in":"query","description":"The name of the input database containing training data.","required":true,"schema":{"type":"string"},"example":"training_database"},{"name":"input_collection","in":"query","description":"The name of the input collection containing training data.","required":true,"schema":{"type":"string"},"example":"training_collection"},{"name":"output_database","in":"query","description":"The name of the output database where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_database"},{"name":"output_collection","in":"query","description":"The name of the output collection where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_collection"},{"name":"response_column","in":"query","description":"The column in the dataset that contains the response variable.","required":true,"schema":{"type":"string"},"example":"sales"},{"name":"date_column","in":"query","description":"The column in the dataset that contains date values.","required":true,"schema":{"type":"string"},"example":"transaction_date"},{"name":"seasonality","in":"query","description":"The seasonality to consider in the model.","required":true,"schema":{"type":"string"},"example":"monthly"},{"name":"seed","in":"query","description":"The random seed for reproducibility.","required":true,"schema":{"type":"integer","format":"int32"},"example":42},{"name":"find","in":"query","description":"The query string used to filter data.","required":true,"schema":{"type":"string"},"example":{"region":"North America"}}],"responses":{"200":{"description":"Successfully trained the Orbit ETS model.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during model training.","content":{"application/json":{}}}}}},"/buildOrbitDLT":{"get":{"tags":["Worker: Uber"],"summary":"Build Orbit DLT model","description":"Trains an Orbit DLT (Dynamic Linear Trend) model using the specified input and output database/collection details, response column, date column, and other parameters.","operationId":"buildOrbitDLT","parameters":[{"name":"input_database","in":"query","description":"The name of the input database containing training data.","required":true,"schema":{"type":"string"},"example":"training_database"},{"name":"input_collection","in":"query","description":"The name of the input collection containing training data.","required":true,"schema":{"type":"string"},"example":"training_collection"},{"name":"output_database","in":"query","description":"The name of the output database where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_database"},{"name":"output_collection","in":"query","description":"The name of the output collection where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_collection"},{"name":"response_column","in":"query","description":"The column in the dataset that contains the response variable.","required":true,"schema":{"type":"string"},"example":"sales"},{"name":"date_column","in":"query","description":"The column in the dataset that contains date values.","required":true,"schema":{"type":"string"},"example":"transaction_date"},{"name":"seasonality","in":"query","description":"The seasonality to consider in the model.","required":true,"schema":{"type":"string"},"example":"monthly"},{"name":"seed","in":"query","description":"The random seed for reproducibility.","required":true,"schema":{"type":"integer","format":"int32"},"example":42},{"name":"find","in":"query","description":"The query string used to filter data.","required":true,"schema":{"type":"string"},"example":{"region":"North America"}},{"name":"params","in":"query","description":"Additional parameters for training the model.","required":true,"schema":{"type":"string"},"example":{"param1":"value1","param2":"value2"}}],"responses":{"200":{"description":"Successfully trained the Orbit DLT model.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during model training.","content":{"application/json":{}}}}}},"/buildOrbitBTVC":{"get":{"tags":["Worker: Uber"],"summary":"Build Orbit BTVC model","description":"Trains an Orbit BTVC model using the provided input and output database/collection details, response column, date column, and other parameters.","operationId":"buildOrbitBTVC","parameters":[{"name":"input_database","in":"query","description":"The name of the input database containing training data.","required":true,"schema":{"type":"string"},"example":"training_database"},{"name":"input_collection","in":"query","description":"The name of the input collection containing training data.","required":true,"schema":{"type":"string"},"example":"training_collection"},{"name":"output_database","in":"query","description":"The name of the output database where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_database"},{"name":"output_collection","in":"query","description":"The name of the output collection where results will be stored.","required":true,"schema":{"type":"string"},"example":"results_collection"},{"name":"response_column","in":"query","description":"The column in the dataset that contains the response variable.","required":true,"schema":{"type":"string"},"example":"sales"},{"name":"date_column","in":"query","description":"The column in the dataset that contains date values.","required":true,"schema":{"type":"string"},"example":"transaction_date"},{"name":"seasonality","in":"query","description":"The seasonality to consider in the model.","required":true,"schema":{"type":"string"},"example":"monthly"},{"name":"seed","in":"query","description":"The random seed for reproducibility.","required":true,"schema":{"type":"integer","format":"int32"},"example":42},{"name":"find","in":"query","description":"The query string used to filter data.","required":true,"schema":{"type":"string"},"example":{"region":"North America"}},{"name":"params","in":"query","description":"Additional parameters for training the model.","required":true,"schema":{"type":"string"},"example":{"param1":"value1","param2":"value2"}}],"responses":{"200":{"description":"Successfully trained the Orbit BTVC model.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during model training.","content":{"application/json":{}}}}}},"/buildModel":{"get":{"tags":["Worker: H2O"],"summary":"Select a model to build","description":"Selects a model to build using the ecosystem worker architecture. Supported model types include: `gbm`, `dl`, `automl`, `ludwig`, `cox`, `isolationforest`, and more.","operationId":"buildModel","parameters":[{"name":"model_type","in":"query","description":"The type of model to build. Supported types include `gbm`, `dl`, `automl`, `ludwig`, `cox`, `isolationforest`, etc.","required":true,"schema":{"type":"string"},"example":"gbm"},{"name":"model_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"model_parms","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully selected and started building the model.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid model type or error during model selection.","content":{"application/json":{}}}}}},"/buildModelLudwig":{"get":{"tags":["Worker: Uber"],"summary":"Build Ludwig model","description":"Trains a Ludwig model using the specified model name and model definition.","operationId":"getLudwigLudwigModel","parameters":[{"name":"model_name","in":"query","description":"The name of the model to be trained.","required":true,"schema":{"type":"string"},"example":"ludwig_model_01"},{"name":"model_definition","in":"query","description":"The JSON or YAML definition of the Ludwig model.","required":true,"schema":{"type":"string"},"example":"{ \"input_features\": [{...}], \"output_features\": [{...}] }"}],"responses":{"200":{"description":"Successfully built the Ludwig model.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during model training.","content":{"application/json":{}}}}}},"/billing/usage/current-period":{"get":{"tags":["Billing API"],"operationId":"getCurrentPeriodTokenUsageByEmail","parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/billing/usage-summary":{"get":{"tags":["Billing API"],"summary":"Get Usage Summary","description":"Retrieves the aggregated usage summary for a customer within a billing period. Use this to display usage dashboards or verify billing accuracy.\n\n**Note:** The meter ID can be found in your Stripe Dashboard under Billing > Meters.","operationId":"getUsageSummary","parameters":[{"name":"customerId","in":"query","description":"Stripe customer ID (starts with 'cus_')","required":true,"schema":{"type":"string"},"example":"cus_ABC123xyz"},{"name":"meterId","in":"query","description":"Stripe meter ID (starts with 'mtr_'). Find this in Stripe Dashboard > Billing > Meters","required":true,"schema":{"type":"string"},"example":"mtr_ABC123xyz"},{"name":"startTime","in":"query","description":"Start of period as Unix timestamp (seconds since epoch)","required":true,"schema":{"type":"integer","format":"int64"},"example":1704067200},{"name":"endTime","in":"query","description":"End of period as Unix timestamp (seconds since epoch)","required":true,"schema":{"type":"integer","format":"int64"},"example":1706745600}],"responses":{"200":{"description":"Usage summary retrieved successfully","content":{"application/json":{"example":{"success":true,"customerId":"cus_ABC123xyz","meterId":"mtr_ABC123xyz","summaries":[{"id":"mes_ABC123","aggregatedValue":15000000,"startTime":1704067200,"endTime":1706745600}]}}}},"400":{"description":"Invalid parameters","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"500":{"description":"Failed to retrieve usage summary","content":{"application/json":{"example":{"success":false,"error":"Stripe error: No such meter: mtr_invalid"}}}}}}},"/billing/customer-session":{"get":{"tags":["Billing API"],"summary":"Create Customer Billing Portal Session","description":"Creates a Stripe Billing Portal session for the customer found by the given email address and returns a URL that can be used to redirect the user to manage their subscription.","operationId":"createCustomerSession","parameters":[{"name":"email","in":"query","description":"User email address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Portal session created","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Email parameter required","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"404":{"description":"No Stripe customer found for the given email","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"500":{"description":"Failed to create portal session","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/billing/customer-info":{"get":{"tags":["Billing API"],"summary":"Get Customer Billing Info","description":"Returns subscription status for the given email address.","operationId":"getCustomerInfo","parameters":[{"name":"email","in":"query","description":"User email address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Billing information retrieved","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Email parameter required","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/autoNormalizeAll":{"get":{"tags":["Data Munging Engine"],"summary":"Automatically Normalize Fields in a MongoDB Collection","description":"Normalizes the specified fields to a given range (`normalizedHigh` and `normalizedLow`) in a MongoDB collection. Optionally filters data based on the provided `find` JSON query.","operationId":"autoNormalizeAll","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection containing the data to be normalized.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"fields","in":"query","description":"Comma-separated list of fields to normalize.","required":true,"schema":{"type":"string"},"example":"field1,field2,field3"},{"name":"find","in":"query","description":"JSON query to filter documents for normalization.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"normalizedHigh","in":"query","description":"The upper limit of the normalization range.","required":true,"schema":{"type":"number","format":"double"},"example":1.0},{"name":"normalizedLow","in":"query","description":"The lower limit of the normalization range.","required":true,"schema":{"type":"number","format":"double"},"example":0.0}],"responses":{"200":{"description":"Fields normalized successfully in the specified range.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input or missing parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during normalization.","content":{"application/json":{}}}}}},"/auth/oauth2/trusted":{"get":{"tags":["OAuth2 Controller"],"summary":"Trusted corporate proxy SSO","description":"Mints an Ecosystem JWT when called behind a verified corporate auth proxy forwarding X-Forwarded-User","operationId":"handleTrustedHeaderSso","parameters":[{"name":"return_to","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/auth/oauth2/status":{"get":{"tags":["OAuth2 Controller"],"summary":"Check OAuth2 and Active Directory status","description":"Returns whether OAuth2, Microsoft Entra ID, and On-Prem AD LDAP are enabled and configured","operationId":"getOAuth2Status","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/auth/oauth2/google":{"get":{"tags":["OAuth2 Controller"],"summary":"Initiate Google OAuth2 login","description":"Redirects to Google's authorization page to begin OAuth2 flow","operationId":"initiateGoogleLogin","parameters":[{"name":"return_to","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/auth/oauth2/google/callback":{"get":{"tags":["OAuth2 Controller"],"summary":"Google OAuth2 callback","description":"Handles the callback from Google, exchanges code for tokens, and redirects to frontend","operationId":"handleGoogleCallback","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string"}},{"name":"error","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/auth/oauth2/entra":{"get":{"tags":["OAuth2 Controller"],"summary":"Initiate Microsoft Entra ID (Active Directory) OIDC login","description":"Redirects to Microsoft Entra ID authorization endpoint with PKCE","operationId":"initiateEntraLogin","parameters":[{"name":"return_to","in":"query","required":false,"schema":{"type":"string"}},{"name":"silent","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK"}}}},"/auth/oauth2/entra/callback":{"get":{"tags":["OAuth2 Controller"],"summary":"Microsoft Entra ID OAuth2 callback","description":"Exchanges authorization code with PKCE, validates Entra ID token and groups, and redirects to frontend","operationId":"handleEntraCallback","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string"}},{"name":"error","in":"query","required":false,"schema":{"type":"string"}},{"name":"error_description","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/archive":{"get":{"tags":["Ecosystem User Profiles"],"summary":"Archive user profile","description":"Archives the user profile for the specified user ID.","operationId":"archiveProfile","parameters":[{"name":"userid","in":"query","description":"The user ID whose profile is to be archived.","required":false,"schema":{"type":"string"},"example":"user123"}],"responses":{"200":{"description":"Successfully archived the user profile.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while archiving the profile.","content":{"application/json":{}}}}}},"/addMongoDatabase":{"get":{"tags":["Data Management Engine"],"summary":"Add a new MongoDB database","description":"Creates a new MongoDB database with the specified name.","operationId":"addMongoDatabase","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database to be created.","required":true,"schema":{"type":"string"},"example":"new_database"}],"responses":{"200":{"description":"Successfully created the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database name.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while creating the database.","content":{"application/json":{}}}}}},"/addMongoCollection":{"get":{"tags":["Data Management Engine"],"summary":"Add a collection to a MongoDB database","description":"Adds a new collection to the specified MongoDB database. Example JSON: {\"database\":\"_db\",\"collection\":\"_coll\",\"document\": {}}","operationId":"addMongoCollection","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"_db"},{"name":"collection","in":"query","description":"The name of the collection to add to the specified database.","required":true,"schema":{"type":"string"},"example":"_coll"}],"responses":{"200":{"description":"Successfully added the collection to the database.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid database or collection name.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while adding the collection.","content":{"application/json":{}}}}}},"/activities":{"get":{"tags":["Ecosystem User Profiles"],"summary":"Get user profile activities","description":"Retrieves the list of activities associated with the specified user ID.","operationId":"getProfileActivities","parameters":[{"name":"user","in":"query","description":"The user ID whose activities are to be retrieved.","required":false,"schema":{"type":"string"},"example":"user123"}],"responses":{"200":{"description":"Successfully retrieved user activities.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while retrieving activities.","content":{"application/json":{}}}}}},"/":{"get":{"tags":["Ecosystem Home"],"summary":"Main entry point","description":"Redirects to the ecosystem.Ai API Documentation landing page.","operationId":"getMain","responses":{"302":{"description":"Redirects to the API documentation landing page.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RedirectView"}}}}}}},"/3/dateEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Extract Features from Date and Enrich MongoDB","description":"Processes and enriches features from dates stored in a MongoDB collection. Documents matching the provided find criteria are processed, and the date attribute is expected to follow the format `DATEFIELD=ddMMMyyyy hh:mm:ssZ`.","operationId":"dateEnrich3","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where date enrichment is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute containing the date to extract and enrich features from. The format should be `DATEFIELD=ddMMMyyyy hh:mm:ssZ`.","required":true,"schema":{"type":"string"},"example":"createdDate"},{"name":"find","in":"query","description":"The MongoDB find criteria used to filter which documents to process. This should be in JSON format.","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"Date enrichment process completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the date enrichment process.","content":{"application/json":{}}}}}},"/2/getMongoDBAggregate":{"get":{"tags":["Data Management Engine"],"summary":"Aggregate documents in a MongoDB collection with pagination","description":"Performs an aggregation query on the specified MongoDB collection using the provided filters, projections, aggregation pipeline, sorting options, and pagination settings.","operationId":"getMongoDBAggregate2","parameters":[{"name":"database","in":"query","description":"The name of the MongoDB database.","required":true,"schema":{"type":"string"},"example":"my_database"},{"name":"collection","in":"query","description":"The name of the MongoDB collection.","required":true,"schema":{"type":"string"},"example":"my_collection"},{"name":"field","in":"query","description":"The query filter as a JSON string. Use URL-encoded values if needed.","required":true,"schema":{"type":"string"},"example":{"status":"active"}},{"name":"projections","in":"query","description":"The fields to include or exclude in the result as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1,"status":1}},{"name":"aggregate","in":"query","description":"The aggregation pipeline stages as a JSON string.","required":true,"schema":{"type":"string"},"example":[{"$match":{"status":"active"}},{"$group":{"_id":"$category","total":{"$sum":1}}}]},{"name":"sort","in":"query","description":"The sorting criteria as a JSON string.","required":true,"schema":{"type":"string"},"example":{"name":1}},{"name":"skip","in":"query","description":"The number of documents to skip.","required":true,"schema":{"type":"integer"},"example":0},{"name":"limit","in":"query","description":"The maximum number of documents to retrieve.","required":true,"schema":{"type":"integer"},"example":10}],"responses":{"200":{"description":"Successfully performed aggregation on the MongoDB collection.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input parameters, query filters, or aggregation pipeline.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred while processing the aggregation query.","content":{"application/json":{}}}}}},"/2/dateEnrich":{"get":{"tags":["Data Munging Engine"],"summary":"Enrich Date Features in MongoDB (with Find Criteria)","description":"Extracts and enriches features from a date field (attribute) in a MongoDB collection. The attribute format is expected to be `DATEFIELD=ddMMMyyyy hh:mm:ssZ`. Only documents matching the provided find criteria will be processed.","operationId":"dateEnrich2","parameters":[{"name":"mongodb","in":"query","description":"The name of the MongoDB database to query.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where date enrichment is applied.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"The attribute to extract and enrich features from. It should follow the format `DATEFIELD=ddMMMyyyy hh:mm:ssZ`.","required":true,"schema":{"type":"string"},"example":"createdDate"},{"name":"find","in":"query","description":"The MongoDB find criteria to filter which documents to process (in JSON format).","required":true,"schema":{"type":"string"},"example":{"status":"active"}}],"responses":{"200":{"description":"Date enrichment process completed successfully.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the date enrichment process.","content":{"application/json":{}}}}}},"/2/concatColumns":{"get":{"tags":["Data Munging Engine"],"summary":"Concatenate Two Columns and Create a New Feature with a Separator","description":"Concatenates two columns (fields) in a MongoDB collection using a specified separator and creates a new feature (column). The new field is specified using the `attribute` parameter in the format `NEWFIELD=FIELD1,FIELD2`.","operationId":"concatTwoColumns2","parameters":[{"name":"mongodb","in":"query","description":"The MongoDB database name.","required":true,"schema":{"type":"string"},"example":"exampleDatabase"},{"name":"collection","in":"query","description":"The MongoDB collection where the operation is performed.","required":true,"schema":{"type":"string"},"example":"exampleCollection"},{"name":"attribute","in":"query","description":"Specifies the new field and the fields to concatenate in the format `NEWFIELD=FIELD1,FIELD2`.","required":true,"schema":{"type":"string"},"example":"fullName=firstName,lastName"},{"name":"separator","in":"query","description":"The separator to use between concatenated values.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Columns concatenated successfully with the specified separator, and the new feature was created.","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid or missing input parameters.","content":{"application/json":{}}},"500":{"description":"Internal server error occurred during the concatenation process.","content":{"application/json":{}}}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["MCP OAuth"],"summary":"Protected Resource Metadata (root)","description":"Returns OAuth 2.0 Protected Resource Metadata (RFC 9728) for MCP client authorization server discovery.","operationId":"getProtectedResourceMetadata","responses":{"200":{"description":"Protected resource metadata","content":{"application/json":{"example":{"resource":"https://modelingserver.ecosystem.ai/api","authorization_servers":["https://modelingserver.ecosystem.ai/api"],"scopes_supported":["mcp:tools","mcp:read","mcp:write"],"bearer_methods_supported":["header"]}}}}}}},"/.well-known/oauth-protected-resource/**":{"get":{"tags":["MCP OAuth"],"summary":"Protected Resource Metadata (path-specific)","description":"Returns OAuth 2.0 Protected Resource Metadata for a specific MCP server path.","operationId":"getProtectedResourceMetadataWithPath","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"tags":["MCP OAuth"],"summary":"OAuth Authorization Server Metadata","description":"Returns OAuth 2.0 Authorization Server Metadata (RFC 8414) for MCP client discovery.","operationId":"getAuthorizationServerMetadata","responses":{"200":{"description":"Authorization server metadata","content":{"application/json":{"example":{"issuer":"https://modelingserver.ecosystem.ai","authorization_endpoint":"https://modelingserver.ecosystem.ai/oauth/authorize","token_endpoint":"https://modelingserver.ecosystem.ai/oauth/token","registration_endpoint":"https://modelingserver.ecosystem.ai/oauth/register","response_types_supported":["code"],"grant_types_supported":["authorization_code","refresh_token"],"code_challenge_methods_supported":["S256"],"token_endpoint_auth_methods_supported":["client_secret_post","client_secret_basic"]}}}}}}},"/.well-known/oauth-authorization-server/**":{"get":{"tags":["MCP OAuth"],"operationId":"getAuthorizationServerMetadataWithPath","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/notifications/{notificationId}":{"delete":{"tags":["notifications-controller"],"operationId":"clearNotification","parameters":[{"name":"notificationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/modeling/tracking/admin/hosting/profiles/{profileId}":{"delete":{"tags":["Modeling: Tracking & Analytics"],"summary":"Delete a platform hosting profile (admin)","operationId":"deletePlatformHostingProfile","parameters":[{"name":"profileId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/logs":{"delete":{"tags":["Modeling: Tracking & Analytics"],"summary":"Delete all hosting diagnostics (admin)","description":"Deletes hosted_app job documents and hosting-category audit logs. Does not delete hosted apps or cloud resources.","operationId":"deleteHostingLogs","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting/apps/{hostingAppId}":{"delete":{"tags":["Modeling: Tracking & Analytics"],"summary":"Purge a terminated hosted app record (admin)","description":"Removes the Mongo hosted_app document. Only allowed when status=terminated; use the delete-job endpoint first to tear down cloud resources.","operationId":"purgeAdminHostedApp","parameters":[{"name":"hostingAppId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/tracking/admin/hosting-access/{requestId}":{"delete":{"tags":["Modeling: Tracking & Analytics"],"summary":"Delete hosting access request (admin)","operationId":"deleteHostingAccessRequest","parameters":[{"name":"requestId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/modeling/storage/uploads/{filename}":{"delete":{"tags":["Modeling: Storage & Generated Apps"],"summary":"Delete Uploaded File","description":"Delete an uploaded file from storage.","operationId":"deleteUploadedFile","parameters":[{"name":"filename","in":"path","description":"The filename to delete","required":true,"schema":{"type":"string"},"example":"source.zip"}],"responses":{"200":{"description":"File deleted","content":{"application/json":{"example":{"message":"Deleted successfully","filename":"source.zip"}}}},"404":{"description":"File not found","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/file":{"delete":{"tags":["Data Management Engine: Files"],"operationId":"deleteFile_1","parameters":[{"name":"absolutePath","in":"query","required":false,"schema":{"type":"string","default":"./"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/delete":{"delete":{"tags":["AI Services API","LLM Generative Services"],"summary":"Delete a model","description":"Proxies to Ollama /api/delete. Permanent ecosystem models cannot be deleted.","operationId":"deleteModel","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"Model deleted","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Cannot delete permanent model","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deleteUserDeployments/{deployments_id}":{"delete":{"tags":["Prediction Engine"],"operationId":"deleteUserDeployments","parameters":[{"name":"deployments_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deletePredictionProject/{project_id}":{"delete":{"tags":["Prediction Engine"],"operationId":"deletePredictionProject","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deletePrediction/{predict_id}":{"delete":{"tags":["Prediction Engine"],"operationId":"deletePrediction","parameters":[{"name":"predict_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deleteModel/{model_id}":{"delete":{"tags":["Prediction Engine"],"operationId":"deleteModel_1","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/deleteFrame":{"delete":{"tags":["Worker: H2O"],"summary":"Delete a data frame","description":"Deletes a specific data frame based on the provided frame ID.","operationId":"deleteFrame","parameters":[{"name":"frameId","in":"query","description":"The ID of the data frame to delete.","required":true,"example":"frame_123"},{"name":"frame","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully deleted the data frame.","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Data frame not found.","content":{"application/json":{}}},"400":{"description":"Invalid frame ID or error during deletion.","content":{"application/json":{}}}}}},"/deleteAnalysis/{analysis_id}":{"delete":{"tags":["Prediction Engine"],"operationId":"deleteAnalysis","parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AddressDTO":{"type":"object","properties":{"street":{"type":"string"},"city":{"type":"string"},"zipCode":{"type":"string"},"lat":{"type":"number","format":"double"},"lng":{"type":"number","format":"double"}}},"Settings":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"themeName":{"type":"string"}}},"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"login":{"type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"age":{"type":"integer","format":"int32"},"address":{"$ref":"#/components/schemas/AddressDTO"},"roles":{"type":"array","items":{"type":"string"},"uniqueItems":true},"settings":{"$ref":"#/components/schemas/Settings"},"imageBase64":{"type":"string"},"password":{"type":"string","writeOnly":true}}},"Image":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"imageBytes":{"type":"string","format":"byte"}}},"Tokens":{"type":"object","properties":{"expires_in":{"type":"integer","format":"int64"},"access_token":{"type":"string"},"refresh_token":{"type":"string"}}},"LoginDTO":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"}}},"CreateSessionResponse":{"type":"object","properties":{"sessionId":{"type":"string"}}},"MessageRequest":{"type":"object","properties":{"prompt":{"type":"string","minLength":1},"projectId":{"type":"string"},"projectName":{"type":"string"}},"required":["prompt"]},"TimeSeriesModel":{"type":"object","properties":{"forecastPeriod":{"type":"integer","format":"int32"},"tsdata":{"type":"array","items":{"type":"number","format":"double"}}}},"ArimaParameterModel":{"type":"object","properties":{"p":{"type":"integer","format":"int32"},"d":{"type":"integer","format":"int32"},"q":{"type":"integer","format":"int32"},"P":{"type":"integer","format":"int32"},"D":{"type":"integer","format":"int32"},"Q":{"type":"integer","format":"int32"},"m":{"type":"integer","format":"int32"},"newOperatorMA":{"$ref":"#/components/schemas/BackShift"},"offsetsAR":{"type":"array","items":{"type":"integer","format":"int32"}},"offsetsMA":{"type":"array","items":{"type":"integer","format":"int32"}},"degreeP":{"type":"integer","format":"int32"},"degreeQ":{"type":"integer","format":"int32"},"numParamsP":{"type":"integer","format":"int32"},"numParamsQ":{"type":"integer","format":"int32"},"lastIntegrateSeasonal":{"type":"array","items":{"type":"number","format":"double"}},"lastIntegrateNonSeasonal":{"type":"array","items":{"type":"number","format":"double"}},"lastDifferenceSeasonal":{"type":"array","items":{"type":"number","format":"double"}},"lastDifferenceNonSeasonal":{"type":"array","items":{"type":"number","format":"double"}},"paramsFromVector":{"writeOnly":true},"paramsIntoVector":{},"currentARCoefficients":{"type":"array","items":{"type":"number","format":"double"}},"currentMACoefficients":{"type":"array","items":{"type":"number","format":"double"}},"newOperatorAR":{"$ref":"#/components/schemas/BackShift"}}},"BackShift":{"type":"object","properties":{"degree":{"type":"integer","format":"int32"},"coefficientsFlattened":{"type":"array","items":{"type":"number","format":"double"}},"allParam":{"type":"array","items":{"type":"number","format":"double"}}}},"ForecastResultModel":{"type":"object","properties":{"forecast":{"type":"array","items":{"type":"number","format":"double"}},"getupperBound":{"type":"array","items":{"type":"number","format":"double"}},"getlowerBound":{"type":"array","items":{"type":"number","format":"double"}},"maxNormalizedVariance":{"type":"number","format":"double"},"aic":{"type":"number","format":"double"},"rmse":{"type":"number","format":"double"},"sigma2AndPredicationInterval":{"$ref":"#/components/schemas/ArimaParameterModel"}}},"SseEmitter":{"type":"object","properties":{"timeout":{"type":"integer","format":"int64"}}},"StudioMessage":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string"},"content":{"type":"string"},"timestamp":{"type":"string"}}},"TechnicalAssistantMessageRequest":{"type":"object","properties":{"prompt":{"type":"string","minLength":1},"page":{"type":"string","minLength":1},"diagramType":{"type":"string"},"actionHint":{"type":"string"},"projectId":{"type":"string"},"projectName":{"type":"string"},"context":{"type":"object","additionalProperties":{}},"recentMessages":{"type":"array","items":{"$ref":"#/components/schemas/StudioMessage"}}},"required":["page","prompt"]},"TechnicalAssistantMessageResponse":{"type":"object","properties":{"assistantText":{"type":"string"},"rawContent":{"type":"string"},"usedPromptIds":{"type":"array","items":{"type":"string"}},"mcpServer":{"type":"string"},"executedTool":{"type":"string"},"routingReason":{"type":"string"},"resolvedProjectId":{"type":"string"},"resolvedProjectName":{"type":"string"}}},"JsonNode":{},"McpRequest":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"$ref":"#/components/schemas/JsonNode"}}},"MeterEventRequest":{"type":"object","description":"Request to record metered token usage","properties":{"stripeCustomerId":{"type":"string","description":"Stripe customer ID","example":"cus_xxx"},"tokenCount":{"type":"integer","format":"int64","description":"Number of tokens used (whole numbers only)","example":1000000},"idempotencyKey":{"type":"string","description":"Unique idempotency key to prevent duplicate charges","example":"req-uuid-12345"},"timestamp":{"type":"integer","format":"int64","description":"Optional Unix timestamp (seconds). Defaults to current time if not provided."}},"required":["stripeCustomerId","tokenCount"]},"MeterEventResponse":{"type":"object","description":"Response from recording a metered usage event","properties":{"success":{"type":"boolean","description":"Whether the meter event was successfully recorded"},"eventId":{"type":"string","description":"Stripe meter event identifier"},"idempotencyKey":{"type":"string","description":"The idempotency key used for this event"},"customerId":{"type":"string","description":"The customer ID the event was recorded for"},"tokenCount":{"type":"integer","format":"int64","description":"The token count that was recorded"},"timestamp":{"type":"integer","format":"int64","description":"Unix timestamp when the event was recorded"},"error":{"type":"string","description":"Error message if the operation failed"}}},"SignUpDTO":{"type":"object","properties":{"fullName":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"confirmPassword":{"type":"string"}}},"ResponseMessage":{"type":"object","properties":{"message":{"type":"string"}}},"RestorePasswordDTO":{"type":"object","properties":{"token":{"type":"string"},"newPassword":{"type":"string"},"confirmPassword":{"type":"string"}}},"ResetPasswordDTO":{"type":"object","properties":{"password":{"type":"string"},"confirmPassword":{"type":"string"}}},"RequestPasswordDTO":{"type":"object","properties":{"email":{"type":"string"}}},"RefreshTokenDTO":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/Tokens"}}},"UsersGridFilter":{"type":"object","properties":{"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"sortBy":{"type":"string"},"orderBy":{"type":"string"},"filterByfirstName":{"type":"string"},"filterBylastName":{"type":"string"},"filterBylogin":{"type":"string"},"filterByemail":{"type":"string"},"filterByage":{"type":"string"},"filterBystreet":{"type":"string"},"filterBycity":{"type":"string"},"filterByzipcode":{"type":"string"}}},"GridDataUserDTO":{"type":"object","properties":{"totalCount":{"type":"integer","format":"int64"},"items":{"type":"array","items":{"$ref":"#/components/schemas/UserDTO"}}}},"NotificationsResponse":{"type":"object","properties":{"notifications":{"type":"array","items":{"type":"object","additionalProperties":{}}},"hasMore":{"type":"boolean"}}},"JSONObject":{"type":"object","properties":{"empty":{"type":"boolean"}}},"ApplicationContext":{"type":"object","properties":{"parent":{},"id":{"type":"string"},"displayName":{"type":"string"},"autowireCapableBeanFactory":{"$ref":"#/components/schemas/AutowireCapableBeanFactory"},"applicationName":{"type":"string"},"startupDate":{"type":"integer","format":"int64"},"environment":{"$ref":"#/components/schemas/Environment"},"beanDefinitionNames":{"type":"array","items":{"type":"string"}},"beanDefinitionCount":{"type":"integer","format":"int32"},"parentBeanFactory":{"$ref":"#/components/schemas/BeanFactory"},"classLoader":{"type":"object","properties":{"name":{"type":"string"},"registeredAsParallelCapable":{"type":"boolean"},"parent":{"type":"object","properties":{"name":{"type":"string"},"registeredAsParallelCapable":{"type":"boolean"},"unnamedModule":{"type":"object","properties":{"name":{"type":"string"},"descriptor":{"type":"object","properties":{"open":{"type":"boolean"},"automatic":{"type":"boolean"}}},"named":{"type":"boolean"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"packages":{"type":"array","items":{"type":"string"},"uniqueItems":true},"layer":{}}},"definedPackages":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"sealed":{"type":"boolean"},"specificationTitle":{"type":"string"},"specificationVersion":{"type":"string"},"specificationVendor":{"type":"string"},"implementationTitle":{"type":"string"},"implementationVersion":{"type":"string"},"implementationVendor":{"type":"string"}}}},"defaultAssertionStatus":{"type":"boolean","writeOnly":true}}},"unnamedModule":{"type":"object","properties":{"name":{"type":"string"},"descriptor":{"type":"object","properties":{"open":{"type":"boolean"},"automatic":{"type":"boolean"}}},"named":{"type":"boolean"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"packages":{"type":"array","items":{"type":"string"},"uniqueItems":true},"layer":{}}},"definedPackages":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"sealed":{"type":"boolean"},"specificationTitle":{"type":"string"},"specificationVersion":{"type":"string"},"specificationVendor":{"type":"string"},"implementationTitle":{"type":"string"},"implementationVersion":{"type":"string"},"implementationVendor":{"type":"string"}}}},"defaultAssertionStatus":{"type":"boolean","writeOnly":true}}}}},"AutowireCapableBeanFactory":{},"BeanFactory":{},"Environment":{"type":"object","properties":{"activeProfiles":{"type":"array","items":{"type":"string"}},"defaultProfiles":{"type":"array","items":{"type":"string"}}}},"FilterRegistration":{"type":"object","properties":{"servletNameMappings":{"type":"array","items":{"type":"string"}},"urlPatternMappings":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"className":{"type":"string"},"initParameters":{"type":"object","additionalProperties":{"type":"string"}}}},"HttpStatusCode":{"type":"object","properties":{"error":{"type":"boolean"},"is4xxClientError":{"type":"boolean"},"is5xxServerError":{"type":"boolean"},"is1xxInformational":{"type":"boolean"},"is2xxSuccessful":{"type":"boolean"},"is3xxRedirection":{"type":"boolean"}}},"JspConfigDescriptor":{"type":"object","properties":{"taglibs":{"type":"array","items":{"$ref":"#/components/schemas/TaglibDescriptor"}},"jspPropertyGroups":{"type":"array","items":{"$ref":"#/components/schemas/JspPropertyGroupDescriptor"}}}},"JspPropertyGroupDescriptor":{"type":"object","properties":{"buffer":{"type":"string"},"errorOnUndeclaredNamespace":{"type":"string"},"deferredSyntaxAllowedAsLiteral":{"type":"string"},"trimDirectiveWhitespaces":{"type":"string"},"errorOnELNotFound":{"type":"string"},"scriptingInvalid":{"type":"string"},"elIgnored":{"type":"string"},"pageEncoding":{"type":"string"},"isXml":{"type":"string"},"includePreludes":{"type":"array","items":{"type":"string"}},"includeCodas":{"type":"array","items":{"type":"string"}},"defaultContentType":{"type":"string"},"urlPatterns":{"type":"array","items":{"type":"string"}}}},"RedirectView":{"type":"object","properties":{"applicationContext":{"$ref":"#/components/schemas/ApplicationContext"},"servletContext":{"$ref":"#/components/schemas/ServletContext","writeOnly":true},"contentType":{"type":"string"},"requestContextAttribute":{"type":"string"},"staticAttributes":{"type":"object","additionalProperties":{}},"exposePathVariables":{"type":"boolean"},"exposeContextBeansAsAttributes":{"type":"boolean","writeOnly":true},"exposedContextBeanNames":{"type":"array","items":{"type":"string"},"writeOnly":true},"beanName":{"type":"string"},"url":{"type":"string"},"contextRelative":{"type":"boolean","writeOnly":true},"http10Compatible":{"type":"boolean","writeOnly":true},"exposeModelAttributes":{"type":"boolean","writeOnly":true},"encodingScheme":{"type":"string","writeOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode","writeOnly":true},"expandUriTemplateVariables":{"type":"boolean","writeOnly":true},"propagateQueryParams":{"type":"boolean","writeOnly":true},"hosts":{"type":"array","items":{"type":"string"}},"propagateQueryProperties":{"type":"boolean"},"redirectView":{"type":"boolean"},"attributesCSV":{"type":"string","writeOnly":true},"attributes":{"type":"object","additionalProperties":{"type":"string"},"writeOnly":true},"attributesMap":{"type":"object","additionalProperties":{}}}},"ServletContext":{"type":"object","properties":{"classLoader":{"type":"object","properties":{"name":{"type":"string"},"registeredAsParallelCapable":{"type":"boolean"},"parent":{"type":"object","properties":{"name":{"type":"string"},"registeredAsParallelCapable":{"type":"boolean"},"unnamedModule":{"type":"object","properties":{"name":{"type":"string"},"descriptor":{"type":"object","properties":{"open":{"type":"boolean"},"automatic":{"type":"boolean"}}},"named":{"type":"boolean"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"packages":{"type":"array","items":{"type":"string"},"uniqueItems":true},"layer":{}}},"definedPackages":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"sealed":{"type":"boolean"},"specificationTitle":{"type":"string"},"specificationVersion":{"type":"string"},"specificationVendor":{"type":"string"},"implementationTitle":{"type":"string"},"implementationVersion":{"type":"string"},"implementationVendor":{"type":"string"}}}},"defaultAssertionStatus":{"type":"boolean","writeOnly":true}}},"unnamedModule":{"type":"object","properties":{"name":{"type":"string"},"descriptor":{"type":"object","properties":{"open":{"type":"boolean"},"automatic":{"type":"boolean"}}},"named":{"type":"boolean"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"packages":{"type":"array","items":{"type":"string"},"uniqueItems":true},"layer":{}}},"definedPackages":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"annotations":{"type":"array","items":{}},"declaredAnnotations":{"type":"array","items":{}},"sealed":{"type":"boolean"},"specificationTitle":{"type":"string"},"specificationVersion":{"type":"string"},"specificationVendor":{"type":"string"},"implementationTitle":{"type":"string"},"implementationVersion":{"type":"string"},"implementationVendor":{"type":"string"}}}},"defaultAssertionStatus":{"type":"boolean","writeOnly":true}}},"majorVersion":{"type":"integer","format":"int32"},"minorVersion":{"type":"integer","format":"int32"},"sessionTrackingModes":{"type":"array","items":{"type":"string","enum":["COOKIE","URL","SSL"]},"uniqueItems":true,"writeOnly":true},"sessionCookieConfig":{"$ref":"#/components/schemas/SessionCookieConfig"},"virtualServerName":{"type":"string"},"sessionTimeout":{"type":"integer","format":"int32"},"attributeNames":{},"contextPath":{"type":"string"},"initParameterNames":{},"serverInfo":{"type":"string"},"requestCharacterEncoding":{"type":"string"},"responseCharacterEncoding":{"type":"string"},"effectiveMajorVersion":{"type":"integer","format":"int32"},"effectiveMinorVersion":{"type":"integer","format":"int32"},"servletContextName":{"type":"string"},"servletRegistrations":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ServletRegistration"}},"filterRegistrations":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FilterRegistration"}},"defaultSessionTrackingModes":{"type":"array","items":{"type":"string","enum":["COOKIE","URL","SSL"]},"uniqueItems":true},"effectiveSessionTrackingModes":{"type":"array","items":{"type":"string","enum":["COOKIE","URL","SSL"]},"uniqueItems":true},"jspConfigDescriptor":{"$ref":"#/components/schemas/JspConfigDescriptor"}}},"ServletRegistration":{"type":"object","properties":{"mappings":{"type":"array","items":{"type":"string"}},"runAsRole":{"type":"string"},"name":{"type":"string"},"className":{"type":"string"},"initParameters":{"type":"object","additionalProperties":{"type":"string"}}}},"SessionCookieConfig":{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string"},"attributes":{"type":"object","additionalProperties":{"type":"string"}},"comment":{"type":"string","deprecated":true},"maxAge":{"type":"integer","format":"int32"},"secure":{"type":"boolean"},"domain":{"type":"string"},"httpOnly":{"type":"boolean"}}},"TaglibDescriptor":{"type":"object","properties":{"taglibURI":{"type":"string"},"taglibLocation":{"type":"string"}}}},"securitySchemes":{"JWT":{"type":"http","name":"JWT","in":"header","scheme":"bearer","bearerFormat":"JWT"}}}}