object SectionsCreateNewSectionRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SectionRequest"
    }
  }
}
object SectionsCreateNewSectionResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SectionResponse"
    }
  }
}
object SectionsDeleteSectionResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object SectionsGetRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SectionResponse"
    }
  }
}
object SectionsListProjectSectionsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SectionCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object SectionsMoveOrInsertRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ProjectSectionInsertRequest"
    }
  }
}
object SectionsMoveOrInsertResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object SectionsUpdateSectionRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SectionRequest"
    }
  }
}
object SectionsUpdateSectionRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SectionResponse"
    }
  }
}
object StatusUpdateBase
{
  "allOf": [
    {
      "$ref": "#/components/schemas/StatusUpdateCompact"
    },
    {
      "type": "object",
      "required": [
        "text",
        "status_type"
      ],
      "properties": {
        "text": {
          "type": "string",
          "example": "The project is moving forward according to plan...",
          "description": "The text content of the status update."
        },
        "html_text": {
          "type": "string",
          "example": "<body>The project <strong>is</strong> moving forward according to plan...</body>",
          "description": "[Opt In](https://raw.githubusercontent.com). The text content of the status update with formatting as HTML."
        },
        "status_type": {
          "enum": [
            "on_track",
            "at_risk",
            "off_track",
            "on_hold",
            "complete",
            "achieved",
            "partial",
            "missed",
            "dropped"
          ],
          "type": "string",
          "description": "The type associated with the status update. This represents the current state of the object this object is on."
        }
      }
    }
  ]
}
object StatusUpdateCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "example": "Status Update - Jun 15",
          "description": "The title of the status update."
        },
        "resource_subtype": {
          "enum": [
            "project_status_update",
            "portfolio_status_update",
            "goal_status_update"
          ],
          "type": "string",
          "example": "project_status_update",
          "readOnly": true,
          "description": "The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning.\nThe `resource_subtype`s for `status` objects represent the type of their parent."
        }
      },
      "description": "A *status update* is an update on the progress of a particular project, portfolio, or goal, and is sent out to all of its parent's followers when created. These updates include both text describing the update and a `status_type` intended to represent the overall state of the project.",
      "x-docs-overrides": {
        "properties.resource_type.example": "status_update"
      }
    }
  ]
}
object StatusUpdateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/StatusUpdateBase"
    },
    {
      "type": "object",
      "required": [
        "parent"
      ],
      "properties": {
        "parent": {
          "allOf": [
            {
              "type": "string",
              "description": "The id of parent to send this status update to. This can be a project, goal or portfolio."
            }
          ]
        }
      }
    }
  ]
}
object StatusUpdateResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/StatusUpdateBase"
    },
    {
      "type": "object",
      "properties": {
        "liked": {
          "type": "boolean",
          "example": true,
          "description": "True if the status is liked by the authorized user, false if not."
        },
        "likes": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Like"
          },
          "readOnly": true,
          "description": "Array of likes for users who have liked this status."
        },
        "author": {
          "$ref": "#/components/schemas/UserCompact"
        },
        "hearts": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Like"
          },
          "readOnly": true,
          "description": "*Deprecated - please use likes instead* Array of likes for users who have hearted this status."
        },
        "parent": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ProjectCompact"
            },
            {
              "type": "object",
              "description": "The parent of the status update. This can be a project, goal or portfolio, and indicates that this status was sent on that object."
            }
          ]
        },
        "hearted": {
          "type": "boolean",
          "example": true,
          "readOnly": true,
          "description": "*Deprecated - please use liked instead* True if the status is hearted by the authorized user, false if not."
        },
        "num_likes": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "The number of users who have liked this status."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this resource was created."
        },
        "created_by": {
          "$ref": "#/components/schemas/UserCompact"
        },
        "num_hearts": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "*Deprecated - please use likes instead* The number of users who have hearted this status."
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this project status was last modified.\n*Note: This does not currently reflect any changes in associations such as comments that may have been added or removed from the status.*"
        }
      }
    }
  ]
}
object StatusUpdatesCreateNewStatusUpdateRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StatusUpdateRequest"
    }
  }
}
object StatusUpdatesCreateNewStatusUpdateRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StatusUpdateResponse"
    }
  }
}
object StatusUpdatesDeleteSpecificStatusUpdateResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object StatusUpdatesGetCompactRecordsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StatusUpdateCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object StatusUpdatesGetRecordByIdResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StatusUpdateResponse"
    }
  }
}
object StoriesCreateCommentRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StoryBase"
    }
  }
}
object StoriesCreateCommentResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StoryResponse"
    }
  }
}
object StoriesDeleteStoryRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object StoriesGetFullRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StoryResponse"
    }
  }
}
object StoriesGetTaskStoriesResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StoryCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object StoriesUpdateFullRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StoryBase"
    }
  }
}
object StoriesUpdateFullRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/StoryResponse"
    }
  }
}
object StoryBase
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "example": "This is a comment.",
          "description": "The plain text of the comment to add. Cannot be used with html_text."
        },
        "html_text": {
          "type": "string",
          "example": "<body>This is a comment.</body>",
          "description": "[Opt In](https://raw.githubusercontent.com). HTML formatted text for a comment. This will not include the name of the creator."
        },
        "is_pinned": {
          "type": "boolean",
          "example": false,
          "description": "*Conditional*. Whether the story should be pinned on the resource."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this resource was created."
        },
        "sticker_name": {
          "enum": [
            "green_checkmark",
            "people_dancing",
            "dancing_unicorn",
            "heart",
            "party_popper",
            "people_waving_flags",
            "splashing_narwhal",
            "trophy",
            "yeti_riding_unicorn",
            "celebrating_people",
            "determined_climbers",
            "phoenix_spreading_love"
          ],
          "type": "string",
          "example": "dancing_unicorn",
          "description": "The name of the sticker in this story. `null` if there is no sticker."
        },
        "resource_subtype": {
          "type": "string",
          "example": "comment_added",
          "readOnly": true,
          "description": "The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning."
        }
      },
      "description": "A story represents an activity associated with an object in the Asana system.",
      "x-docs-overrides": {
        "properties.resource_type.example": "story"
      }
    }
  ]
}
object StoryCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "example": "marked today",
          "description": "*Create-only*. Human-readable text for the story or comment.\nThis will not include the name of the creator.\n*Note: This is not guaranteed to be stable for a given type of story. For example, text for a reassignment may not always say “assigned to …” as the text for a story can both be edited and change based on the language settings of the user making the request.*\nUse the `resource_subtype` property to discover the action that created the story."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this resource was created."
        },
        "created_by": {
          "$ref": "#/components/schemas/UserCompact"
        },
        "resource_subtype": {
          "type": "string",
          "example": "comment_added",
          "readOnly": true,
          "description": "The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning."
        }
      },
      "description": "A story represents an activity associated with an object in the Asana system.",
      "x-docs-overrides": {
        "properties.resource_type.example": "story"
      }
    }
  ]
}
object StoryResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/StoryBase"
    },
    {
      "type": "object",
      "properties": {
        "tag": {
          "$ref": "#/components/schemas/TagCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "task": {
          "$ref": "#/components/schemas/TaskCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "type": {
          "enum": [
            "comment",
            "system"
          ],
          "type": "string",
          "example": "comment",
          "readOnly": true
        },
        "liked": {
          "type": "boolean",
          "example": false,
          "readOnly": true,
          "description": "*Conditional*. True if the story is liked by the authorized user, false if not."
        },
        "likes": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Like"
          },
          "readOnly": true,
          "description": "*Conditional*. Array of likes for users who have liked this story."
        },
        "story": {
          "$ref": "#/components/schemas/StoryCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "hearts": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Like"
          },
          "readOnly": true,
          "description": "*Deprecated - please use likes instead*\n\n*Conditional*. Array of likes for users who have hearted this story."
        },
        "source": {
          "enum": [
            "web",
            "email",
            "mobile",
            "api",
            "unknown"
          ],
          "type": "string",
          "example": "web",
          "readOnly": true,
          "description": "The component of the Asana product the user used to trigger the story."
        },
        "target": {
          "allOf": [
            {
              "$ref": "#/components/schemas/TaskCompact"
            },
            {
              "type": "object",
              "readOnly": true,
              "description": "The object this story is associated with. Currently may only be a task."
            }
          ]
        },
        "hearted": {
          "type": "boolean",
          "example": false,
          "readOnly": true,
          "description": "*Deprecated - please use likes instead*\n*Conditional*. True if the story is hearted by the authorized user, false if not."
        },
        "project": {
          "$ref": "#/components/schemas/ProjectCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "assignee": {
          "$ref": "#/components/schemas/UserCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "follower": {
          "$ref": "#/components/schemas/UserCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "new_name": {
          "type": "string",
          "example": "This is the New Name",
          "nullable": true,
          "readOnly": true,
          "description": "*Conditional*"
        },
        "old_name": {
          "type": "string",
          "example": "This was the Old Name",
          "description": "*Conditional*'"
        },
        "previews": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Preview"
          },
          "readOnly": true,
          "description": "*Conditional*. A collection of previews to be displayed in the story.\n\n*Note: This property only exists for comment stories.*"
        },
        "is_edited": {
          "type": "boolean",
          "example": false,
          "readOnly": true,
          "description": "*Conditional*. Whether the text of the story has been edited after creation."
        },
        "new_dates": {
          "$ref": "#/components/schemas/StoryResponseDates"
        },
        "num_likes": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "*Conditional*. The number of users who have liked this story."
        },
        "old_dates": {
          "$ref": "#/components/schemas/StoryResponseDates"
        },
        "created_by": {
          "$ref": "#/components/schemas/UserCompact"
        },
        "dependency": {
          "$ref": "#/components/schemas/TaskCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "num_hearts": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "*Deprecated - please use likes instead*\n\n*Conditional*. The number of users who have hearted this story."
        },
        "is_editable": {
          "type": "boolean",
          "example": false,
          "readOnly": true,
          "description": "*Conditional*. Whether the text of the story can be edited after creation."
        },
        "new_section": {
          "$ref": "#/components/schemas/SectionCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "old_section": {
          "$ref": "#/components/schemas/SectionCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "custom_field": {
          "$ref": "#/components/schemas/CustomFieldCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "duplicate_of": {
          "$ref": "#/components/schemas/TaskCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "new_date_value": {
          "allOf": [
            {
              "$ref": "#/components/schemas/StoryResponseDates"
            },
            {
              "description": "*Conditional* The new value of a date custom field story."
            }
          ],
          "readOnly": true
        },
        "new_enum_value": {
          "$ref": "#/components/schemas/EnumOption",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "new_text_value": {
          "type": "string",
          "example": "This is the New Text",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "old_date_value": {
          "allOf": [
            {
              "$ref": "#/components/schemas/StoryResponseDates"
            },
            {
              "description": "*Conditional*. The old value of a date custom field story."
            }
          ],
          "readOnly": true
        },
        "old_enum_value": {
          "$ref": "#/components/schemas/EnumOption",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "old_text_value": {
          "type": "string",
          "example": "This was the Old Text",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "duplicated_from": {
          "$ref": "#/components/schemas/TaskCompact",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "new_number_value": {
          "type": "integer",
          "example": 2,
          "readOnly": true,
          "description": "*Conditional*"
        },
        "new_people_value": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/UserCompact"
          },
          "readOnly": true,
          "description": "*Conditional*. The new value of a people custom field story."
        },
        "old_number_value": {
          "type": "integer",
          "example": 1,
          "nullable": true,
          "readOnly": true,
          "description": "*Conditional*"
        },
        "old_people_value": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/UserCompact"
          },
          "readOnly": true,
          "description": "*Conditional*. The old value of a people custom field story."
        },
        "new_approval_status": {
          "type": "string",
          "example": "approved",
          "readOnly": true,
          "description": "*Conditional*. The new value of approval status."
        },
        "old_approval_status": {
          "type": "string",
          "example": "pending",
          "readOnly": true,
          "description": "*Conditional*. The old value of approval status."
        },
        "new_resource_subtype": {
          "type": "string",
          "example": "milestone",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "old_resource_subtype": {
          "type": "string",
          "example": "default_task",
          "readOnly": true,
          "description": "*Conditional*"
        },
        "new_multi_enum_values": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EnumOption"
          },
          "readOnly": true,
          "description": "*Conditional*. The new value of a multi-enum custom field story."
        },
        "old_multi_enum_values": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EnumOption"
          },
          "readOnly": true,
          "description": "*Conditional*. The old value of a multi-enum custom field story."
        }
      }
    }
  ]
}
object StoryResponseDates
{
  "type": "object",
  "readOnly": true,
  "properties": {
    "due_at": {
      "type": "string",
      "format": "date-time",
      "example": "2019-09-15T02:06:58.158Z",
      "nullable": true,
      "description": "The UTC date and time on which this task is due, or null if the task has no due time. This takes an ISO 8601 date string in UTC and should not be used together with `due_on`."
    },
    "due_on": {
      "type": "string",
      "format": "date",
      "example": "2019-09-15",
      "description": "The localized day on which this goal is due. This takes a date with format `YYYY-MM-DD`."
    },
    "start_on": {
      "type": "string",
      "format": "date",
      "example": "2019-09-14",
      "nullable": true,
      "description": "The day on which work for this goal begins, or null if the goal has no start date. This takes a date with `YYYY-MM-DD` format, and cannot be set unless there is an accompanying due date."
    }
  },
  "description": "*Conditional*"
}
object TagBase
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TagCompact"
    },
    {
      "type": "object",
      "properties": {
        "color": {
          "enum": [
            "dark-pink",
            "dark-green",
            "dark-blue",
            "dark-red",
            "dark-teal",
            "dark-brown",
            "dark-orange",
            "dark-purple",
            "dark-warm-gray",
            "light-pink",
            "light-green",
            "light-blue",
            "light-red",
            "light-teal",
            "light-brown",
            "light-orange",
            "light-purple",
            "light-warm-gray",
            null
          ],
          "type": "string",
          "example": "light-green",
          "nullable": true,
          "description": "Color of the tag."
        },
        "notes": {
          "type": "string",
          "example": "Mittens really likes the stuff from Humboldt.",
          "description": "Free-form textual information associated with the tag (i.e. its description)."
        }
      }
    }
  ]
}
object TagCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Stuff to buy",
          "description": "Name of the tag. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer."
        }
      },
      "description": "A *tag* is a label that can be attached to any task in Asana. It exists in a single workspace or organization.",
      "x-docs-overrides": {
        "properties.resource_type.example": "tag"
      }
    }
  ]
}
object TagCreateTagForWorkspaceRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TagBase"
    },
    {
      "type": "object",
      "properties": {
        "followers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "12345",
            "42563"
          ],
          "description": "An array of strings identifying users. These can either be the string \"me\", an email, or the gid of a user."
        }
      }
    }
  ]
}
object TagRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TagBase"
    },
    {
      "type": "object",
      "properties": {
        "followers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "12345",
            "42563"
          ],
          "description": "An array of strings identifying users. These can either be the string \"me\", an email, or the gid of a user."
        },
        "workspace": {
          "type": "string",
          "example": "12345",
          "description": "Gid of an object.",
          "x-env-variable": true
        }
      }
    }
  ]
}
object TagResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TagBase"
    },
    {
      "type": "object",
      "properties": {
        "followers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/UserCompact"
          },
          "readOnly": true,
          "description": "Array of users following this tag."
        },
        "workspace": {
          "$ref": "#/components/schemas/WorkspaceCompact"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this resource was created."
        },
        "permalink_url": {
          "type": "string",
          "example": "https://app.asana.com/0/resource/123456789/list",
          "readOnly": true,
          "description": "A url that points directly to the object within Asana."
        }
      }
    }
  ]
}
object TagsCreateNewTagRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TagRequest"
    }
  }
}
object TagsCreateNewTagRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TagResponse"
    }
  }
}
object TagsCreateTagInWorkspaceRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TagCreateTagForWorkspaceRequest"
    }
  }
}
object TagsCreateTagInWorkspaceResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TagResponse"
    }
  }
}
object TagsGetFilteredTagsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TagCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object TagsGetRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TagResponse"
    }
  }
}
object TagsGetTaskTagsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TagCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object TagsListFilteredTagsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TagCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object TagsRemoveTagResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object TagsUpdateTagRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TagResponse"
    }
  }
}
object TaskAddFollowersRequest
{
  "type": "object",
  "required": [
    "followers"
  ],
  "properties": {
    "followers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "13579",
        "321654"
      ],
      "description": "An array of strings identifying users. These can either be the string \"me\", an email, or the gid of a user."
    }
  }
}
object TaskAddProjectRequest
{
  "type": "object",
  "required": [
    "project"
  ],
  "properties": {
    "project": {
      "type": "string",
      "example": "13579",
      "description": "The project to add the task to."
    },
    "section": {
      "type": "string",
      "example": "987654",
      "nullable": true,
      "description": "A section in the project to insert the task into. The task will be inserted at the bottom of the section."
    },
    "insert_after": {
      "type": "string",
      "example": "124816",
      "nullable": true,
      "description": "A task in the project to insert the task after, or `null` to insert at the beginning of the list."
    },
    "insert_before": {
      "type": "string",
      "example": "432134",
      "nullable": true,
      "description": "A task in the project to insert the task before, or `null` to insert at the end of the list."
    }
  }
}
object TaskAddTagRequest
{
  "type": "object",
  "required": [
    "tag"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "example": "13579",
      "description": "The tag's gid to add to the task."
    }
  }
}
object TaskBase
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TaskCompact"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Buy catnip",
          "description": "Name of the task. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer."
        },
        "liked": {
          "type": "boolean",
          "example": true,
          "description": "True if the task is liked by the authorized user, false if not."
        },
        "likes": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Like"
          },
          "readOnly": true,
          "description": "Array of likes for users who have liked this task."
        },
        "notes": {
          "type": "string",
          "example": "Mittens really likes the stuff from Humboldt.",
          "description": "Free-form textual information associated with the task (i.e. its description)."
        },
        "due_at": {
          "type": "string",
          "format": "date-time",
          "example": "2019-09-15T02:06:58.147Z",
          "nullable": true,
          "description": "The UTC date and time on which this task is due, or null if the task has no due time. This takes an ISO 8601 date string in UTC and should not be used together with `due_on`."
        },
        "due_on": {
          "type": "string",
          "format": "date",
          "example": "2019-09-15",
          "nullable": true,
          "description": "The localized date on which this task is due, or null if the task has no due date. This takes a date with `YYYY-MM-DD` format and should not be used together with `due_at`."
        },
        "hearts": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Like"
          },
          "readOnly": true,
          "description": "*Deprecated - please use likes instead* Array of likes for users who have hearted this task."
        },
        "hearted": {
          "type": "boolean",
          "example": true,
          "readOnly": true,
          "description": "*Deprecated - please use liked instead* True if the task is hearted by the authorized user, false if not."
        },
        "external": {
          "type": "object",
          "example": {
            "gid": "my_gid",
            "data": "A blob of information"
          },
          "properties": {
            "gid": {
              "type": "string",
              "example": "1234"
            },
            "data": {
              "type": "string",
              "example": "A blob of information."
            }
          },
          "description": "*OAuth Required*. *Conditional*. This field is returned only if external values are set or included by using [Opt In](https://raw.githubusercontent.com).\nThe external field allows you to store app-specific metadata on tasks, including a gid that can be used to retrieve tasks and a data blob that can store app-specific character strings. Note that you will need to authenticate with Oauth to access or modify this data. Once an external gid is set, you can use the notation `external:custom_gid` to reference your object anywhere in the API where you may use the original object gid. See the page on Custom External Data for more details."
        },
        "start_at": {
          "type": "string",
          "format": "date-time",
          "example": "2019-09-14T02:06:58.147Z",
          "nullable": true,
          "description": "Date and time on which work begins for the task, or null if the task has no start time. This takes an ISO 8601 date string in UTC and should not be used together with `start_on`.\n*Note: `due_at` must be present in the request when setting or unsetting the `start_at` parameter.*"
        },
        "start_on": {
          "type": "string",
          "format": "date",
          "example": "2019-09-14",
          "nullable": true,
          "description": "The day on which work begins for the task , or null if the task has no start date. This takes a date with `YYYY-MM-DD` format and should not be used together with `start_at`.\n*Note: `due_on` or `due_at` must be present in the request when setting or unsetting the `start_on` parameter.*"
        },
        "completed": {
          "type": "boolean",
          "example": false,
          "description": "True if the task is currently marked complete, false if not."
        },
        "num_likes": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "The number of users who have liked this task."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this resource was created."
        },
        "dependents": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AsanaResource"
          },
          "readOnly": true,
          "description": "[Opt In](https://raw.githubusercontent.com). Array of resources referencing tasks that depend on this task. The objects contain only the ID of the dependent."
        },
        "html_notes": {
          "type": "string",
          "example": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>",
          "description": "[Opt In](https://raw.githubusercontent.com). The notes of the text with formatting as HTML."
        },
        "num_hearts": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "*Deprecated - please use likes instead* The number of users who have hearted this task."
        },
        "memberships": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "project": {
                "$ref": "#/components/schemas/ProjectCompact"
              },
              "section": {
                "$ref": "#/components/schemas/SectionCompact"
              }
            }
          },
          "readOnly": true,
          "description": "*Create-only*. Array of projects this task is associated with and the section it is in. At task creation time, this array can be used to add the task to specific sections. After task creation, these associations can be modified using the `addProject` and `removeProject` endpoints. Note that over time, more types of memberships may be added to this property."
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "readOnly": true,
          "description": "The time at which this task was last modified.\n\nThe following conditions will change `modified_at`:\n\n- story is created on a task\n- story is trashed on a task\n- attachment is trashed on a task\n- task is assigned or unassigned\n- custom field value is changed\n- the task itself is trashed\n- Or if any of the following fields are updated:\n  - completed\n  - name\n  - due_date\n  - description\n  - attachments\n  - items\n  - schedule_status\n\nThe following conditions will _not_ change `modified_at`:\n\n- moving to a new container (project, portfolio, etc)\n- comments being added to the task (but the stories they generate\n  _will_ affect `modified_at`)"
        },
        "completed_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-02-22T02:06:58.147Z",
          "nullable": true,
          "readOnly": true,
          "description": "The time at which this task was completed, or null if the task is incomplete."
        },
        "completed_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UserCompact"
            },
            {
              "nullable": true,
              "readOnly": true
            }
          ]
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AsanaResource"
          },
          "readOnly": true,
          "description": "[Opt In](https://raw.githubusercontent.com). Array of resources referencing tasks that this task depends on. The objects contain only the gid of the dependency."
        },
        "num_subtasks": {
          "type": "integer",
          "example": 3,
          "readOnly": true,
          "description": "[Opt In](https://raw.githubusercontent.com). The number of subtasks on this task.\n"
        },
        "approval_status": {
          "enum": [
            "pending",
            "approved",
            "rejected",
            "changes_requested"
          ],
          "type": "string",
          "example": "pending",
          "description": "*Conditional* Reflects the approval status of this task. This field is kept in sync with `completed`, meaning `pending` translates to false while `approved`, `rejected`, and `changes_requested` translate to true. If you set completed to true, this field will be set to `approved`."
        },
        "assignee_status": {
          "enum": [
            "today",
            "upcoming",
            "later",
            "new",
            "inbox"
          ],
          "type": "string",
          "example": "upcoming",
          "description": "*Deprecated* Scheduling status of this task for the user it is assigned to. This field can only be set if the assignee is non-null. Setting this field to \"inbox\" or \"upcoming\" inserts it at the top of the section, while the other options will insert at the bottom."
        },
        "actual_time_minutes": {
          "type": "number",
          "example": 200,
          "nullable": true,
          "readOnly": true,
          "description": "This value represents the sum of all the Time Tracking entries in the Actual Time field on a given Task. It is represented as a nullable long value."
        },
        "is_rendered_as_separator": {
          "type": "boolean",
          "example": false,
          "readOnly": true,
          "description": "[Opt In](https://raw.githubusercontent.com). In some contexts tasks can be rendered as a visual separator; for instance, subtasks can appear similar to [sections](https://raw.githubusercontent.com) without being true `section` objects. If a `task` object is rendered this way in any context it will have the property `is_rendered_as_separator` set to `true`."
        }
      }
    }
  ]
}
object TaskCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Bug Task",
          "description": "The name of the task."
        },
        "created_by": {
          "type": "object",
          "readOnly": true,
          "properties": {
            "gid": {
              "type": "string",
              "example": "1111",
              "description": "Globally unique identifier of the resource."
            },
            "resource_type": {
              "type": "string",
              "example": "user",
              "description": "The type of resource."
            }
          },
          "description": "[Opt In](https://raw.githubusercontent.com). A *user* object represents an account in Asana that can be given access to various workspaces, projects, and tasks."
        },
        "resource_subtype": {
          "enum": [
            "default_task",
            "milestone",
            "section",
            "approval"
          ],
          "type": "string",
          "example": "default_task",
          "description": "The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning.\nThe resource_subtype `milestone` represent a single moment in time. This means tasks with this subtype cannot have a start_date."
        }
      },
      "description": "The *task* is the basic object around which many operations in Asana are centered.",
      "x-docs-overrides": {
        "properties.resource_type.example": "task"
      }
    }
  ]
}
object TaskCountResponse
{
  "type": "object",
  "properties": {
    "num_tasks": {
      "type": "integer",
      "example": 200,
      "description": "The number of tasks in a project."
    },
    "num_milestones": {
      "type": "integer",
      "example": 10,
      "description": "The number of milestones in a project."
    },
    "num_completed_tasks": {
      "type": "integer",
      "example": 150,
      "description": "The number of completed tasks in a project."
    },
    "num_incomplete_tasks": {
      "type": "integer",
      "example": 50,
      "description": "The number of incomplete tasks in a project."
    },
    "num_completed_milestones": {
      "type": "integer",
      "example": 3,
      "description": "The number of completed milestones in a project."
    },
    "num_incomplete_milestones": {
      "type": "integer",
      "example": 7,
      "description": "The number of incomplete milestones in a project."
    }
  },
  "description": "A response object returned from the task count endpoint."
}
Load more schemas