{"openapi":"3.0.4","info":{"title":"CluedIn REST API — AI","description":"AI agents, jobs, skills, and Copilot.","version":"v1"},"tags":[{"name":"AIAgent"},{"name":"AiJob"},{"name":"AiJobSkill"},{"name":"Copilot"}],"paths":{"/api/aiagent":{"get":{"tags":["AIAgent"],"summary":"List AI agents","parameters":[{"name":"metadataFilter","in":"query","style":"deepObject","schema":{"type":"object","additionalProperties":{"type":"string"}},"description":"Optional key/value metadata filters as repeated `metadataFilter[key]=value` parameters."}],"responses":{"200":{"description":"OK"}},"description":"Returns AI agents in the organisation, augmented with avatar image, total job costs in the deployment currency, count of active jobs, and count of pending non-dry-run results. Optional `metadataFilter` narrows by key/value metadata pairs. Requires the Management.AiAgents RACI claim."},"post":{"tags":["AIAgent"],"summary":"Create AI agent","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Creates an AI agent with the supplied name, description, instructions, and metadata. Records an audit-log change set and adds the calling user as the agent's owner. Requires the Management.AiAgents RACI claim."}},"/api/v1/aiagent":{"get":{"tags":["AIAgent"],"summary":"List AI agents","parameters":[{"name":"metadataFilter","in":"query","style":"deepObject","schema":{"type":"object","additionalProperties":{"type":"string"}},"description":"Optional key/value metadata filters as repeated `metadataFilter[key]=value` parameters."}],"responses":{"200":{"description":"OK"}},"description":"Returns AI agents in the organisation, augmented with avatar image, total job costs in the deployment currency, count of active jobs, and count of pending non-dry-run results. Optional `metadataFilter` narrows by key/value metadata pairs. Requires the Management.AiAgents RACI claim."},"post":{"tags":["AIAgent"],"summary":"Create AI agent","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Creates an AI agent with the supplied name, description, instructions, and metadata. Records an audit-log change set and adds the calling user as the agent's owner. Requires the Management.AiAgents RACI claim."}},"/api/aiagent/{id}":{"get":{"tags":["AIAgent"],"summary":"Get AI agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI agent identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns a single AI agent with name, description, instructions, base64 avatar, and metadata. Requires the Management.AiAgents RACI claim."},"put":{"tags":["AIAgent"],"summary":"Update AI agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI agent identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Updates an AI agent's name, description, instructions, and metadata. Records an audit-log change set comparing the before and after state. Requires the Management.AiAgents RACI claim."},"delete":{"tags":["AIAgent"],"summary":"Delete AI agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI agent identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes an AI agent. Returns 400 with validation details when the agent is still linked to one or more AI jobs (delete the jobs first). Requires the Management.AiAgents RACI claim."}},"/api/v1/aiagent/{id}":{"get":{"tags":["AIAgent"],"summary":"Get AI agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI agent identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns a single AI agent with name, description, instructions, base64 avatar, and metadata. Requires the Management.AiAgents RACI claim."},"put":{"tags":["AIAgent"],"summary":"Update AI agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI agent identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Updates an AI agent's name, description, instructions, and metadata. Records an audit-log change set comparing the before and after state. Requires the Management.AiAgents RACI claim."},"delete":{"tags":["AIAgent"],"summary":"Delete AI agent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI agent identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes an AI agent. Returns 400 with validation details when the agent is still linked to one or more AI jobs (delete the jobs first). Requires the Management.AiAgents RACI claim."}},"/api/aijob":{"get":{"tags":["AiJob"],"summary":"List AI jobs","parameters":[{"name":"metadataFilter","in":"query","style":"deepObject","schema":{"type":"object","additionalProperties":{"type":"string"}},"description":"Optional key/value metadata filters as repeated `metadataFilter[key]=value` parameters."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel"}}}}}},"description":"Returns AI Agent jobs, including enabled state, scheduled execution metadata, endpoint cost rollups, metadata, and count of pending non-dry-run results."},"post":{"tags":["AiJob"],"summary":"Create AI job","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Creates an AI Agent job with prompt, allowed skills, endpoint, schedule settings, data sources, metadata, and enabled state. Enabled scheduled jobs are scheduled immediately."}},"/api/v1/aijob":{"get":{"tags":["AiJob"],"summary":"List AI jobs","parameters":[{"name":"metadataFilter","in":"query","style":"deepObject","schema":{"type":"object","additionalProperties":{"type":"string"}},"description":"Optional key/value metadata filters as repeated `metadataFilter[key]=value` parameters."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel"}}}}}},"description":"Returns AI Agent jobs, including enabled state, scheduled execution metadata, endpoint cost rollups, metadata, and count of pending non-dry-run results."},"post":{"tags":["AiJob"],"summary":"Create AI job","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Creates an AI Agent job with prompt, allowed skills, endpoint, schedule settings, data sources, metadata, and enabled state. Enabled scheduled jobs are scheduled immediately."}},"/api/aijob/{id}":{"get":{"tags":["AiJob"],"summary":"Get AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Returns a single AI Agent job with prompt, data sources, endpoint/deployment cost settings, result summary, provider definition, and metadata."},"put":{"tags":["AiJob"],"summary":"Update AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Replaces an AI job configuration (prompt, metadata, allowed skills, schedule, endpoint, enabled state, data-source configuration). Scheduling is updated to match the saved state."},"patch":{"tags":["AiJob"],"summary":"Patch AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Applies a JSON Patch document to an AI job update model, then saves the resulting job configuration. Useful when only a few fields need to change."},"delete":{"tags":["AiJob"],"summary":"Delete AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes an AI job only when it has no approved results. Jobs with approved results are retained for auditability."}},"/api/v1/aijob/{id}":{"get":{"tags":["AiJob"],"summary":"Get AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Returns a single AI Agent job with prompt, data sources, endpoint/deployment cost settings, result summary, provider definition, and metadata."},"put":{"tags":["AiJob"],"summary":"Update AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Replaces an AI job configuration (prompt, metadata, allowed skills, schedule, endpoint, enabled state, data-source configuration). Scheduling is updated to match the saved state."},"patch":{"tags":["AiJob"],"summary":"Patch AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel"}}}}},"description":"Applies a JSON Patch document to an AI job update model, then saves the resulting job configuration. Useful when only a few fields need to change."},"delete":{"tags":["AiJob"],"summary":"Delete AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes an AI job only when it has no approved results. Jobs with approved results are retained for auditability."}},"/api/aijob/summary":{"get":{"tags":["AiJob"],"summary":"Get AI jobs summary","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"}}}}},"description":"Returns cross-job summary information such as approval rate for non-dry-run AI job results."}},"/api/v1/aijob/summary":{"get":{"tags":["AiJob"],"summary":"Get AI jobs summary","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"}}}}},"description":"Returns cross-job summary information such as approval rate for non-dry-run AI job results."}},"/api/aijob/{id}/preview":{"post":{"tags":["AiJob"],"summary":"Preview AI job input","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel"}}}}},"description":"Builds a preview of the prompt input for a job using current or draft settings. Useful for validating that the data source returns rows and that the prompt context is shaped correctly."}},"/api/v1/aijob/{id}/preview":{"post":{"tags":["AiJob"],"summary":"Preview AI job input","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel"}}}}},"description":"Builds a preview of the prompt input for a job using current or draft settings. Useful for validating that the data source returns rows and that the prompt context is shaped correctly."}},"/api/aijob/{id}/chatstream":{"get":{"tags":["AiJob"],"summary":"Get latest job chat stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"offset","in":"query","schema":{"type":"integer","format":"int64"},"description":"Optional stream offset."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}}},"description":"Returns stream items from the latest job run chat stream, optionally after an offset."}},"/api/v1/aijob/{id}/chatstream":{"get":{"tags":["AiJob"],"summary":"Get latest job chat stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"offset","in":"query","schema":{"type":"integer","format":"int64"},"description":"Optional stream offset."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}}},"description":"Returns stream items from the latest job run chat stream, optionally after an offset."}},"/api/aijob/{id}/results/{type}":{"get":{"tags":["AiJob"],"summary":"List AI job results by type","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"Result type."},{"name":"state","in":"query","schema":{"type":"string"},"description":"Optional result state filter (`Pending`, `Approved`, `Rejected`)."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction."},{"name":"searchName","in":"query","schema":{"type":"string"},"description":"Optional text filter over result description."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged non-dry-run job results of a given result type, filtered by state and search text, with access-control filtering applied by skill."}},"/api/v1/aijob/{id}/results/{type}":{"get":{"tags":["AiJob"],"summary":"List AI job results by type","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"Result type."},{"name":"state","in":"query","schema":{"type":"string"},"description":"Optional result state filter (`Pending`, `Approved`, `Rejected`)."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction."},{"name":"searchName","in":"query","schema":{"type":"string"},"description":"Optional text filter over result description."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged non-dry-run job results of a given result type, filtered by state and search text, with access-control filtering applied by skill."}},"/api/aijob/{id}/results/{type}/{resultId}":{"get":{"tags":["AiJob"],"summary":"Get AI job result","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"Result type."},{"name":"resultId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Result identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel"}}}}},"description":"Returns one non-dry-run result for the job and result type."}},"/api/v1/aijob/{id}/results/{type}/{resultId}":{"get":{"tags":["AiJob"],"summary":"Get AI job result","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"Result type."},{"name":"resultId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Result identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel"}}}}},"description":"Returns one non-dry-run result for the job and result type."}},"/api/aijob/{id}/runs":{"get":{"tags":["AiJob"],"summary":"List AI job runs","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runType","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunTypeFilter"},"description":"Run type filter, for example `TestRun` or `Normal`."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number. Defaults to 1."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size. Defaults to 10."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction. Defaults to `Ascending`."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged job runs, filtered by run type (normal, test/dry, or all)."}},"/api/v1/aijob/{id}/runs":{"get":{"tags":["AiJob"],"summary":"List AI job runs","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runType","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunTypeFilter"},"description":"Run type filter, for example `TestRun` or `Normal`."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number. Defaults to 1."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size. Defaults to 10."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction. Defaults to `Ascending`."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged job runs, filtered by run type (normal, test/dry, or all)."}},"/api/aijob/{jobId}/runs/{runId}/chats":{"get":{"tags":["AiJob"],"summary":"List AI job run chats","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job run identifier."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction."},{"name":"includeOnlyChatsWithNoResults","in":"query","schema":{"type":"boolean","default":false},"description":"When true, return only chat rows with zero results."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged chat records for a specific AI job run, optionally restricted to chats that produced no results."}},"/api/v1/aijob/{jobId}/runs/{runId}/chats":{"get":{"tags":["AiJob"],"summary":"List AI job run chats","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job run identifier."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction."},{"name":"includeOnlyChatsWithNoResults","in":"query","schema":{"type":"boolean","default":false},"description":"When true, return only chat rows with zero results."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged chat records for a specific AI job run, optionally restricted to chats that produced no results."}},"/api/aijob/{jobId}/runs/{runId}/chats/{chatId}":{"get":{"tags":["AiJob"],"summary":"Get AI job run chat","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job run identifier."},{"name":"chatId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Chat identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"}}}}},"description":"Returns one chat record from a job run."}},"/api/v1/aijob/{jobId}/runs/{runId}/chats/{chatId}":{"get":{"tags":["AiJob"],"summary":"Get AI job run chat","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job run identifier."},{"name":"chatId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Chat identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"}}}}},"description":"Returns one chat record from a job run."}},"/api/aijob/{id}/runs/{runId}/results":{"get":{"tags":["AiJob"],"summary":"List AI job run results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job run identifier."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged results generated by a specific job run, with access-control filtering applied by skill."}},"/api/v1/aijob/{id}/runs/{runId}/results":{"get":{"tags":["AiJob"],"summary":"List AI job run results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job run identifier."},{"name":"pageNumber","in":"query","schema":{"type":"integer","format":"int32","default":1},"description":"1-based page number."},{"name":"pageSize","in":"query","schema":{"type":"integer","format":"int32","default":10},"description":"Page size."},{"name":"sortDirection","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.SortDirection"},"description":"Sort direction."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}},"description":"Returns paged results generated by a specific job run, with access-control filtering applied by skill."}},"/api/aijob/{id}/execution-queue":{"post":{"tags":["AiJob"],"summary":"Run AI job now","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}}}}},"description":"Starts a non-dry-run distributed execution for an enabled and valid AI job. Returns the started distributed job id."}},"/api/v1/aijob/{id}/execution-queue":{"post":{"tags":["AiJob"],"summary":"Run AI job now","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}}}}},"description":"Starts a non-dry-run distributed execution for an enabled and valid AI job. Returns the started distributed job id."}},"/api/aijob/{id}/dry-run":{"post":{"tags":["AiJob"],"summary":"Dry-run AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}}}}},"description":"Runs an AI job as a dry run using draft update settings without committing those settings as the live job configuration."}},"/api/v1/aijob/{id}/dry-run":{"post":{"tags":["AiJob"],"summary":"Dry-run AI job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel"}}}}},"description":"Runs an AI job as a dry run using draft update settings without committing those settings as the live job configuration."}},"/api/aijob/{id}/bulk-result-approval-request":{"put":{"tags":["AiJob"],"summary":"Bulk approve or reject job results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Applies an approval action to all non-dry-run results for a job and returns counts for successful, skipped, and errored items."}},"/api/v1/aijob/{id}/bulk-result-approval-request":{"put":{"tags":["AiJob"],"summary":"Bulk approve or reject job results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Applies an approval action to all non-dry-run results for a job and returns counts for successful, skipped, and errored items."}},"/api/aijob/{id}/results/{type}/approvals":{"post":{"tags":["AiJob"],"summary":"Approve or reject selected job results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"Result type."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Applies an approval action to selected results of the given result type."}},"/api/v1/aijob/{id}/results/{type}/approvals":{"post":{"tags":["AiJob"],"summary":"Approve or reject selected job results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"AI job identifier."},{"name":"type","in":"path","required":true,"schema":{"type":"string"},"description":"Result type."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Applies an approval action to selected results of the given result type."}},"/api/aijobskills":{"get":{"tags":["AiJobSkill"],"summary":"List AI job skills","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel"}}}}}},"description":"Returns AI Agent skills available to the organisation, including skill id, display description, auto-approval state, and supported primary data-source types."}},"/api/v1/aijobskills":{"get":{"tags":["AiJobSkill"],"summary":"List AI job skills","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel"}}}}}},"description":"Returns AI Agent skills available to the organisation, including skill id, display description, auto-approval state, and supported primary data-source types."}},"/api/copilot/getAllChats":{"get":{"tags":["Copilot"],"summary":"List Copilot chat sessions","responses":{"200":{"description":"OK"}},"description":"Returns the calling user's Copilot chat sessions (sorted newest first), each populated with messages."}},"/api/copilot/getChat/{chatId}":{"get":{"tags":["Copilot"],"summary":"Get Copilot chat session","parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Chat session identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns a single Copilot chat session by id along with its messages."}},"/api/copilot/createChatSession":{"post":{"tags":["Copilot"],"summary":"Create Copilot chat session","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Creates a Copilot chat session with the supplied title and language for the calling user."}},"/api/copilot/updateChatSession":{"put":{"tags":["Copilot"],"summary":"Update Copilot chat session","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Updates an existing Copilot chat session (typically its title)."}},"/api/copilot/deleteChatSession/{chatId}":{"delete":{"tags":["Copilot"],"summary":"Delete Copilot chat session","parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Chat session identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes a Copilot chat session."}},"/api/copilot/suggestions":{"post":{"tags":["Copilot"],"summary":"Get Copilot suggested prompts","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.GetSuggestionsModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.GetSuggestionsModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.GetSuggestionsModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.GetSuggestionsModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Returns suggested prompts for the current URL across the user's available Copilot skills, translated into the requested language when needed."}},"/api/copilot/chat/{chatId}/examples":{"get":{"tags":["Copilot"],"summary":"Get Copilot example prompts","parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Chat session identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns grouped example prompts for the chat's language (falling back to English)."}},"/api/copilot/chat":{"post":{"tags":["Copilot"],"summary":"Send Copilot chat message","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.SendChatModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.SendChatModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.SendChatModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Copilot.Models.SendChatModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Adds a user message to a Copilot chat session. The chat continuation runs through SignalR (`CopilotHub`); the HTTP response is 202 Accepted as soon as the message is queued."}},"/api/copilot/reprocess/{chatId}":{"post":{"tags":["Copilot"],"summary":"Reprocess Copilot chat","parameters":[{"name":"chatId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Chat session identifier."}],"responses":{"200":{"description":"OK"}},"description":"Reprocesses the last failed turn in a Copilot chat session. Returns 404 when the chat cannot be found."}}},"components":{"schemas":{"CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.AddAiAgentModel":{"required":["name"],"type":"object","properties":{"name":{"minLength":1,"type":"string"},"description":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiAgents.Models.UpdateAiAgentModel":{"required":["name"],"type":"object","properties":{"name":{"minLength":1,"type":"string"},"description":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobListItemViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"allowedSkills":{"type":"array","items":{"type":"string"},"nullable":true},"enabled":{"type":"boolean"},"aiAgentId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","nullable":true},"modifiedAt":{"type":"string","format":"date-time","nullable":true},"modifiedBy":{"type":"string","nullable":true},"jobProgressId":{"type":"string","format":"uuid","nullable":true},"totalTokenCost":{"type":"number","format":"double"},"costCurrency":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"enableCronSchedule":{"type":"boolean"},"cronSchedule":{"type":"string","nullable":true},"pendingItems":{"type":"integer","format":"int32"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AddAiJobModel":{"required":["name"],"type":"object","properties":{"name":{"minLength":1,"type":"string"},"description":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true},"prompt":{"type":"string","nullable":true},"allowedSkills":{"type":"array","items":{"type":"string"},"nullable":true},"enableCronSchedule":{"type":"boolean"},"cronSchedule":{"type":"string","nullable":true},"endpointId":{"type":"string","format":"uuid"},"aiAgentId":{"type":"string","format":"uuid"},"enabled":{"type":"boolean"},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobDataSourceModel"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"prompt":{"type":"string","nullable":true},"allowedSkills":{"type":"array","items":{"type":"string"},"nullable":true},"enableCronSchedule":{"type":"boolean"},"cronSchedule":{"type":"string","nullable":true},"endpointId":{"type":"string","format":"uuid"},"endpointName":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"aiAgentId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","nullable":true},"modifiedAt":{"type":"string","format":"date-time","nullable":true},"modifiedBy":{"type":"string","nullable":true},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobDataSourceViewModel"},"nullable":true},"resultsSummary":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultsSummaryViewModel"},"jobProgressId":{"type":"string","format":"uuid","nullable":true},"providerDefinitionId":{"type":"string","format":"uuid","nullable":true},"costPerInputToken":{"type":"number","format":"double"},"costPerOutputToken":{"type":"number","format":"double"},"totalTokenCost":{"type":"number","format":"double"},"costCurrency":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.UpdateAiJobModel":{"required":["name"],"type":"object","properties":{"name":{"minLength":1,"type":"string"},"description":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true},"prompt":{"type":"string","nullable":true},"allowedSkills":{"type":"array","items":{"type":"string"},"nullable":true},"enableCronSchedule":{"type":"boolean"},"cronSchedule":{"type":"string","nullable":true},"endpointId":{"type":"string","format":"uuid"},"aiAgentId":{"type":"string","format":"uuid"},"enabled":{"type":"boolean"},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobDataSourceModel"},"nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.JsonPatch.Operations.Operation":{"type":"object","properties":{"operationType":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.OperationType"},"path":{"type":"string","nullable":true},"op":{"type":"string","nullable":true},"from":{"type":"string","nullable":true},"value":{"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel":{"type":"object","properties":{"type":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"count":{"type":"integer","format":"int32"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.GenerateAiJobPreviewModel":{"required":["name"],"type":"object","properties":{"name":{"minLength":1,"type":"string"},"description":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true},"prompt":{"type":"string","nullable":true},"allowedSkills":{"type":"array","items":{"type":"string"},"nullable":true},"enableCronSchedule":{"type":"boolean"},"cronSchedule":{"type":"string","nullable":true},"endpointId":{"type":"string","format":"uuid"},"aiAgentId":{"type":"string","format":"uuid"},"enabled":{"type":"boolean"},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobDataSourceModel"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobPreviewViewModel":{"type":"object","properties":{"input":{"type":"string","nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.StreamItem`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]":{"type":"object","properties":{"item":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel"},"offset":{"type":"integer","format":"int64"}},"additionalProperties":false},"CluedIn.Server.WebApi.Models.SortDirection":{"enum":[0,1],"type":"integer","format":"int32"},"CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]":{"required":["currentPage","data","pageSize","totalCount"],"type":"object","properties":{"totalCount":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32","readOnly":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"runId":{"type":"string","format":"uuid","readOnly":true},"description":{"type":"string","nullable":true,"readOnly":true},"type":{"type":"string","nullable":true,"readOnly":true},"createdAt":{"type":"string","format":"date-time","readOnly":true},"approvedEntityDetails":{"type":"string","nullable":true,"readOnly":true},"model":{"nullable":true,"readOnly":true},"status":{"type":"string","nullable":true,"readOnly":true},"state":{"type":"string","nullable":true,"readOnly":true},"modifiedAt":{"type":"string","format":"date-time","nullable":true,"readOnly":true},"modifiedBy":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"chatId":{"type":"string","format":"uuid","readOnly":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunTypeFilter":{"enum":[0,1,2],"type":"integer","format":"int32"},"CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]":{"required":["currentPage","data","pageSize","totalCount"],"type":"object","properties":{"totalCount":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32","readOnly":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]":{"required":["currentPage","data","pageSize","totalCount"],"type":"object","properties":{"totalCount":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32","readOnly":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"sequenceId":{"type":"integer","format":"int32","readOnly":true},"input":{"type":"string","nullable":true,"readOnly":true},"output":{"type":"string","nullable":true,"readOnly":true},"rawRequest":{"type":"string","nullable":true,"readOnly":true},"rawResponse":{"type":"string","nullable":true,"readOnly":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Models.PaginatedResponse`1[[CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel, CluedIn.Server.WebApi, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]":{"required":["currentPage","data","pageSize","totalCount"],"type":"object","properties":{"totalCount":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32","readOnly":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.RunNowResultModel":{"type":"object","properties":{"jobProgressId":{"type":"string","format":"uuid"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.BulkAiResultApprovalRequestModel":{"required":["action"],"type":"object","properties":{"action":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalAction"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalModel":{"required":["action","results"],"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.ResultApprovalDetails"}},"action":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalAction"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobSkills.Models.SkillModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"autoApprove":{"type":"boolean"},"supportedPrimaryDataSourceTypes":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Copilot.Models.CreateOrUpdateChatSessionModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"currentUrl":{"type":"string","nullable":true},"language":{"type":"string","nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Copilot.Models.GetSuggestionsModel":{"type":"object","properties":{"currentUrl":{"type":"string","nullable":true},"language":{"type":"string","nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Copilot.Models.SendChatModel":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"content":{"type":"string","nullable":true},"currentUrl":{"type":"string","nullable":true},"language":{"type":"string","nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobDataSourceModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"filterRule":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"sample":{"type":"boolean"},"sampleSize":{"maximum":1000,"minimum":0,"type":"integer","format":"int32","nullable":true},"isReferenceData":{"type":"boolean","nullable":true},"dataSetId":{"type":"string","format":"uuid","nullable":true},"vocabularyKeys":{"type":"array","items":{"type":"string"},"nullable":true},"tail":{"type":"boolean"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobDataSourceViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"filterRule":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"sample":{"type":"boolean"},"sampleSize":{"maximum":1000,"minimum":0,"type":"integer","format":"int32","nullable":true},"isReferenceData":{"type":"boolean","nullable":true},"dataSetId":{"type":"string","format":"uuid","nullable":true},"vocabularyKeys":{"type":"array","items":{"type":"string"},"nullable":true},"tail":{"type":"boolean"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultsSummaryViewModel":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultSummaryViewModel"},"nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.JsonPatch.Operations.OperationType":{"enum":[0,1,2,3,4,5,6],"type":"integer","format":"int32"},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobResultListItemViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"runId":{"type":"string","format":"uuid","readOnly":true},"description":{"type":"string","nullable":true,"readOnly":true},"type":{"type":"string","nullable":true,"readOnly":true},"createdAt":{"type":"string","format":"date-time","readOnly":true},"approvedEntityDetails":{"type":"string","nullable":true,"readOnly":true},"model":{"nullable":true,"readOnly":true},"status":{"type":"string","nullable":true,"readOnly":true},"state":{"type":"string","nullable":true,"readOnly":true},"modifiedAt":{"type":"string","format":"date-time","nullable":true,"readOnly":true},"modifiedBy":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"chatId":{"type":"string","format":"uuid","readOnly":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunListItemViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"startedAt":{"type":"string","format":"date-time","readOnly":true},"completedAt":{"type":"string","format":"date-time","nullable":true,"readOnly":true},"state":{"type":"string","nullable":true,"readOnly":true},"count":{"type":"integer","format":"int32","readOnly":true},"createdBy":{"type":"string","format":"uuid","readOnly":true},"jobDetail":{"$ref":"#/components/schemas/CluedIn.Core.Data.Relational.AiJob"},"dryRun":{"type":"boolean","readOnly":true},"chatsWithNoResults":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"readOnly":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunChatListItemViewModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"sequenceId":{"type":"integer","format":"int32","readOnly":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiJobRunResultViewModel":{"type":"object","properties":{"description":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"model":{"nullable":true},"chatId":{"type":"string","format":"uuid"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.AiResultApprovalAction":{"enum":[0,1],"type":"integer","format":"int32"},"CluedIn.Server.WebApi.Controllers.Management.AiJobs.Models.ResultApprovalDetails":{"type":"object","properties":{"resultId":{"type":"string","format":"uuid"},"userOverride":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.JsonPatchDocument"}},"additionalProperties":false},"CluedIn.Core.Rules.QueryBuilder.FilterRule":{"type":"object","properties":{"objectTypeId":{"type":"string","format":"uuid"},"condition":{"type":"string","nullable":true},"field":{"type":"string","nullable":true},"id":{"type":"string","format":"uuid"},"operator":{"type":"string","format":"uuid"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"nullable":true},"type":{"type":"string","nullable":true},"value":{"type":"array","items":{},"nullable":true}},"additionalProperties":false},"CluedIn.Core.Data.Relational.AiJob":{"required":["allowedSkills","createdBy","cronSchedule","description","name","prompt"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"aiAgentId":{"type":"string","format":"uuid"},"name":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true},"prompt":{"minLength":1,"type":"string"},"allowedSkills":{"type":"array","items":{"type":"string"}},"enableCronSchedule":{"type":"boolean"},"cronSchedule":{"minLength":1,"type":"string"},"endpointId":{"type":"string","format":"uuid"},"enabled":{"type":"boolean"},"createdDate":{"type":"string","format":"date-time"},"modifiedDate":{"type":"string","format":"date-time","nullable":true},"createdBy":{"maxLength":450,"minLength":1,"type":"string"},"modifiedBy":{"maxLength":450,"type":"string","nullable":true},"jobId":{"type":"string","format":"uuid","nullable":true},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Data.Relational.AiJobDataSource"},"nullable":true}},"additionalProperties":false},"Microsoft.AspNetCore.JsonPatch.JsonPatchDocument":{"type":"object","properties":{"operations":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation"},"nullable":true,"readOnly":true},"contractResolver":{"$ref":"#/components/schemas/Newtonsoft.Json.Serialization.IContractResolver"}},"additionalProperties":false},"CluedIn.Core.Data.Relational.AiJobDataSource":{"required":["name","type"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"aiJobId":{"type":"string","format":"uuid"},"name":{"minLength":1,"type":"string"},"type":{"minLength":1,"type":"string"},"filterRule":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"sample":{"type":"boolean"},"tail":{"type":"boolean"},"sampleSize":{"type":"integer","format":"int32","nullable":true},"dataSetId":{"type":"string","format":"uuid","nullable":true},"vocabularyKeys":{"type":"array","items":{"type":"string"},"nullable":true},"isReferenceData":{"type":"boolean"}},"additionalProperties":false},"Newtonsoft.Json.Serialization.IContractResolver":{"type":"object","additionalProperties":false}},"securitySchemes":{"Bearer":{"type":"http","description":"Please enter a valid token","scheme":"Bearer"}}}}