API: Posts
Represents a post in a board. Posts are also referred to as messages in the application.
This resource is currently a stub
Actions
| Link | Description | Condition | 
|---|---|---|
| addAttachment | Attach a file to the post | Permission: edit messages | 
Linked Properties
| Property | Description | Type | Constraints | Supported operations | 
|---|---|---|---|---|
| self | This post | Post | not null | READ | 
| attachments | The files attached to this post | Collection | READ | |
| project | The project the post belongs to | Project | not null | READ | 
Local Properties
| Property | Description | Type | Constraints | Supported operations | 
|---|---|---|---|---|
| id | Identifier of this post | Integer | x > 0 | READ | 
| subject | The post’s subject | String | not null | READ | 
Methods
View post
Retrieve an individual post as identified by the id parameter
 id
 integer 
required path
Post’s identifier
Example:1
200
OK
{
  "_embedded": {
    "project": {
      "_type": "Project..."
    }
  },
  "_links": {
    "addAttachment": {
      "href": "/api/v3/posts/1/attachments",
      "method": "post"
    },
    "attachments": {
      "href": "/api/v3/posts/1/attachments"
    },
    "project": {
      "href": "/api/v3/projects/1",
      "title": "A project with a title"
    },
    "self": {
      "href": "/api/v3/posts/1"
    }
  },
  "_type": "Post",
  "id": 1,
  "subject": "A post with a subject"
}
 PostModel{
  "type": "object",
  "required": [
    "subject"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "description": "Identifier of this post",
      "readOnly": true,
      "exclusiveMinimum": 0
    },
    "subject": {
      "type": "string",
      "description": "The post's subject"
    },
    "_links": {
      "type": "object",
      "properties": {
        "addAttachment": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            },
            {
              "description": "Attach a file to the post\n\n# Conditions\n\n**Permission**: edit messages",
              "readOnly": true
            }
          ]
        }
      }
    }
  },
  "example": {
    "_type": "Post",
    "id": 1,
    "subject": "A post with a subject",
    "_embedded": {
      "project": {
        "_type": "Project..."
      }
    },
    "_links": {
      "self": {
        "href": "/api/v3/posts/1"
      },
      "attachments": {
        "href": "/api/v3/posts/1/attachments"
      },
      "addAttachment": {
        "href": "/api/v3/posts/1/attachments",
        "method": "post"
      },
      "project": {
        "href": "/api/v3/projects/1",
        "title": "A project with a title"
      }
    }
  }
}
 404
Returned if the post does not exist or the client does not have sufficient permissions to see it.
Required permission: view messages in the post’s project
{
  "_type": "Error",
  "errorIdentifier": "urn:openproject-org:api:v3:errors:NotFound",
  "message": "The requested resource could not be found."
}
 ErrorResponse{
  "type": "object",
  "required": [
    "_type",
    "errorIdentifier",
    "message"
  ],
  "properties": {
    "_embedded": {
      "type": "object",
      "properties": {
        "details": {
          "type": "object",
          "properties": {
            "attribute": {
              "type": "string",
              "example": "project"
            }
          }
        }
      }
    },
    "_type": {
      "type": "string",
      "enum": [
        "Error"
      ]
    },
    "errorIdentifier": {
      "type": "string",
      "example": "urn:openproject-org:api:v3:errors:PropertyConstraintViolation"
    },
    "message": {
      "type": "string",
      "example": "Project can't be blank."
    }
  }
}