{"openapi":"3.0.4","info":{"title":"CluedIn REST API — Streams, connectors & export","description":"Configure, operate, and monitor export streams and the connectors they use.","version":"v1"},"tags":[{"name":"Connector"},{"name":"ConnectorHealth"},{"name":"StreamIngestionLog"},{"name":"StreamLog"},{"name":"StreamMappings"},{"name":"Streams"},{"name":"StreamsVocabularyKeyUsage"}],"paths":{"/api/v1/connector/{providerdefinitionid}/containers":{"get":{"tags":["Connector"],"summary":"List connector containers","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"description":"Returns the containers (tables/folders/datasets, depending on the connector type) available through the supplied connector. Returns 404 if the connector cannot be resolved."}},"/api/connector/{providerdefinitionid}/containers":{"get":{"tags":["Connector"],"summary":"List connector containers","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"description":"Returns the containers (tables/folders/datasets, depending on the connector type) available through the supplied connector. Returns 404 if the connector cannot be resolved."}},"/api/v1/connector/{id}":{"delete":{"tags":["Connector"],"summary":"Delete connector","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Connector identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes a connector by id. Returns 409 Conflict (with a list of the streams currently using it) when the connector cannot be removed because of in-use references, and 404 when the connector cannot be found. The action goes through the RACI approval pipeline for connector deletion."}},"/api/connector/{id}":{"delete":{"tags":["Connector"],"summary":"Delete connector","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Connector identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes a connector by id. Returns 409 Conflict (with a list of the streams currently using it) when the connector cannot be removed because of in-use references, and 404 when the connector cannot be found. The action goes through the RACI approval pipeline for connector deletion."}},"/api/v1/connector/verifyconnection/{providerdefinitionid}":{"get":{"tags":["Connector"],"summary":"Verify saved connector connection","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"description":"Asks the connector behind a stored provider definition to verify its connection. Returns 404 if the connector cannot be found and 500 (problem details) with the connector's error message when verification fails."}},"/api/connector/verifyconnection/{providerdefinitionid}":{"get":{"tags":["Connector"],"summary":"Verify saved connector connection","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"description":"Asks the connector behind a stored provider definition to verify its connection. Returns 404 if the connector cannot be found and 500 (problem details) with the connector's error message when verification fails."}},"/api/v1/connector/verifycredentials/{providerId}":{"post":{"tags":["Connector"],"summary":"Verify connector credentials","parameters":[{"name":"providerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Provider identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"object","additionalProperties":{}}},"application/json":{"schema":{"type":"object","additionalProperties":{}}},"text/json":{"schema":{"type":"object","additionalProperties":{}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK"}},"description":"Asks the connector behind a provider id to verify the supplied authentication data without saving it. The response is the `ConnectionVerificationResult`; errors are returned with HTTP 200 inside the result body for UI display, not as HTTP failures."}},"/api/connector/verifycredentials/{providerId}":{"post":{"tags":["Connector"],"summary":"Verify connector credentials","parameters":[{"name":"providerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Provider identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"object","additionalProperties":{}}},"application/json":{"schema":{"type":"object","additionalProperties":{}}},"text/json":{"schema":{"type":"object","additionalProperties":{}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK"}},"description":"Asks the connector behind a provider id to verify the supplied authentication data without saving it. The response is the `ConnectionVerificationResult`; errors are returned with HTTP 200 inside the result body for UI display, not as HTTP failures."}},"/api/v1/connector/{providerdefinitionid}/container":{"post":{"tags":["Connector"],"summary":"Create connector container","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Creates a new container via the connector. Returns 404 if the connector cannot be resolved."}},"/api/connector/{providerdefinitionid}/container":{"post":{"tags":["Connector"],"summary":"Create connector container","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.CreateContainerModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Creates a new container via the connector. Returns 404 if the connector cannot be resolved."}},"/api/v1/connector/{providerdefinitionid}/container/{id}/empty":{"post":{"tags":["Connector"],"summary":"Empty connector container","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Stream identifier whose container should be emptied."}],"responses":{"200":{"description":"OK"}},"description":"Empties (truncates) the container associated with the supplied stream id through the connector. Returns 404 when the connector or stream cannot be resolved."}},"/api/connector/{providerdefinitionid}/container/{id}/empty":{"post":{"tags":["Connector"],"summary":"Empty connector container","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Stream identifier whose container should be emptied."}],"responses":{"200":{"description":"OK"}},"description":"Empties (truncates) the container associated with the supplied stream id through the connector. Returns 404 when the connector or stream cannot be resolved."}},"/api/v1/connector/{providerdefinitionid}/container/{name}/validatename":{"get":{"tags":["Connector"],"summary":"Validate container name","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string"},"description":"Container name to validate."}],"responses":{"200":{"description":"OK"}},"description":"Asks the connector to validate the supplied container name (typically returning a sanitised version and any errors). Used by the UI before submitting a create-container request."}},"/api/connector/{providerdefinitionid}/container/{name}/validatename":{"get":{"tags":["Connector"],"summary":"Validate container name","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string"},"description":"Container name to validate."}],"responses":{"200":{"description":"OK"}},"description":"Asks the connector to validate the supplied container name (typically returning a sanitised version and any errors). Used by the UI before submitting a create-container request."}},"/api/v1/connector/connectorinfo":{"get":{"tags":["Connector"],"summary":"List connector info","parameters":[{"name":"id","in":"query","schema":{"type":"string","format":"uuid"},"description":"Optional provider identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the connectors available in the system together with their supported modes. Optional `id` query parameter narrows the response to a specific provider id."}},"/api/connector/connectorinfo":{"get":{"tags":["Connector"],"summary":"List connector info","parameters":[{"name":"id","in":"query","schema":{"type":"string","format":"uuid"},"description":"Optional provider identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the connectors available in the system together with their supported modes. Optional `id` query parameter narrows the response to a specific provider id."}},"/api/v1/connector/connectorstatus/{providerDefinitionId}":{"get":{"tags":["Connector"],"summary":"Get connector health status","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Provider definition identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the latest component health for the connector identified by `providerDefinitionId`, augmented with the provider's `IsEnabled` flag."}},"/api/connector/connectorstatus/{providerDefinitionId}":{"get":{"tags":["Connector"],"summary":"Get connector health status","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Provider definition identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the latest component health for the connector identified by `providerDefinitionId`, augmented with the provider's `IsEnabled` flag."}},"/api/v1/connectorhealth/{providerdefinitionid}":{"get":{"tags":["ConnectorHealth"],"summary":"Get connector health log","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"filterDateFrom","in":"query","schema":{"type":"string","format":"date-time"},"description":"Lower bound on entry timestamps."},{"name":"filterDateTo","in":"query","schema":{"type":"string","format":"date-time"},"description":"Upper bound on entry timestamps."},{"name":"filterStatus","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.ComponentHealth.Services.Models.ComponentHealthStatus"}},"description":"Filter by one or more `ComponentHealthStatus` values."},{"name":"filterHost","in":"query","schema":{"type":"string"},"description":"Filter by host id."},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."}],"responses":{"200":{"description":"OK"}},"description":"Returns paged connector health log entries for a connector. Supports filtering by date range, statuses, and host id."}},"/api/connectorhealth/{providerdefinitionid}":{"get":{"tags":["ConnectorHealth"],"summary":"Get connector health log","parameters":[{"name":"providerDefinitionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"filterDateFrom","in":"query","schema":{"type":"string","format":"date-time"},"description":"Lower bound on entry timestamps."},{"name":"filterDateTo","in":"query","schema":{"type":"string","format":"date-time"},"description":"Upper bound on entry timestamps."},{"name":"filterStatus","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.ComponentHealth.Services.Models.ComponentHealthStatus"}},"description":"Filter by one or more `ComponentHealthStatus` values."},{"name":"filterHost","in":"query","schema":{"type":"string"},"description":"Filter by host id."},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."}],"responses":{"200":{"description":"OK"}},"description":"Returns paged connector health log entries for a connector. Supports filtering by date range, statuses, and host id."}},"/api/streamingestionlog/entity/{entityId}":{"get":{"tags":["StreamIngestionLog"],"summary":"Get stream ingestion log for an entity","parameters":[{"name":"entityId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Entity identifier."},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."}],"responses":{"200":{"description":"OK"}},"description":"Returns paged ingestion log entries (timestamp, change type, persist version) for the entity across every stream currently in `Started` or `Paused` state. Stopped or new streams are skipped because their ingestion log table does not contain data for the current entity version."}},"/api/v1/streamingestionlog/entity/{entityId}":{"get":{"tags":["StreamIngestionLog"],"summary":"Get stream ingestion log for an entity","parameters":[{"name":"entityId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Entity identifier."},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."}],"responses":{"200":{"description":"OK"}},"description":"Returns paged ingestion log entries (timestamp, change type, persist version) for the entity across every stream currently in `Started` or `Paused` state. Stopped or new streams are skipped because their ingestion log table does not contain data for the current entity version."}},"/api/admin/commands/streamlog/purge/{streamId}":{"delete":{"tags":["StreamLog"],"summary":"Purge stream history log","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."},{"name":"priorToDate","in":"query","schema":{"type":"string","format":"date-time"},"description":"Purge entries created before this date. Defaults to tomorrow."}],"responses":{"200":{"description":"OK"}},"description":"Purges stream history log entries for the supplied stream, prior to the optional `priorToDate` (defaults to the start of tomorrow). Requires the Consume.Streams RACI claim."}},"/api/v1/admin/commands/streamlog/purge/{streamId}":{"delete":{"tags":["StreamLog"],"summary":"Purge stream history log","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."},{"name":"priorToDate","in":"query","schema":{"type":"string","format":"date-time"},"description":"Purge entries created before this date. Defaults to tomorrow."}],"responses":{"200":{"description":"OK"}},"description":"Purges stream history log entries for the supplied stream, prior to the optional `priorToDate` (defaults to the start of tomorrow). Requires the Consume.Streams RACI claim."}},"/api/streamlog/{streamId}":{"get":{"tags":["StreamLog"],"summary":"Get stream history log","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."},{"name":"filterDateFrom","in":"query","schema":{"type":"string","format":"date-time"},"description":"Lower bound on entry timestamps."},{"name":"filterDateTo","in":"query","schema":{"type":"string","format":"date-time"},"description":"Upper bound on entry timestamps."},{"name":"filterSeverity","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.Extensions.Logging.LogLevel"}},"description":"Filter by one or more `LogLevel` values."},{"name":"filterSource","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Streams.StreamLog.History.StreamHistoryLogAreaEnum"}},"description":"Filter by one or more `StreamHistoryLogArea` values."},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."}],"responses":{"200":{"description":"OK"}},"description":"Returns paged stream history log entries (change events, exceptions, etc.) for a stream. Supports filtering by date range, severity, and stream history log area."}},"/api/v1/streamlog/{streamId}":{"get":{"tags":["StreamLog"],"summary":"Get stream history log","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."},{"name":"filterDateFrom","in":"query","schema":{"type":"string","format":"date-time"},"description":"Lower bound on entry timestamps."},{"name":"filterDateTo","in":"query","schema":{"type":"string","format":"date-time"},"description":"Upper bound on entry timestamps."},{"name":"filterSeverity","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/Microsoft.Extensions.Logging.LogLevel"}},"description":"Filter by one or more `LogLevel` values."},{"name":"filterSource","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Streams.StreamLog.History.StreamHistoryLogAreaEnum"}},"description":"Filter by one or more `StreamHistoryLogArea` values."},{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."}],"responses":{"200":{"description":"OK"}},"description":"Returns paged stream history log entries (change events, exceptions, etc.) for a stream. Supports filtering by date range, severity, and stream history log area."}},"/api/streammapping/{id}":{"get":{"tags":["StreamMappings"],"summary":"Get stream mappings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}}}}},"description":"Returns the projection mappings configured on a stream."},"post":{"tags":["StreamMappings"],"summary":"Set stream mappings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}}}},"responses":{"200":{"description":"OK"}},"description":"Replaces the projection mappings on a stream with the supplied list. Returns 400 with validation details when the model is invalid."}},"/api/v1/streammapping/{id}":{"get":{"tags":["StreamMappings"],"summary":"Get stream mappings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}}}}},"description":"Returns the projection mappings configured on a stream."},"post":{"tags":["StreamMappings"],"summary":"Set stream mappings","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMappingModel"}}}}},"responses":{"200":{"description":"OK"}},"description":"Replaces the projection mappings on a stream with the supplied list. Returns 400 with validation details when the model is invalid."}},"/api/streammapping/options":{"get":{"tags":["StreamMappings"],"summary":"List mapping options","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"}}}}}},"description":"Returns the data types and projection mapping options available to streams (excluding stream-default mappings)."}},"/api/v1/streammapping/options":{"get":{"tags":["StreamMappings"],"summary":"List mapping options","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"}}}}}},"description":"Returns the data types and projection mapping options available to streams (excluding stream-default mappings)."}},"/api/streams":{"get":{"tags":["Streams"],"summary":"List streams","parameters":[{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."},{"name":"filterCreator","in":"query","schema":{"type":"string"},"description":"Filter by creator id/name."},{"name":"filterConnectorProviderDefinitionId","in":"query","schema":{"type":"string","format":"uuid"},"description":"Filter by connector provider definition id."},{"name":"searchName","in":"query","schema":{"type":"string"},"description":"Free-text search over stream name."},{"name":"orderBy","in":"query","schema":{"type":"string"},"description":"Field to order by."},{"name":"orderAsc","in":"query","schema":{"type":"boolean","default":true},"description":"Sort direction. Defaults to true (ascending)."},{"name":"filterStreamStatus","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.StreamStatus"},"description":"Filter by stream status."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult"}}}}},"description":"Returns paged streams with the total count. Filter by creator, connector provider definition, name, and stream status; sort by any supported field."},"post":{"tags":["Streams"],"summary":"Create stream","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string","format":"uuid"}},"application/json":{"schema":{"type":"string","format":"uuid"}},"text/json":{"schema":{"type":"string","format":"uuid"}}}}},"description":"Creates a new stream from the supplied model. Returns 400 with validation details when the model is invalid or contains rule actions not supported with `RuleUsage.Streams`. Returns the new stream id."}},"/api/v1/streams":{"get":{"tags":["Streams"],"summary":"List streams","parameters":[{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":0},"description":"0-based page number. Defaults to 0."},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":20},"description":"Page size. Defaults to 20."},{"name":"filterCreator","in":"query","schema":{"type":"string"},"description":"Filter by creator id/name."},{"name":"filterConnectorProviderDefinitionId","in":"query","schema":{"type":"string","format":"uuid"},"description":"Filter by connector provider definition id."},{"name":"searchName","in":"query","schema":{"type":"string"},"description":"Free-text search over stream name."},{"name":"orderBy","in":"query","schema":{"type":"string"},"description":"Field to order by."},{"name":"orderAsc","in":"query","schema":{"type":"boolean","default":true},"description":"Sort direction. Defaults to true (ascending)."},{"name":"filterStreamStatus","in":"query","schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.StreamStatus"},"description":"Filter by stream status."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult"}}}}},"description":"Returns paged streams with the total count. Filter by creator, connector provider definition, name, and stream status; sort by any supported field."},"post":{"tags":["Streams"],"summary":"Create stream","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string","format":"uuid"}},"application/json":{"schema":{"type":"string","format":"uuid"}},"text/json":{"schema":{"type":"string","format":"uuid"}}}}},"description":"Creates a new stream from the supplied model. Returns 400 with validation details when the model is invalid or contains rule actions not supported with `RuleUsage.Streams`. Returns the new stream id."}},"/api/streams/{id}/start":{"post":{"tags":["Streams"],"summary":"Start stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Starts a stream. The action goes through the RACI approval pipeline for stream state changes."}},"/api/v1/streams/{id}/start":{"post":{"tags":["Streams"],"summary":"Start stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Starts a stream. The action goes through the RACI approval pipeline for stream state changes."}},"/api/streams/{id}/pause":{"post":{"tags":["Streams"],"summary":"Pause stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Pauses a running stream. The action goes through the RACI approval pipeline for stream state changes."}},"/api/v1/streams/{id}/pause":{"post":{"tags":["Streams"],"summary":"Pause stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Pauses a running stream. The action goes through the RACI approval pipeline for stream state changes."}},"/api/streams/{id}/stop":{"post":{"tags":["Streams"],"summary":"Stop stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Stops a running stream. The action goes through the RACI approval pipeline for stream state changes."}},"/api/v1/streams/{id}/stop":{"post":{"tags":["Streams"],"summary":"Stop stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Stops a running stream. The action goes through the RACI approval pipeline for stream state changes."}},"/api/streams/{id}":{"get":{"tags":["Streams"],"summary":"Get stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}}}}},"description":"Returns a single stream by id. Returns 400 for empty ids."},"put":{"tags":["Streams"],"summary":"Update stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Updates a stream. Returns 400 with validation details when the model is invalid or contains unsupported rule actions. The action goes through the RACI approval pipeline for stream updates."},"delete":{"tags":["Streams"],"summary":"Delete stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes a stream. Returns 400 for empty ids. The action goes through the RACI approval pipeline for stream deletion."}},"/api/v1/streams/{id}":{"get":{"tags":["Streams"],"summary":"Get stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}}}}},"description":"Returns a single stream by id. Returns 400 for empty ids."},"put":{"tags":["Streams"],"summary":"Update stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Updates a stream. Returns 400 with validation details when the model is invalid or contains unsupported rule actions. The action goes through the RACI approval pipeline for stream updates."},"delete":{"tags":["Streams"],"summary":"Delete stream","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Deletes a stream. Returns 400 for empty ids. The action goes through the RACI approval pipeline for stream deletion."}},"/api/streams/{id}/stats":{"get":{"tags":["Streams"],"summary":"Get stream statistics","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}}}}},"description":"Returns runtime statistics for a stream (records processed, errors, throughput, etc.)."}},"/api/v1/streams/{id}/stats":{"get":{"tags":["Streams"],"summary":"Get stream statistics","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamModel"}}}}},"description":"Returns runtime statistics for a stream (records processed, errors, throughput, etc.)."}},"/api/streams/setupconnector/{streamid}":{"post":{"tags":["Streams"],"summary":"Set up stream connector","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Associates a connector and data-type mapping with a stream. Validates each mapping against the vocabulary (returns 400 if a vocabulary key does not exist) or the stream-filter property metadata (returns 400 if the metadata property is unknown). The action goes through the RACI approval pipeline for connector setup."}},"/api/v1/streams/setupconnector/{streamid}":{"post":{"tags":["Streams"],"summary":"Set up stream connector","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}},"application/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.SetupConnectorModel"}}}},"responses":{"200":{"description":"OK"}},"description":"Associates a connector and data-type mapping with a stream. Validates each mapping against the vocabulary (returns 400 if a vocabulary key does not exist) or the stream-filter property metadata (returns 400 if the metadata property is unknown). The action goes through the RACI approval pipeline for connector setup."}},"/api/streams/{id}/connectorActions":{"get":{"tags":["Streams"],"summary":"Get stream custom connector actions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the custom actions the connector behind the stream exposes (for connectors implementing `ICustomActionConnector`). Returns an empty list for connectors that do not implement custom actions and 400 when the stream has no connector configured."}},"/api/v1/streams/{id}/connectorActions":{"get":{"tags":["Streams"],"summary":"Get stream custom connector actions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the custom actions the connector behind the stream exposes (for connectors implementing `ICustomActionConnector`). Returns an empty list for connectors that do not implement custom actions and 400 when the stream has no connector configured."}},"/api/streams/{id}/connectorActions/{actionName}/execute":{"post":{"tags":["Streams"],"summary":"Execute stream custom connector action","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."},{"name":"actionName","in":"path","required":true,"schema":{"type":"string"},"description":"Custom action name."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"object","additionalProperties":{}}},"application/json":{"schema":{"type":"object","additionalProperties":{}}},"text/json":{"schema":{"type":"object","additionalProperties":{}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK"}},"description":"Executes a custom connector action with the supplied parameter dictionary. Returns 400 when the stream has no connector configured, or the connector does not support custom actions."}},"/api/v1/streams/{id}/connectorActions/{actionName}/execute":{"post":{"tags":["Streams"],"summary":"Execute stream custom connector action","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."},{"name":"actionName","in":"path","required":true,"schema":{"type":"string"},"description":"Custom action name."}],"requestBody":{"content":{"application/json-patch+json":{"schema":{"type":"object","additionalProperties":{}}},"application/json":{"schema":{"type":"object","additionalProperties":{}}},"text/json":{"schema":{"type":"object","additionalProperties":{}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"OK"}},"description":"Executes a custom connector action with the supplied parameter dictionary. Returns 400 when the stream has no connector configured, or the connector does not support custom actions."}},"/api/streams/{id}/connectorStatuses":{"get":{"tags":["Streams"],"summary":"Get stream custom connector statuses","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the custom status entries the connector behind the stream exposes (for connectors implementing `ICustomStatusConnector`). Returns an empty list when the connector does not implement custom statuses."}},"/api/v1/streams/{id}/connectorStatuses":{"get":{"tags":["Streams"],"summary":"Get stream custom connector statuses","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the custom status entries the connector behind the stream exposes (for connectors implementing `ICustomStatusConnector`). Returns an empty list when the connector does not implement custom statuses."}},"/api/streams/reingest/{streamid}":{"post":{"tags":["Streams"],"summary":"Re-ingest stream initial data","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"description":"Re-ingests the initial dataset for a stream (re-running historical entities through the configured connector). Useful after rule or mapping changes."}},"/api/v1/streams/reingest/{streamid}":{"post":{"tags":["Streams"],"summary":"Re-ingest stream initial data","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"description":"Re-ingests the initial dataset for a stream (re-running historical entities through the configured connector). Useful after rule or mapping changes."}},"/api/streamsvocabularykeys/{streamId}":{"get":{"tags":["StreamsVocabularyKeyUsage"],"summary":"Get vocabulary keys used by a stream","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the vocabulary keys referenced in the stream's filter condition. Uses the legacy resolver when `Streaming.UseLegacyKeyUsageResolving` is enabled (scrolls Elasticsearch to find keys actually present on entities matched by the condition); otherwise resolves directly from the stored condition."}},"/api/v1/streamsvocabularykeys/{streamId}":{"get":{"tags":["StreamsVocabularyKeyUsage"],"summary":"Get vocabulary keys used by a stream","parameters":[{"name":"streamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stream identifier."}],"responses":{"200":{"description":"OK"}},"description":"Returns the vocabulary keys referenced in the stream's filter condition. Uses the legacy resolver when `Streaming.UseLegacyKeyUsageResolving` is enabled (scrolls Elasticsearch to find keys actually present on entities matched by the condition); otherwise resolves directly from the stored condition."}}},"components":{"schemas":{"CluedIn.Core.Connectors.CreateContainerModel":{"type":"object","properties":{"dataTypes":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Connectors.ConnectionDataType"},"nullable":true},"name":{"type":"string","nullable":true},"existingContainerAction":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.ExistingContainerActionEnum"},"createEdgeTable":{"type":"boolean"}},"additionalProperties":false},"CluedIn.ComponentHealth.Services.Models.ComponentHealthStatus":{"enum":[0,1,2],"type":"integer","format":"int32"},"Microsoft.Extensions.Logging.LogLevel":{"enum":[0,1,2,3,4,5,6],"type":"integer","format":"int32"},"CluedIn.Streams.StreamLog.History.StreamHistoryLogAreaEnum":{"enum":[0,1,2],"type":"integer","format":"int32"},"CluedIn.Core.Streams.Models.StreamMappingModel":{"type":"object","properties":{"sourceDataType":{"type":"string","nullable":true},"sourceObjectType":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.MappingTypeEnum"},"destDataType":{"type":"string","nullable":true}},"additionalProperties":false},"CluedIn.Core.Streams.Models.DataTypeEntry":{"type":"object","properties":{"key":{"type":"string","nullable":true},"type":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.MappingTypeEnum"},"displayName":{"type":"string","nullable":true}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.StreamStatus":{"enum":[0,1,2,3],"type":"integer","format":"int32"},"CluedIn.Server.WebApi.Controllers.Consume.Streams.StreamPagingResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.StreamViewModel"},"nullable":true},"total":{"type":"integer","format":"int32"}},"additionalProperties":false},"CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.AddOrUpdateStreamModel":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"condition":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.RuleModel"},"nullable":true},"connectorProviderDefinitionId":{"type":"string","format":"uuid","nullable":true},"containerName":{"type":"string","nullable":true},"exportIncomingEdges":{"type":"boolean"},"exportOutgoingEdges":{"type":"boolean"},"exportIncomingEdgeProperties":{"type":"boolean"},"exportOutgoingEdgeProperties":{"type":"boolean"},"mode":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMode"}},"additionalProperties":false},"CluedIn.Core.Streams.Models.StreamModel":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"id":{"type":"string","format":"uuid"},"organizationId":{"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},"condition":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.RuleModel"},"nullable":true},"rulesApplied":{"type":"integer","format":"int32","readOnly":true},"connectorProviderDefinitionId":{"type":"string","format":"uuid","nullable":true},"containerName":{"type":"string","nullable":true},"exportIncomingEdges":{"type":"boolean"},"exportOutgoingEdges":{"type":"boolean"},"exportIncomingEdgeProperties":{"type":"boolean"},"exportOutgoingEdgeProperties":{"type":"boolean"},"mode":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMode"},"status":{"$ref":"#/components/schemas/CluedIn.Core.Streams.StreamStatus"},"loggingVersion":{"type":"integer","format":"int32"},"requiresAttention":{"type":"boolean"},"ingestionCallbackId":{"type":"string","format":"uuid","nullable":true},"ingestionCallbackData":{"type":"string","nullable":true},"connectorProperties":{"type":"object","additionalProperties":{},"nullable":true},"mostRecentIdleStreamEventAt":{"type":"string","format":"date-time","nullable":true},"streamIngestionJobId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"CluedIn.Core.Streams.Models.SetupConnectorModel":{"type":"object","properties":{"connectorProviderDefinitionId":{"type":"string","format":"uuid"},"containerName":{"type":"string","nullable":true},"oldContainerName":{"type":"string","nullable":true},"existingContainerAction":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.ExistingContainerActionEnum"},"dataTypes":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.DataTypeEntry"},"nullable":true},"exportIncomingEdges":{"type":"boolean"},"exportOutgoingEdges":{"type":"boolean"},"exportIncomingEdgeProperties":{"type":"boolean"},"exportOutgoingEdgeProperties":{"type":"boolean"},"mode":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMode"},"connectorProperties":{"type":"object","additionalProperties":{"nullable":true},"nullable":true}},"additionalProperties":false},"CluedIn.Core.Connectors.ConnectionDataType":{"type":"object","properties":{"name":{"type":"string","nullable":true},"type":{"$ref":"#/components/schemas/CluedIn.Core.Data.Vocabularies.VocabularyKeyDataType"}},"additionalProperties":false},"CluedIn.Core.Streams.Models.ExistingContainerActionEnum":{"enum":[0,1,2,3],"type":"integer","format":"int32"},"CluedIn.Core.Streams.Models.MappingTypeEnum":{"enum":[0,1],"type":"integer","format":"int32"},"CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.StreamViewModel":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string","format":"uuid"},"modifiedAt":{"type":"string","format":"date-time","nullable":true},"modifiedBy":{"type":"string","format":"uuid","nullable":true},"condition":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.RuleModel"},"nullable":true},"rulesApplied":{"type":"integer","format":"int32"},"connectorProviderDefinitionId":{"type":"string","format":"uuid","nullable":true},"containerName":{"type":"string","nullable":true},"exportIncomingEdges":{"type":"boolean"},"exportOutgoingEdges":{"type":"boolean"},"exportIncomingEdgeProperties":{"type":"boolean"},"exportOutgoingEdgeProperties":{"type":"boolean"},"mode":{"$ref":"#/components/schemas/CluedIn.Core.Streams.Models.StreamMode"},"status":{"$ref":"#/components/schemas/CluedIn.Server.WebApi.Controllers.Consume.Streams.Models.StreamStatus"},"requiresAttention":{"type":"boolean"},"connectorProperties":{"type":"object","additionalProperties":{},"nullable":true}},"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.Rules.Models.RuleModel":{"required":["name"],"type":"object","properties":{"conditions":{"$ref":"#/components/schemas/CluedIn.Core.Rules.QueryBuilder.FilterRule"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.RuleActionModel"},"nullable":true},"id":{"type":"string","format":"uuid","nullable":true},"name":{"minLength":1,"type":"string"},"description":{"type":"string","nullable":true},"organizationId":{"type":"string","format":"uuid"},"type":{"type":"string","nullable":true},"order":{"type":"integer","format":"int32"},"createdBy":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"},"modifiedBy":{"type":"string","nullable":true},"modifiedAt":{"type":"string","format":"date-time","nullable":true},"isActive":{"type":"boolean"}},"additionalProperties":false},"CluedIn.Core.Streams.Models.StreamMode":{"enum":[0,1],"type":"integer","format":"int32"},"CluedIn.Core.Streams.StreamStatus":{"enum":[0,1,2,3],"type":"integer","format":"int32"},"CluedIn.Core.Data.Vocabularies.VocabularyKeyDataType":{"enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],"type":"integer","format":"int32"},"CluedIn.Core.Rules.Models.RuleActionModel":{"type":"object","properties":{"name":{"type":"string","nullable":true},"supportsPreview":{"type":"boolean"},"properties":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.RuleProperty"},"nullable":true},"type":{"type":"string","nullable":true},"supportsProcessingRuleScopes":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.ProcessingRuleScope"},"nullable":true},"supportsRuleUsages":{"type":"array","items":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.RuleUsageEnum"},"nullable":true}},"additionalProperties":false},"CluedIn.Core.Rules.Models.RuleProperty":{"type":"object","properties":{"name":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"kind":{"$ref":"#/components/schemas/CluedIn.Core.Rules.Models.ActionControlKind"},"friendlyType":{"type":"string","nullable":true},"friendlyName":{"type":"string","nullable":true},"defaultValue":{"type":"string","nullable":true},"value":{"nullable":true},"isStringOnly":{"type":"boolean"},"excludedProperties":{"type":"string","nullable":true},"isRequired":{"type":"boolean"}},"additionalProperties":false},"CluedIn.Core.Rules.Models.ProcessingRuleScope":{"enum":[0,1,2],"type":"integer","format":"int32"},"CluedIn.Core.Rules.Models.RuleUsageEnum":{"enum":[1,2,4,8,16,32,64,128,256],"type":"integer","format":"int32"},"CluedIn.Core.Rules.Models.ActionControlKind":{"enum":[0,1,2,3,4,5,6,7,8],"type":"integer","format":"int32"}},"securitySchemes":{"Bearer":{"type":"http","description":"Please enter a valid token","scheme":"Bearer"}}}}