object StoryHistoryChangeOldNewInt
{
  "type": "object",
  "properties": {
    "new": {
      "type": "integer",
      "format": "int64",
      "description": "The new value."
    },
    "old": {
      "type": "integer",
      "format": "int64",
      "description": "The old value."
    }
  },
  "description": "The estimate value for the Story"
}
object StoryHistoryChangeOldNewStr
{
  "type": "object",
  "properties": {
    "new": {
      "type": "string",
      "description": "The new value."
    },
    "old": {
      "type": "string",
      "nullable": true,
      "description": "The old value."
    }
  },
  "description": "A timestamp that represents the Story's deadline."
}
object StoryHistoryChangeOldNewUuid
{
  "type": "object",
  "properties": {
    "new": {
      "type": "string",
      "format": "uuid",
      "description": "The new value."
    },
    "old": {
      "type": "string",
      "format": "uuid",
      "description": "The old value."
    }
  },
  "description": "The Team ID for the Story."
}
object StoryLink
{
  "type": "object",
  "required": [
    "entity_type",
    "id",
    "subject_id",
    "subject_workflow_state_id",
    "verb",
    "object_id",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique identifier of the Story Link."
    },
    "verb": {
      "type": "string",
      "description": "How the subject Story acts on the object Story. This can be \"blocks\", \"duplicates\", or \"relates to\"."
    },
    "object_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the object Story."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date when the Story Link was created."
    },
    "subject_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the subject Story."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date when the Story Link was last updated."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "subject_workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "x-doc-skip": true,
      "description": "The workflow state of the \"subject\" story."
    }
  },
  "description": "Story links allow you create semantic relationships between two stories. Relationship types are relates to, blocks / blocked by, and duplicates / is duplicated by. The format is `subject -> link -> object`, or for example \"story 5 blocks story 6\"."
}
array StoryListCommentsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/StoryComment"
  }
}
object StoryReaction
{
  "type": "object",
  "required": [
    "emoji",
    "permission_ids"
  ],
  "properties": {
    "emoji": {
      "type": "string",
      "description": "Emoji text of the reaction."
    },
    "permission_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Permissions who have reacted with this."
    }
  },
  "x-doc-skip": true,
  "description": "Emoji reaction on a comment."
}
object StorySearchResult
{
  "type": "object",
  "required": [
    "app_url",
    "archived",
    "started",
    "story_links",
    "entity_type",
    "labels",
    "mention_ids",
    "member_mention_ids",
    "story_type",
    "workflow_id",
    "completed_at_override",
    "started_at",
    "completed_at",
    "name",
    "global_id",
    "completed",
    "blocker",
    "epic_id",
    "story_template_id",
    "external_links",
    "previous_iteration_ids",
    "requested_by_id",
    "iteration_id",
    "label_ids",
    "started_at_override",
    "group_id",
    "workflow_state_id",
    "updated_at",
    "group_mention_ids",
    "follower_ids",
    "owner_ids",
    "external_id",
    "id",
    "estimate",
    "position",
    "blocked",
    "project_id",
    "deadline",
    "stats",
    "created_at",
    "moved_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the Story."
    },
    "name": {
      "type": "string",
      "description": "The name of the story."
    },
    "files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UploadedFile"
      },
      "description": "An array of files attached to the story."
    },
    "stats": {
      "$ref": "#/components/schemas/StoryStats"
    },
    "tasks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Task"
      },
      "description": "An array of tasks connected to the story."
    },
    "labels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LabelSlim"
      },
      "description": "An array of labels attached to the story."
    },
    "app_url": {
      "type": "string",
      "description": "The Shortcut application url for the Story."
    },
    "blocked": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story is currently blocked."
    },
    "blocker": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story is currently a blocker of another story."
    },
    "commits": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Commit"
      },
      "description": "An array of commits attached to the story."
    },
    "epic_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the epic the story belongs to."
    },
    "started": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story has been started."
    },
    "archived": {
      "type": "boolean",
      "description": "True if the story has been archived or not."
    },
    "branches": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Branch"
      },
      "description": "An array of Git branches attached to the story."
    },
    "comments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StoryComment"
      },
      "description": "An array of comments attached to the story."
    },
    "deadline": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The due date of the story."
    },
    "estimate": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The numeric point estimate of the story. Can also be null, which means unestimated."
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Files attached to the story."
    },
    "group_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The ID of the group associated with the story."
    },
    "moved_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was last changed workflow-state."
    },
    "position": {
      "type": "integer",
      "format": "int64",
      "description": "A number representing the position of the story in relation to every other story in the current project."
    },
    "task_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Tasks attached to the story."
    },
    "completed": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story has been completed."
    },
    "global_id": {
      "type": "string",
      "x-doc-skip": true
    },
    "label_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of label ids attached to the story."
    },
    "lead_time": {
      "type": "integer",
      "format": "int64",
      "description": "The lead time (in seconds) of this story when complete."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the owners of this story."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date the Story was created."
    },
    "cycle_time": {
      "type": "integer",
      "format": "int64",
      "description": "The cycle time (in seconds) of this story when complete."
    },
    "project_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the project the story belongs to."
    },
    "started_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was started."
    },
    "story_type": {
      "type": "string",
      "description": "The type of story (feature, bug, chore)."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was updated."
    },
    "comment_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Comments attached to the story."
    },
    "description": {
      "type": "string",
      "description": "The description of the story."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "This field can be set to another unique ID. In the case that the Story has been imported from another tool, the ID in the other tool can be indicated here."
    },
    "mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Deprecated: use member_mention_ids."
    },
    "story_links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TypedStoryLink"
      },
      "description": "An array of story links attached to the Story."
    },
    "synced_item": {
      "$ref": "#/components/schemas/SyncedItem"
    },
    "workflow_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the workflow the story belongs to."
    },
    "completed_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was completed."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Members listed as Followers."
    },
    "iteration_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the iteration the story belongs to."
    },
    "linked_files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LinkedFile"
      },
      "description": "An array of linked files attached to the story."
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StoryCustomField"
      },
      "description": "An array of CustomField value assertions for the story."
    },
    "pull_requests": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PullRequest"
      },
      "description": "An array of Pull/Merge Requests attached to the story."
    },
    "external_links": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of external links (strings) associated with a Story"
    },
    "linked_file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of LinkedFiles attached to the story."
    },
    "requested_by_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the Member that requested the story."
    },
    "group_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of Group IDs that have been mentioned in the Story description."
    },
    "story_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The ID of the story template used to create this story, or null if not created using a template."
    },
    "workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the workflow state the story is currently in."
    },
    "member_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of Member IDs that have been mentioned in the Story description."
    },
    "num_tasks_completed": {
      "type": "integer",
      "format": "int64",
      "description": "The number of tasks on the story which are complete."
    },
    "started_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Story was started."
    },
    "completed_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Story was completed."
    },
    "previous_iteration_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The IDs of the iteration the story belongs to."
    },
    "unresolved_blocker_comments": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The IDs of any unresolved blocker comments on the Story."
    }
  },
  "description": "A Story in search results. This is typed differently from Story because the details=slim search argument will omit some fields."
}
object StorySearchResults
{
  "type": "object",
  "required": [
    "total",
    "data",
    "next"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StorySearchResult"
      },
      "description": "A list of search results."
    },
    "next": {
      "type": "string",
      "nullable": true,
      "description": "The URL path and query string for the next page of search results."
    },
    "total": {
      "type": "integer",
      "format": "int64",
      "description": "The total number of matches for the search query. The first 1000 matches can be paged through via the API."
    }
  },
  "description": "The results of the Story search query."
}
object StorySlim
{
  "type": "object",
  "required": [
    "app_url",
    "archived",
    "started",
    "story_links",
    "entity_type",
    "labels",
    "task_ids",
    "mention_ids",
    "member_mention_ids",
    "story_type",
    "file_ids",
    "num_tasks_completed",
    "workflow_id",
    "completed_at_override",
    "started_at",
    "completed_at",
    "name",
    "global_id",
    "completed",
    "blocker",
    "epic_id",
    "story_template_id",
    "external_links",
    "previous_iteration_ids",
    "requested_by_id",
    "iteration_id",
    "label_ids",
    "started_at_override",
    "group_id",
    "workflow_state_id",
    "updated_at",
    "group_mention_ids",
    "follower_ids",
    "owner_ids",
    "external_id",
    "id",
    "estimate",
    "position",
    "blocked",
    "project_id",
    "linked_file_ids",
    "deadline",
    "stats",
    "comment_ids",
    "created_at",
    "moved_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the Story."
    },
    "name": {
      "type": "string",
      "description": "The name of the story."
    },
    "stats": {
      "$ref": "#/components/schemas/StoryStats"
    },
    "labels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LabelSlim"
      },
      "description": "An array of labels attached to the story."
    },
    "app_url": {
      "type": "string",
      "description": "The Shortcut application url for the Story."
    },
    "blocked": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story is currently blocked."
    },
    "blocker": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story is currently a blocker of another story."
    },
    "epic_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the epic the story belongs to."
    },
    "started": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story has been started."
    },
    "archived": {
      "type": "boolean",
      "description": "True if the story has been archived or not."
    },
    "deadline": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The due date of the story."
    },
    "estimate": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The numeric point estimate of the story. Can also be null, which means unestimated."
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Files attached to the story."
    },
    "group_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The ID of the group associated with the story."
    },
    "moved_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was last changed workflow-state."
    },
    "position": {
      "type": "integer",
      "format": "int64",
      "description": "A number representing the position of the story in relation to every other story in the current project."
    },
    "task_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Tasks attached to the story."
    },
    "completed": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Story has been completed."
    },
    "global_id": {
      "type": "string",
      "x-doc-skip": true
    },
    "label_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of label ids attached to the story."
    },
    "lead_time": {
      "type": "integer",
      "format": "int64",
      "description": "The lead time (in seconds) of this story when complete."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the owners of this story."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date the Story was created."
    },
    "cycle_time": {
      "type": "integer",
      "format": "int64",
      "description": "The cycle time (in seconds) of this story when complete."
    },
    "project_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the project the story belongs to."
    },
    "started_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was started."
    },
    "story_type": {
      "type": "string",
      "description": "The type of story (feature, bug, chore)."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was updated."
    },
    "comment_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Comments attached to the story."
    },
    "description": {
      "type": "string",
      "description": "The description of the Story."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "This field can be set to another unique ID. In the case that the Story has been imported from another tool, the ID in the other tool can be indicated here."
    },
    "mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Deprecated: use member_mention_ids."
    },
    "story_links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TypedStoryLink"
      },
      "description": "An array of story links attached to the Story."
    },
    "synced_item": {
      "$ref": "#/components/schemas/SyncedItem"
    },
    "workflow_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the workflow the story belongs to."
    },
    "completed_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Story was completed."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Members listed as Followers."
    },
    "iteration_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the iteration the story belongs to."
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StoryCustomField"
      },
      "description": "An array of CustomField value assertions for the story."
    },
    "external_links": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of external links (strings) associated with a Story"
    },
    "linked_file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of LinkedFiles attached to the story."
    },
    "requested_by_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the Member that requested the story."
    },
    "group_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of Group IDs that have been mentioned in the Story description."
    },
    "story_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The ID of the story template used to create this story, or null if not created using a template."
    },
    "workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the workflow state the story is currently in."
    },
    "member_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of Member IDs that have been mentioned in the Story description."
    },
    "num_tasks_completed": {
      "type": "integer",
      "format": "int64",
      "description": "The number of tasks on the story which are complete."
    },
    "started_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Story was started."
    },
    "completed_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Story was completed."
    },
    "previous_iteration_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The IDs of the iteration the story belongs to."
    },
    "unresolved_blocker_comments": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The IDs of any unresolved blocker comments on the Story."
    }
  },
  "description": "StorySlim represents the same resource as a Story, but is more light-weight. For certain fields it provides ids rather than full resources (e.g., `comment_ids` and `file_ids`) and it also excludes certain aggregate values (e.g., `cycle_time`). The `description` field can be optionally included. Use the [Get Story](https://developer.shortcut.com) endpoint to fetch the unabridged payload for a Story."
}
object StoryStats
{
  "type": "object",
  "required": [
    "num_related_documents"
  ],
  "properties": {
    "num_related_documents": {
      "type": "integer",
      "format": "int64",
      "description": "The number of documents related to this Story."
    }
  },
  "x-doc-skip": true,
  "description": "The stats object for Stories"
}
array StoryUpdateMultipleResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/StorySlim"
  }
}
object SyncedItem
{
  "type": "object",
  "required": [
    "external_id",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The url to the external entity."
    },
    "external_id": {
      "type": "string",
      "description": "The id used to reference an external entity."
    }
  },
  "x-doc-skip": true,
  "description": "The synced item for the story."
}
object Task
{
  "type": "object",
  "required": [
    "description",
    "entity_type",
    "story_id",
    "mention_ids",
    "member_mention_ids",
    "completed_at",
    "updated_at",
    "group_mention_ids",
    "owner_ids",
    "external_id",
    "id",
    "position",
    "complete",
    "created_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the Task."
    },
    "complete": {
      "type": "boolean",
      "description": "True/false boolean indicating whether the Task has been completed."
    },
    "position": {
      "type": "integer",
      "format": "int64",
      "description": "The number corresponding to the Task's position within a list of Tasks on a Story."
    },
    "story_id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique identifier of the parent Story."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the Owners of this Task."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date the Task was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Task was updated."
    },
    "description": {
      "type": "string",
      "description": "Full text of the Task."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "This field can be set to another unique ID. In the case that the Task has been imported from another tool, the ID in the other tool can be indicated here."
    },
    "mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Deprecated: use member_mention_ids."
    },
    "completed_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date the Task was completed."
    },
    "group_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of Groups mentioned in this Task."
    },
    "member_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of Members mentioned in this Task."
    }
  },
  "description": "A Task on a Story."
}
array TemplateListEntityTemplatesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/EntityTemplate"
  }
}
object ThreadedComment
{
  "type": "object",
  "required": [
    "app_url",
    "entity_type",
    "deleted",
    "mention_ids",
    "author_id",
    "member_mention_ids",
    "comments",
    "updated_at",
    "group_mention_ids",
    "external_id",
    "id",
    "created_at",
    "text"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the Comment."
    },
    "text": {
      "type": "string",
      "description": "The text of the Comment."
    },
    "app_url": {
      "type": "string",
      "description": "The Shortcut application url for the Comment."
    },
    "deleted": {
      "type": "boolean",
      "description": "True/false boolean indicating whether the Comment is deleted."
    },
    "comments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ThreadedComment"
      },
      "description": "A nested array of threaded comments."
    },
    "author_id": {
      "type": "string",
      "format": "uuid",
      "description": "The unique ID of the Member that authored the Comment."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date the Comment was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date the Comment was updated."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "This field can be set to another unique ID. In the case that the Comment has been imported from another tool, the ID in the other tool can be indicated here."
    },
    "mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Deprecated: use member_mention_ids."
    },
    "group_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of Group IDs that have been mentioned in this Comment."
    },
    "member_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of Member IDs that have been mentioned in this Comment."
    }
  },
  "description": "Comments associated with Epic Discussions."
}
object TypedStoryLink
{
  "type": "object",
  "required": [
    "entity_type",
    "object_id",
    "verb",
    "type",
    "updated_at",
    "id",
    "subject_id",
    "subject_workflow_state_id",
    "created_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique identifier of the Story Link."
    },
    "type": {
      "type": "string",
      "description": "This indicates whether the Story is the subject or object in the Story Link."
    },
    "verb": {
      "type": "string",
      "description": "How the subject Story acts on the object Story. This can be \"blocks\", \"duplicates\", or \"relates to\"."
    },
    "object_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the object Story."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date when the Story Link was created."
    },
    "subject_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the subject Story."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date when the Story Link was last updated."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "subject_workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "x-doc-skip": true,
      "description": "The workflow state of the \"subject\" story."
    }
  },
  "description": "The type of Story Link. The string can be subject or object. "
}
object UnusableEntitlementError
{
  "type": "object",
  "required": [
    "reason_tag",
    "entitlement_tag",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "Message displayed to the user on why their action failed."
    },
    "reason_tag": {
      "enum": [
        "entitlement-violation"
      ],
      "type": "string",
      "description": "The tag for violating an entitlement action."
    },
    "entitlement_tag": {
      "type": "string",
      "maxLength": 63,
      "minLength": 1,
      "description": "Short tag describing the unusable entitlement action taken by the user."
    }
  },
  "x-doc-skip": true
}
object UpdateCategory
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The new name of the Category."
    },
    "color": {
      "type": "string",
      "format": "css-color",
      "pattern": "^#[a-fA-F0-9]{6}$",
      "nullable": true,
      "minLength": 1,
      "description": "The hex color to be displayed with the Category (for example, \"#ff0000\")."
    },
    "archived": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Category has been archived."
    }
  },
  "x-doc-skip": true
}
object UpdateComment
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "description": "The updated comment text."
    }
  },
  "x-doc-skip": true
}
object UpdateCustomField
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 63,
      "minLength": 1,
      "description": "A collection of objects representing reporting periods for years."
    },
    "values": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UpdateCustomFieldEnumValue"
      },
      "description": "A collection of EnumValue objects representing the values in the domain of some Custom Field."
    },
    "enabled": {
      "type": "boolean",
      "description": "Indicates whether the Field is enabled for the Workspace. Only enabled fields can be applied to Stories."
    },
    "after_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the CustomField we want to move this CustomField after."
    },
    "before_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the CustomField we want to move this CustomField before."
    },
    "description": {
      "type": "string",
      "description": "A description of the purpose of this field."
    },
    "icon_set_identifier": {
      "type": "string",
      "maxLength": 63,
      "minLength": 1,
      "description": "A frontend-controlled string that represents the icon for this custom field."
    }
  }
}
object UpdateCustomFieldEnumValue
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "The unique ID of an existing EnumValue within the CustomField's domain."
    },
    "value": {
      "type": "string",
      "maxLength": 63,
      "minLength": 1,
      "description": "A string value within the domain of this Custom Field."
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether this EnumValue is enabled for its CustomField or not. Leaving this key out of the request leaves the current enabled state untouched."
    },
    "color_key": {
      "type": "string",
      "nullable": true,
      "description": "A color key associated with this EnumValue within the CustomField's domain."
    }
  }
}
object UpdateEntityTemplate
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The updated template name."
    },
    "story_contents": {
      "$ref": "#/components/schemas/UpdateStoryContents"
    }
  },
  "description": "Request parameters for changing either a template's name or any of\n  the attributes it is designed to pre-populate."
}
object UpdateEpic
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "The Epic's name."
    },
    "state": {
      "enum": [
        "in progress",
        "to do",
        "done"
      ],
      "type": "string",
      "description": "`Deprecated` The Epic's state (to do, in progress, or done); will be ignored when `epic_state_id` is set."
    },
    "labels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateLabelParams"
      },
      "description": "An array of Labels attached to the Epic."
    },
    "after_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Epic we want to move this Epic after."
    },
    "archived": {
      "type": "boolean",
      "description": "A true/false boolean indicating whether the Epic is in archived state."
    },
    "deadline": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The Epic's deadline."
    },
    "group_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "`Deprecated` The ID of the group to associate with the epic. Use `group_ids`."
    },
    "before_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Epic we want to move this Epic before."
    },
    "group_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDS for Groups to which this Epic is related."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any members you want to add as Owners on this Epic."
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "The Epic's description."
    },
    "external_id": {
      "type": "string",
      "description": "This field can be set to another unique ID. In the case that the Epic has been imported from another tool, the ID in the other tool can be indicated here."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Members you want to add as Followers on this Epic."
    },
    "milestone_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "`Deprecated` The ID of the Milestone this Epic is related to. Use `objective_ids`."
    },
    "epic_state_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Epic State."
    },
    "objective_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs for Objectives to which this Epic is related."
    },
    "requested_by_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the member that requested the epic."
    },
    "planned_start_date": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The Epic's planned start date."
    },
    "started_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Epic was started."
    },
    "completed_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Epic was completed."
    }
  },
  "x-doc-skip": true
}
object UpdateFile
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 1024,
      "minLength": 1,
      "description": "The name of the file."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date that the file was uploaded."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date that the file was last updated."
    },
    "description": {
      "type": "string",
      "description": "The description of the file."
    },
    "external_id": {
      "type": "string",
      "description": "An additional ID that you may wish to assign to the file."
    },
    "uploader_id": {
      "type": "string",
      "format": "uuid",
      "description": "The unique ID assigned to the Member who uploaded the file to Shortcut."
    }
  },
  "x-doc-skip": true
}
object UpdateGroup
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 63,
      "minLength": 1,
      "description": "The name of this Group."
    },
    "color": {
      "type": "string",
      "format": "css-color",
      "pattern": "^#[a-fA-F0-9]{6}$",
      "nullable": true,
      "minLength": 1,
      "description": "The color you wish to use for the Group in the system."
    },
    "archived": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether or not this Group is archived."
    },
    "color_key": {
      "enum": [
        "blue",
        "purple",
        "midnight-blue",
        "orange",
        "yellow-green",
        "brass",
        "gray",
        "fuchsia",
        "yellow",
        "pink",
        "sky-blue",
        "green",
        "red",
        "black",
        "slate",
        "turquoise"
      ],
      "type": "string",
      "description": "The color key you wish to use for the Group in the system."
    },
    "member_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The Member ids to add to this Group.",
      "uniqueItems": true
    },
    "description": {
      "type": "string",
      "description": "The description of this Group."
    },
    "mention_name": {
      "type": "string",
      "maxLength": 63,
      "minLength": 1,
      "description": "The mention name of this Group."
    },
    "workflow_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The Workflow ids to add to the Group."
    },
    "display_icon_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The Icon id for the avatar of this Group."
    }
  }
}
object UpdateIteration
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "The name of this Iteration"
    },
    "labels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateLabelParams"
      },
      "description": "An array of Labels attached to the Iteration."
    },
    "end_date": {
      "type": "string",
      "minLength": 1,
      "description": "The date this Iteration ends, e.g. 2019-07-05."
    },
    "group_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Groups you want to add as Followers. Currently, only one Group association is presented in our web UI."
    },
    "start_date": {
      "type": "string",
      "minLength": 1,
      "description": "The date this Iteration begins, e.g. 2019-07-01"
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "The description of the Iteration."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Members you want to add as Followers."
    }
  }
}
object UpdateKeyResult
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the Key Result."
    },
    "target_value": {
      "$ref": "#/components/schemas/KeyResultValue"
    },
    "observed_value": {
      "$ref": "#/components/schemas/KeyResultValue"
    },
    "initial_observed_value": {
      "$ref": "#/components/schemas/KeyResultValue"
    }
  }
}
object UpdateLabel
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "description": "The new name of the label."
    },
    "color": {
      "type": "string",
      "format": "css-color",
      "pattern": "^#[a-fA-F0-9]{6}$",
      "nullable": true,
      "minLength": 1,
      "description": "The hex color to be displayed with the Label (for example, \"#ff0000\")."
    },
    "archived": {
      "type": "boolean",
      "description": "A true/false boolean indicating if the Label has been archived."
    },
    "description": {
      "type": "string",
      "description": "The new description of the label."
    }
  },
  "x-doc-skip": true
}
object UpdateLinkedFile
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "pattern": "^https?://.+$",
      "maxLength": 2048,
      "description": "The URL of linked file."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The name of the file."
    },
    "size": {
      "type": "integer",
      "format": "int64",
      "description": "The filesize, if the integration provided it."
    },
    "type": {
      "enum": [
        "google",
        "url",
        "dropbox",
        "box",
        "onedrive"
      ],
      "type": "string",
      "description": "The integration type of the file (e.g. google, dropbox, box)."
    },
    "story_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the linked story."
    },
    "description": {
      "type": "string",
      "description": "The description of the file."
    },
    "uploader_id": {
      "type": "string",
      "format": "uuid",
      "description": "The UUID of the member that uploaded the file."
    },
    "thumbnail_url": {
      "type": "string",
      "pattern": "^https?://.+$",
      "maxLength": 2048,
      "description": "The URL of the thumbnail, if the integration provided it."
    }
  },
  "x-doc-skip": true
}
object UpdateMilestone
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "The name of the Milestone."
    },
    "state": {
      "enum": [
        "in progress",
        "to do",
        "done"
      ],
      "type": "string",
      "description": "The workflow state that the Milestone is in."
    },
    "after_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Milestone we want to move this Milestone after."
    },
    "archived": {
      "type": "boolean",
      "description": "A boolean indicating whether the Milestone is archived or not"
    },
    "before_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Milestone we want to move this Milestone before."
    },
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateCategoryParams"
      },
      "description": "An array of IDs of Categories attached to the Milestone."
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "The Milestone's description."
    },
    "started_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Milestone was started."
    },
    "completed_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Milestone was completed."
    }
  },
  "x-doc-skip": true
}
object UpdateObjective
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "The name of the Objective."
    },
    "state": {
      "enum": [
        "in progress",
        "to do",
        "done"
      ],
      "type": "string",
      "description": "The workflow state that the Objective is in."
    },
    "after_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Objective we want to move this Objective after."
    },
    "archived": {
      "type": "boolean",
      "description": "A boolean indicating whether the Objective is archived or not"
    },
    "before_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the Objective we want to move this Objective before."
    },
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateCategoryParams"
      },
      "description": "An array of IDs of Categories attached to the Objective."
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "The Objective's description."
    },
    "started_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Objective was started."
    },
    "completed_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Objective was completed."
    }
  },
  "x-doc-skip": true
}
object UpdateProject
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "description": "The Project's name."
    },
    "color": {
      "type": "string",
      "format": "css-color",
      "pattern": "^#[a-fA-F0-9]{6}$",
      "minLength": 1,
      "description": "The color that represents the Project in the UI."
    },
    "team_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the team the project belongs to."
    },
    "archived": {
      "type": "boolean",
      "description": "A true/false boolean indicating whether the Story is in archived state."
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "The Project's description."
    },
    "abbreviation": {
      "type": "string",
      "description": "The Project abbreviation used in Story summaries. Should be kept to 3 characters at most."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Members you want to add as Followers."
    },
    "show_thermometer": {
      "type": "boolean",
      "description": "Configuration to enable or disable thermometers in the Story summary."
    },
    "days_to_thermometer": {
      "type": "integer",
      "format": "int64",
      "description": "The number of days before the thermometer appears in the Story summary."
    }
  },
  "x-doc-skip": true
}
object UpdateStories
{
  "type": "object",
  "required": [
    "story_ids"
  ],
  "properties": {
    "epic_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the epic the story belongs to."
    },
    "move_to": {
      "enum": [
        "last",
        "first"
      ],
      "type": "string",
      "description": "One of \"first\" or \"last\". This can be used to move the given story to the first or last position in the workflow state."
    },
    "after_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the story that the stories are to be moved below."
    },
    "archived": {
      "type": "boolean",
      "description": "If the Stories should be archived or not."
    },
    "deadline": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The due date of the story."
    },
    "estimate": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The numeric point estimate of the story. Can also be null, which means unestimated."
    },
    "group_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The Id of the Group the Stories should belong to."
    },
    "before_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the story that the stories are to be moved before."
    },
    "story_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The Ids of the Stories you wish to update.",
      "uniqueItems": true
    },
    "labels_add": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateLabelParams"
      },
      "description": "An array of labels to be added."
    },
    "project_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the Project the Stories should belong to."
    },
    "story_type": {
      "enum": [
        "feature",
        "chore",
        "bug"
      ],
      "type": "string",
      "description": "The type of story (feature, bug, chore)."
    },
    "iteration_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the iteration the story belongs to."
    },
    "labels_remove": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateLabelParams"
      },
      "description": "An array of labels to be removed."
    },
    "owner_ids_add": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The UUIDs of the new owners to be added.",
      "uniqueItems": true
    },
    "external_links": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of External Links associated with this story."
    },
    "requested_by_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the member that requested the story."
    },
    "follower_ids_add": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The UUIDs of the new followers to be added.",
      "uniqueItems": true
    },
    "owner_ids_remove": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The UUIDs of the owners to be removed.",
      "uniqueItems": true
    },
    "custom_fields_add": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomFieldValueParams"
      },
      "description": "A map specifying a CustomField ID and CustomFieldEnumValue ID that represents an assertion of some value for a CustomField."
    },
    "workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the workflow state to put the stories in."
    },
    "follower_ids_remove": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The UUIDs of the followers to be removed.",
      "uniqueItems": true
    },
    "custom_fields_remove": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomFieldValueParams"
      },
      "description": "A map specifying a CustomField ID and CustomFieldEnumValue ID that represents an assertion of some value for a CustomField."
    }
  },
  "x-doc-skip": true
}
object UpdateStory
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 512,
      "minLength": 1,
      "description": "The title of the story."
    },
    "labels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateLabelParams"
      },
      "description": "An array of labels attached to the story."
    },
    "epic_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the epic the story belongs to."
    },
    "move_to": {
      "enum": [
        "last",
        "first"
      ],
      "type": "string",
      "description": "One of \"first\" or \"last\". This can be used to move the given story to the first or last position in the workflow state."
    },
    "after_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the story we want to move this story after."
    },
    "archived": {
      "type": "boolean",
      "description": "True if the story is archived, otherwise false."
    },
    "deadline": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The due date of the story."
    },
    "estimate": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The numeric point estimate of the story. Can also be null, which means unestimated."
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of files attached to the story.",
      "uniqueItems": true
    },
    "group_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The ID of the group to associate with this story"
    },
    "before_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the story we want to move this story before."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the owners of this story.",
      "uniqueItems": true
    },
    "branch_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Branches attached to the story.",
      "uniqueItems": true
    },
    "commit_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Commits attached to the story.",
      "uniqueItems": true
    },
    "project_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the project the story belongs to."
    },
    "story_type": {
      "enum": [
        "feature",
        "chore",
        "bug"
      ],
      "type": "string",
      "description": "The type of story (feature, bug, chore)."
    },
    "description": {
      "type": "string",
      "maxLength": 100000,
      "description": "The description of the story."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the followers of this story.",
      "uniqueItems": true
    },
    "iteration_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the iteration the story belongs to."
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomFieldValueParams"
      },
      "description": "A map specifying a CustomField ID and CustomFieldEnumValue ID that represents an assertion of some value for a CustomField."
    },
    "external_links": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of External Links associated with this story."
    },
    "linked_file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of linked files attached to the story.",
      "uniqueItems": true
    },
    "requested_by_id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the member that requested the story."
    },
    "pull_request_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of IDs of Pull/Merge Requests attached to the story.",
      "uniqueItems": true
    },
    "workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the workflow state to put the story in."
    },
    "started_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Story was started."
    },
    "completed_at_override": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "A manual override for the time/date the Story was completed."
    }
  },
  "x-doc-skip": true
}
object UpdateStoryComment
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 100000,
      "description": "The updated comment text."
    }
  },
  "x-doc-skip": true
}
object UpdateStoryContents
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the story."
    },
    "tasks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BaseTaskParams"
      },
      "description": "An array of tasks to be populated by the template."
    },
    "labels": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateLabelParams"
      },
      "description": "An array of labels to be populated by the template."
    },
    "epic_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the epic the to be populated."
    },
    "deadline": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The due date of the story."
    },
    "estimate": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The numeric point estimate to be populated."
    },
    "file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of the attached file IDs to be populated.",
      "uniqueItems": true
    },
    "group_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "The ID of the group to be populated."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the owners of this story."
    },
    "project_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the project the story belongs to."
    },
    "story_type": {
      "type": "string",
      "description": "The type of story (feature, bug, chore)."
    },
    "description": {
      "type": "string",
      "description": "The description of the story."
    },
    "follower_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs for any Members listed as Followers."
    },
    "iteration_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the iteration the to be populated."
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomFieldValueParams"
      },
      "description": "An array of maps specifying a CustomField ID and CustomFieldEnumValue ID that represents an assertion of some value for a CustomField."
    },
    "external_links": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of external links to be populated."
    },
    "linked_file_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "An array of the linked file IDs to be populated.",
      "uniqueItems": true
    },
    "workflow_state_id": {
      "type": "integer",
      "format": "int64",
      "nullable": true,
      "description": "The ID of the workflow state to be populated."
    }
  },
  "description": "Updated attributes for the template to populate."
}
object UpdateStoryLink
{
  "type": "object",
  "properties": {
    "verb": {
      "enum": [
        "blocks",
        "duplicates",
        "relates to"
      ],
      "type": "string",
      "description": "The type of link."
    },
    "object_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the object Story."
    },
    "subject_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the subject Story."
    }
  },
  "x-doc-skip": true
}
object UpdateTask
{
  "type": "object",
  "properties": {
    "after_id": {
      "type": "integer",
      "format": "int64",
      "description": "Move task after this task ID."
    },
    "complete": {
      "type": "boolean",
      "description": "A true/false boolean indicating whether the task is complete."
    },
    "before_id": {
      "type": "integer",
      "format": "int64",
      "description": "Move task before this task ID."
    },
    "owner_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "An array of UUIDs of the owners of this story."
    },
    "description": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "The Task's description."
    }
  },
  "x-doc-skip": true
}
object UploadedFile
{
  "type": "object",
  "required": [
    "description",
    "entity_type",
    "story_ids",
    "mention_ids",
    "member_mention_ids",
    "name",
    "thumbnail_url",
    "size",
    "uploader_id",
    "content_type",
    "updated_at",
    "filename",
    "group_mention_ids",
    "external_id",
    "id",
    "url",
    "created_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID for the file."
    },
    "url": {
      "type": "string",
      "nullable": true,
      "description": "The URL for the file."
    },
    "name": {
      "type": "string",
      "description": "The optional User-specified name of the file."
    },
    "size": {
      "type": "integer",
      "format": "int64",
      "description": "The size of the file."
    },
    "filename": {
      "type": "string",
      "description": "The name assigned to the file in Shortcut upon upload."
    },
    "story_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64"
      },
      "description": "The unique IDs of the Stories associated with this file."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date that the file was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "The time/date that the file was updated."
    },
    "description": {
      "type": "string",
      "nullable": true,
      "description": "The description of the file."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "This field can be set to another unique ID. In the case that the File has been imported from another tool, the ID in the other tool can be indicated here."
    },
    "mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Deprecated: use member_mention_ids."
    },
    "uploader_id": {
      "type": "string",
      "format": "uuid",
      "description": "The unique ID of the Member who uploaded the file."
    },
    "content_type": {
      "type": "string",
      "description": "Free form string corresponding to a text or image file."
    },
    "thumbnail_url": {
      "type": "string",
      "nullable": true,
      "description": "The url where the thumbnail of the file can be found in Shortcut."
    },
    "group_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The unique IDs of the Groups who are mentioned in the file description."
    },
    "member_mention_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "The unique IDs of the Members who are mentioned in the file description."
    }
  },
  "description": "An UploadedFile is any document uploaded to your Shortcut Workspace. Files attached from a third-party service are different: see the Linked Files endpoint."
}
object Workflow
{
  "type": "object",
  "required": [
    "description",
    "entity_type",
    "project_ids",
    "states",
    "name",
    "updated_at",
    "auto_assign_owner",
    "id",
    "team_id",
    "created_at",
    "default_state_id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the Workflow."
    },
    "name": {
      "type": "string",
      "description": "The name of the workflow."
    },
    "states": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkflowState"
      },
      "description": "A map of the states in this Workflow."
    },
    "team_id": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the team the workflow belongs to."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The date the Workflow was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The date the Workflow was updated."
    },
    "description": {
      "type": "string",
      "description": "A description of the workflow."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "project_ids": {
      "type": "array",
      "items": {
        "type": "number",
        "format": "double"
      },
      "description": "An array of IDs of projects within the Workflow."
    },
    "default_state_id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the default state that new Stories are entered into."
    },
    "auto_assign_owner": {
      "type": "boolean",
      "description": "Indicates if an owner is automatically assigned when an unowned story is started."
    }
  },
  "description": "Workflow is the array of defined Workflow States. Workflow can be queried using the API but must be updated in the Shortcut UI. "
}
array WorkflowListAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Workflow"
  }
}
object WorkflowState
{
  "type": "object",
  "required": [
    "description",
    "entity_type",
    "verb",
    "name",
    "global_id",
    "num_stories",
    "type",
    "updated_at",
    "id",
    "num_story_templates",
    "position",
    "created_at"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "The unique ID of the Workflow State."
    },
    "name": {
      "type": "string",
      "description": "The Workflow State's name."
    },
    "type": {
      "type": "string",
      "description": "The type of Workflow State (Unstarted, Started, or Finished)"
    },
    "verb": {
      "type": "string",
      "nullable": true,
      "description": "The verb that triggers a move to that Workflow State when making VCS commits."
    },
    "color": {
      "type": "string",
      "format": "css-color",
      "pattern": "^#[a-fA-F0-9]{6}$",
      "minLength": 1,
      "description": "The hex color for this Workflow State."
    },
    "position": {
      "type": "integer",
      "format": "int64",
      "description": "The position that the Workflow State is in, starting with 0 at the left."
    },
    "global_id": {
      "type": "string",
      "x-doc-skip": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time/date the Workflow State was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the Workflow State was last updated."
    },
    "description": {
      "type": "string",
      "description": "The description of what sort of Stories belong in that Workflow state."
    },
    "entity_type": {
      "type": "string",
      "description": "A string description of this resource."
    },
    "num_stories": {
      "type": "integer",
      "format": "int64",
      "description": "The number of Stories currently in that Workflow State."
    },
    "num_story_templates": {
      "type": "integer",
      "format": "int64",
      "description": "The number of Story Templates associated with that Workflow State."
    }
  },
  "description": "Workflow State is any of the at least 3 columns. Workflow States correspond to one of 3 types: Unstarted, Started, or Done."
}