object GoalsCreateNewGoalRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalResponse"
    }
  }
}
object GoalsDeleteRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object GoalsGetCompactRecordsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GoalCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object GoalsGetGoalRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalResponse"
    }
  }
}
object GoalsGetParentGoalsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GoalCompact"
      }
    }
  }
}
object GoalsRemoveFollowersFromGoalRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TaskAddFollowersRequest"
    }
  }
}
object GoalsRemoveFollowersFromGoalResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalResponse"
    }
  }
}
object GoalsUpdateGoalRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalUpdateRequest"
    }
  }
}
object GoalsUpdateGoalRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalResponse"
    }
  }
}
object GoalsUpdateMetricCurrentValueRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalMetricCurrentValueRequest"
    }
  }
}
object GoalsUpdateMetricCurrentValueResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GoalResponse"
    }
  }
}
object JobCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "not_started",
            "in_progress",
            "succeeded",
            "failed"
          ],
          "type": "string",
          "example": "in_progress",
          "readOnly": true,
          "description": "The current status of this job. The value is one of: `not_started`, `in_progress`, `succeeded`, or `failed`."
        },
        "new_task": {
          "allOf": [
            {
              "$ref": "#/components/schemas/TaskCompact"
            },
            {
              "type": "object",
              "nullable": true
            }
          ]
        },
        "new_project": {
          "$ref": "#/components/schemas/ProjectCompact"
        },
        "resource_subtype": {
          "type": "string",
          "example": "duplicate_task",
          "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."
        },
        "new_project_template": {
          "$ref": "#/components/schemas/ProjectTemplateCompact"
        }
      },
      "description": "A *job* is an object representing a process that handles asynchronous work.",
      "x-docs-overrides": {
        "properties.resource_type.example": "job"
      }
    }
  ]
}
object JobsGetByIdResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/JobCompact"
    }
  }
}
object Like
{
  "type": "object",
  "properties": {
    "gid": {
      "type": "string",
      "example": "12345",
      "readOnly": true,
      "description": "Globally unique identifier of the object, as a string."
    },
    "user": {
      "$ref": "#/components/schemas/UserCompact"
    }
  },
  "description": "An object to represent a user's like."
}
object MemberCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Greg Sanchez",
          "description": "The name of the member"
        },
        "resource_type": {
          "type": "string",
          "example": "user",
          "description": "The type of the member (team or user)"
        }
      },
      "description": "A *member* object represents either a team or user.",
      "x-docs-overrides": {
        "properties.resource_type.example": "member"
      }
    }
  ]
}
object MembershipCompact
{
  "anyOf": [
    {
      "$ref": "#/components/schemas/GoalMembershipCompact"
    },
    {
      "$ref": "#/components/schemas/ProjectMembershipCompactResponse"
    }
  ]
}
object MembershipRequest
{
  "type": "object",
  "properties": {
    "access_level": {
      "type": "string",
      "example": "editor",
      "description": "Sets the access level for the member. Can be `editor` or `commenter`. Projects can have `admin` in addition."
    }
  }
}
object MembershipResponse
{
  "anyOf": [
    {
      "$ref": "#/components/schemas/GoalMembershipResponse"
    },
    {
      "$ref": "#/components/schemas/ProjectMembershipCompactResponse"
    }
  ]
}
object MembershipUpdateRequest
{
  "type": "object",
  "properties": {
    "access_level": {
      "type": "string",
      "example": "editor",
      "description": "The role given to the member. Can be `editor` or `commenter`."
    }
  }
}
object MembershipsCreateNewRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreateMembershipRequest"
    }
  }
}
object MembershipsCreateNewRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MembershipResponse",
      "type": "object"
    }
  }
}
object MembershipsDeleteRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
object MembershipsGetMembershipRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ProjectMembershipCompactResponse"
    }
  }
}
object MembershipsGetMultipleResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MembershipCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object MembershipsUpdateMembershipRecordRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MembershipRequest"
    }
  }
}
object MembershipsUpdateMembershipRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MembershipResponse"
    }
  }
}
object ModifyDependenciesRequest
{
  "type": "object",
  "example": {
    "dependencies": [
      "133713",
      "184253"
    ]
  },
  "properties": {
    "dependencies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of task gids that a task depends on."
    }
  }
}
object ModifyDependentsRequest
{
  "type": "object",
  "example": {
    "dependents": [
      "133713",
      "184253"
    ]
  },
  "properties": {
    "dependents": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of task gids that are dependents of the given task."
    }
  },
  "description": "A set of dependent tasks."
}
object NextPage
{
  "type": "object",
  "nullable": true,
  "properties": {
    "uri": {
      "type": "string",
      "format": "uri",
      "example": "https://app.asana.com/api/1.0/tasks/12345/attachments?limit=2&offset=eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9",
      "readOnly": true,
      "description": "A full uri containing the query parameters to fetch for next_page"
    },
    "path": {
      "type": "string",
      "example": "/tasks/12345/attachments?limit=2&offset=eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9",
      "readOnly": true,
      "description": "A relative path containing the query parameters to fetch for next_page"
    },
    "offset": {
      "type": "string",
      "example": "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9",
      "readOnly": true,
      "description": "Pagination offset for the request."
    }
  },
  "description": "*Conditional*. This property is only present when a limit query parameter is provided in the request. When making a paginated request, the API will return a number of results as specified by the limit parameter. If more results exist, then the response will contain a next_page attribute, which will include an offset, a relative path attribute, and a full uri attribute. If there are no more pages available, next_page will be null and no offset will be provided. Note that an offset token will expire after some time, as data may have changed."
}
object OrganizationExportCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "state": {
          "enum": [
            "pending",
            "started",
            "finished",
            "error"
          ],
          "type": "string",
          "example": "started",
          "readOnly": true,
          "description": "The current state of the export."
        },
        "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."
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "example": "https://asana-export-us-east-1.s3.us-east-1.amazonaws.com/2563645399633793/domain_export/7588024658887731/download/ domain_export_2563645399633793_7588024658887731_2023018-201726.json.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256& X-Amz-Content-Sha256=xxxxxxxx&X-Amz-Date=xxxxxxxx&X-Amz-Expires=300&X-Amz-Security-Token=xxxxxxxx& X-Amz-Signature=xxxxxxxx&X-Amz-SignedHeaders=host&x-id=GetObject#_=_",
          "nullable": true,
          "readOnly": true,
          "description": "Download this URL to retreive the full export of the organization\nin JSON format. It will be compressed in a gzip (.gz) container.\n\n*Note: May be null if the export is still in progress or\nfailed.  If present, this URL may only be valid for 1 hour from\nthe time of retrieval. You should avoid persisting this URL\nsomewhere and rather refresh on demand to ensure you do not keep\nstale URLs.*"
        },
        "organization": {
          "$ref": "#/components/schemas/WorkspaceCompact"
        }
      },
      "description": "An *organization_export* object represents a request to export the complete data of an Organization in JSON format.",
      "x-docs-overrides": {
        "properties.resource_type.example": "organization_export"
      }
    }
  ]
}
object OrganizationExportRequest
{
  "type": "object",
  "properties": {
    "organization": {
      "type": "string",
      "example": "1331",
      "description": "Globally unique identifier for the workspace or organization."
    }
  },
  "description": "An *organization_export* request starts a job to export the complete data of the given Organization."
}
object OrganizationExportsCreateExportRequestRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OrganizationExportRequest"
    }
  }
}
object OrganizationExportsCreateExportRequestResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OrganizationExportCompact"
    }
  }
}
object OrganizationExportsGetExportDetailsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OrganizationExportCompact"
    }
  }
}
object PortfolioAddItemRequest
{
  "type": "object",
  "required": [
    "item"
  ],
  "properties": {
    "item": {
      "type": "string",
      "example": "1331",
      "description": "The item to add to the portfolio."
    },
    "insert_after": {
      "type": "string",
      "example": "1331",
      "description": "An id of an item in this portfolio. The new item will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified."
    },
    "insert_before": {
      "type": "string",
      "example": "1331",
      "description": "An id of an item in this portfolio. The new item will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified."
    }
  }
}
object PortfolioBase
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PortfolioCompact"
    },
    {
      "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"
          ],
          "type": "string",
          "example": "light-green",
          "description": "Color of the portfolio."
        }
      }
    }
  ]
}
object PortfolioCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Bug Portfolio",
          "description": "The name of the portfolio."
        }
      },
      "description": "A *portfolio* gives a high-level overview of the status of multiple initiatives in Asana. Portfolios provide a dashboard overview of the state of multiple projects, including a progress report and the most recent [project status](https://raw.githubusercontent.com) update.\nPortfolios have some restrictions on size. Each portfolio has a max of 500 items and, like projects, a max of 20 custom fields.",
      "x-docs-overrides": {
        "properties.resource_type.example": "portfolio"
      }
    }
  ]
}
object PortfolioMembershipCompact
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AsanaResource"
    },
    {
      "type": "object",
      "properties": {
        "user": {
          "$ref": "#/components/schemas/UserCompact"
        },
        "portfolio": {
          "$ref": "#/components/schemas/PortfolioCompact",
          "description": "[Opt In](https://raw.githubusercontent.com). The portfolio the user is a member of."
        }
      },
      "description": "This object determines if a user is a member of a portfolio.",
      "x-docs-overrides": {
        "properties.resource_type.example": "portfolio_membership"
      }
    }
  ]
}
object PortfolioMembershipsGetCompactResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PortfolioMembershipCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object PortfolioMembershipsGetCompleteRecordResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PortfolioMembershipCompact"
    }
  }
}
object PortfolioMembershipsListMultipleMembershipsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PortfolioMembershipCompact"
      }
    },
    "next_page": {
      "$ref": "#/components/schemas/NextPage"
    }
  }
}
object PortfolioRemoveItemRequest
{
  "type": "object",
  "required": [
    "item"
  ],
  "properties": {
    "item": {
      "type": "string",
      "example": "1331",
      "description": "The item to remove from the portfolio."
    }
  }
}
object PortfolioRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PortfolioBase"
    },
    {
      "type": "object",
      "properties": {
        "public": {
          "type": "boolean",
          "example": false,
          "description": "True if the portfolio is public to its workspace members."
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "Gid of an object."
          },
          "example": [
            "52164",
            "15363"
          ],
          "readOnly": true,
          "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": "167589",
          "description": "Gid of an object."
        }
      }
    }
  ]
}
object PortfolioResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PortfolioBase"
    },
    {
      "type": "object",
      "properties": {
        "owner": {
          "$ref": "#/components/schemas/UserCompact"
        },
        "due_on": {
          "type": "string",
          "format": "date",
          "example": "2019-09-15",
          "nullable": true,
          "description": "The localized day on which this portfolio is due. This takes a date with format YYYY-MM-DD."
        },
        "public": {
          "type": "boolean",
          "example": false,
          "description": "True if the portfolio is public to its workspace members."
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/UserCompact"
          },
          "readOnly": true
        },
        "start_on": {
          "type": "string",
          "format": "date",
          "example": "2019-09-14",
          "nullable": true,
          "description": "The day on which work for this portfolio begins, or null if the portfolio has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, `start_on` and `due_on` cannot be the same date.*"
        },
        "workspace": {
          "allOf": [
            {
              "$ref": "#/components/schemas/WorkspaceCompact"
            },
            {
              "type": "object",
              "description": "*Create-only*. The workspace or organization that the portfolio belongs to."
            }
          ]
        },
        "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"
        },
        "custom_fields": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomFieldCompact"
          },
          "description": "Array of Custom Fields."
        },
        "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."
        },
        "project_templates": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProjectTemplateCompact"
          },
          "readOnly": true,
          "description": "Array of project templates that are in the portfolio"
        },
        "current_status_update": {
          "allOf": [
            {
              "$ref": "#/components/schemas/StatusUpdateCompact"
            },
            {
              "nullable": true,
              "description": "The latest `status_update` posted to this portfolio."
            }
          ]
        },
        "custom_field_settings": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomFieldSettingResponse"
          },
          "description": "Array of custom field settings applied to the portfolio."
        }
      }
    }
  ]
}
object PortfoliosAddCustomFieldSettingRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AddCustomFieldSettingRequest"
    }
  }
}
object PortfoliosAddCustomFieldSettingResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CustomFieldSettingResponse"
    }
  }
}
object PortfoliosAddMembersToPortfolioRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AddMembersRequest"
    }
  }
}
object PortfoliosAddMembersToPortfolioResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PortfolioResponse"
    }
  }
}
object PortfoliosAddPortfolioItemRequest
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PortfolioAddItemRequest"
    }
  }
}
object PortfoliosAddPortfolioItemResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmptyResponse"
    }
  }
}
Load more schemas