{

"components": {
  "schemas": {
    "request": {
      "post": {
        "type": "object",
        "xml": { "name": "/" },
        "properties": {
          "task": {
            "type": "object",
            "required": ["name"],
            "properties": { "$ref": "task.json#/components/schemas/request_properties" }
          }
        }
      },
      "put": {
        "type": "object",
        "xml": { "name": "/" },
        "properties": {
          "task": {
            "type": "object",
            "properties": { "$ref": "task.json#/components/schemas/request_properties" }
          }
        }
      }
    },
    "request_properties": {
      "name": { "type": "string", "example": "Task Name" },
      "assignee": { "$ref": "../../components.json#/components/request/schemas/association_by_email" },
      "due_at": { "type": "string", "example": "Jan 01, 2030" },
      "is_complete": { "type": "boolean", "example": false }
    },
    "response": {
      "type": "object",
      "xml": { "name": "/", "wrapped": true },
      "properties": {
        "task": {
          "type": "object",
          "properties": {
            "id": { "$ref": "../../components.json#/components/response/schemas/id" },
            "name": { "type": "string", "example": "Task Name" },
            "due_at": { "type": "string", "example": "2030-01-01T00:00:00.000+01:00" },
            "requester": { "$ref": "../../components.json#/components/response/schemas/user_details" },
            "assignee": { "$ref": "../../components.json#/components/response/schemas/group_details" },
            "parent": { "$ref": "../../components.json#/components/response/schemas/parent_object" }
          }
        }
      }
    }
  }
}

}