json.schema.entity.feed.thread.json Maven / Gradle / Ivy
{
"$id": "https://open-metadata.org/schema/entity/feed/thread.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Thread",
"description": "This schema defines the Thread entity. A Thread is a collection of posts made by the users. The first post that starts a thread is **about** a data asset **from** a user. Other users can respond to this post by creating new posts in the thread. Note that bot users can also interact with a thread. A post can contains links that mention Users or other Data Assets.",
"type": "object",
"definitions": {
"taskType": {
"javaType": "org.openmetadata.schema.type.TaskType",
"description": "Type of a task.",
"type": "string",
"enum": [
"RequestDescription",
"UpdateDescription",
"RequestTag",
"UpdateTag",
"RequestApproval",
"RequestTestCaseFailureResolution",
"Generic"
],
"javaEnums": [
{
"name": "RequestDescription"
},
{
"name": "UpdateDescription"
},
{
"name": "RequestTag"
},
{
"name": "UpdateTag"
},
{
"name": "RequestApproval"
},
{
"name": "RequestTestCaseFailureResolution"
},
{
"name": "Generic"
}
]
},
"taskDetails": {
"javaType": "org.openmetadata.schema.type.TaskDetails",
"description": "Details about the task. This is only applicable if thread is of type task.",
"type": "object",
"properties": {
"id": {
"description": "Unique identifier that identifies the task.",
"type": "integer"
},
"type": {
"$ref": "#/definitions/taskType"
},
"assignees": {
"description": "List of users or teams the task is assigned to",
"$ref": "../../type/entityReferenceList.json"
},
"status": {
"$ref": "#/definitions/threadTaskStatus"
},
"closedBy": {
"description": "The user that closed the task.",
"type": "string"
},
"closedAt": {
"description": "Timestamp when the task was closed in Unix epoch time milliseconds.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"oldValue": {
"description": "The value of old object for which the task is created.",
"type": "string"
},
"suggestion": {
"description": "The suggestion object to replace the old value for which the task is created.",
"type": "string"
},
"newValue": {
"description": "The new value object that was accepted to complete the task.",
"type": "string"
},
"testCaseResolutionStatusId": {
"description": "The test case resolution status id for which the task is created.",
"$ref": "../../type/basic.json#/definitions/uuid"
}
},
"required": ["id", "assignees", "type"],
"additionalProperties": false
},
"threadTaskStatus": {
"javaType": "org.openmetadata.schema.type.TaskStatus",
"type": "string",
"description": "Status of a task.",
"enum": ["Open", "Closed"],
"javaEnums": [
{
"name": "Open"
},
{
"name": "Closed"
}
],
"default": "Open"
},
"threadType": {
"javaType": "org.openmetadata.schema.type.ThreadType",
"type": "string",
"description": "Type of thread.",
"enum": ["Conversation", "Task", "Announcement", "Chatbot"],
"javaEnums": [
{
"name": "Conversation"
},
{
"name": "Task"
},
{
"name": "Announcement"
},
{
"name": "Chatbot"
}
],
"default": "Conversation"
},
"announcementDetails": {
"javaType": "org.openmetadata.schema.type.AnnouncementDetails",
"description": "Details about the announcement. This is only applicable if thread is of type announcement.",
"type": "object",
"properties": {
"description": {
"description": "Announcement description in Markdown format. See markdown support for more details.",
"type": "string"
},
"startTime": {
"description": "Timestamp of the start time from when the announcement should be shown.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"endTime": {
"description": "Timestamp of when the announcement should end",
"$ref": "../../type/basic.json#/definitions/timestamp"
}
},
"required": ["startTime", "endTime"],
"additionalProperties": false
},
"chatbotDetails": {
"javaType": "org.openmetadata.schema.type.ChatbotDetails",
"description": "Details about the Chatbot conversation. This is only applicable if thread is of type Chatbot.",
"type": "object",
"properties": {
"query": {
"description": "The query being discussed with the Chatbot",
"type": "string"
}
}
},
"post": {
"javaType": "org.openmetadata.schema.type.Post",
"type": "object",
"description": "Post within a feed.",
"properties": {
"id": {
"description": "Unique identifier that identifies the post.",
"$ref": "../../type/basic.json#/definitions/uuid"
},
"message": {
"description": "Message in Markdown format. See Markdown support for more details.",
"type": "string"
},
"postTs": {
"description": "Timestamp of the post in Unix epoch time milliseconds.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"from": {
"description": "Name of the User posting the message.",
"type": "string"
},
"reactions": {
"description": "Reactions for the post.",
"$ref": "../../type/reaction.json#/definitions/reactionList"
}
},
"required": ["id", "message", "from"],
"additionalProperties": false
}
},
"properties": {
"id": {
"description": "Unique identifier that identifies an entity instance.",
"$ref": "../../type/basic.json#/definitions/uuid"
},
"type": {
"$ref": "#/definitions/threadType"
},
"href": {
"description": "Link to the resource corresponding to this entity.",
"$ref": "../../type/basic.json#/definitions/href"
},
"threadTs": {
"description": "Timestamp of the first post created the thread in Unix epoch time milliseconds.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"about": {
"description": "Data asset about which this thread is created for with format <#E::{entities}::{entityName}::{field}::{fieldValue}.",
"$ref": "../../type/basic.json#/definitions/entityLink"
},
"entityRef": {
"description": "Reference to the entity in `about` that the thread belongs to.",
"$ref": "../../type/entityReference.json"
},
"entityUrlLink": {
"description": "Link to the entity in `about` that the thread belongs to.",
"type": "string"
},
"domain": {
"description": "Domain the entity belongs to.",
"$ref": "../../type/basic.json#/definitions/uuid"
},
"generatedBy": {
"description": "User or team that generated the thread.",
"type": "string",
"enum": ["user", "system"],
"default": "user"
},
"cardStyle": {
"description": "Card style for the thread.",
"type": "string",
"enum": [
"default",
"logicalTestCaseAdded",
"entityCreated",
"entityDeleted",
"entitySoftDeleted",
"description",
"tags",
"owner",
"testCaseResult",
"customProperties",
"assets",
"domain"
],
"default": "default"
},
"fieldOperation": {
"description": "Operation on thread, whether the field was added, or updated or deleted.",
"type": "string",
"enum": ["added", "updated", "deleted", "none"],
"default": "updated"
},
"feedInfo": {
"description": "Entity Id of the entity in `about` that the thread belongs to.",
"type": "object",
"properties": {
"headerMessage": {
"description": "Header message for the feed.",
"type": "string"
},
"fieldName": {
"description": "Field Name message for the feed.",
"type": "string"
},
"entitySpecificInfo": {
"oneOf": [
{
"$ref": "./assets.json"
},
{
"$ref": "./customProperty.json"
},
{
"$ref": "./description.json"
},
{
"$ref": "./domain.json"
},
{
"$ref": "./entityInfo.json"
},
{
"$ref": "./tag.json"
},
{
"$ref": "./testCaseResult.json"
}
]
}
},
"additionalProperties": false
},
"addressedTo": {
"description": "User or team this thread is addressed to in format <#E::{entities}::{entityName}::{field}::{fieldValue}.",
"$ref": "../../type/basic.json#/definitions/entityLink"
},
"createdBy": {
"description": "User who created the thread.",
"type": "string"
},
"updatedAt": {
"description": "Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"updatedBy": {
"description": "User who made the update.",
"type": "string"
},
"resolved": {
"description": "When `true` indicates the thread has been resolved.",
"type": "boolean",
"default": false
},
"message": {
"description": "The main message of the thread in Markdown format.",
"type": "string"
},
"postsCount": {
"description": "The total count of posts in the thread.",
"type": "integer",
"default": 0
},
"posts": {
"type": "array",
"items": {
"$ref": "#/definitions/post"
}
},
"reactions": {
"description": "Reactions for the thread.",
"$ref": "../../type/reaction.json#/definitions/reactionList"
},
"task": {
"description": "Details about the task. This is only applicable if thread is of type task.",
"$ref": "#/definitions/taskDetails"
},
"announcement": {
"description": "Details about the announcement. This is only applicable if thread is of type announcement.",
"$ref": "#/definitions/announcementDetails"
},
"chatbot": {
"description": "Details about the Chatbot conversation. This is only applicable if thread is of type Chatbot.",
"$ref": "#/definitions/chatbotDetails"
}
},
"required": ["id", "about", "message"],
"additionalProperties": false
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy