> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ctrl-hub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a comment

> Update the body of an existing comment. The previous version is preserved in the comment history.



## OpenAPI

````yaml /api-reference/openapi.yaml patch /v3/comments/{comment_id}
openapi: 3.1.0
info:
  contact:
    email: support@ctrl-hub.com
    name: Ctrl Hub
    url: https://www.ctrl-hub.com
  description: >
    Ctrl Hub is the all-in-one platform for high-risk industries like utilities,
    construction, infrastructure, and renewables. We help teams manage
    everything from risk assessments and HAVS exposure to vehicle and equipment
    checks, with a guaranteed minimum of 200% ROI.
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
  summary: An API for managing your compliance and risk posture
  termsOfService: https://www.ctrl-hub.com/terms-conditions
  title: Ctrl Hub
  version: 1.0.0
servers:
  - description: Production
    url: https://api.ctrl-hub.com
  - description: Staging
    url: https://api.ctrl-hub.dev
  - description: Development
    url: https://api.ctrl-hub.run
security: []
tags:
  - description: |
      Actions are follow-ups assigned to users and teams, produced manually or
      by domain producers such as the data-capture workflow runner.
    name: Actions
  - description: |
      Audit events are the events that are logged by the system.
    name: Audit Events
  - description: |
      View the platform's health and availability.
    name: Status
  - description: >
      User-owned dashboards composed of cards on a fixed-slot bento layout.
      Cards come from a per-domain registry; the API stores their config as
      opaque JSON.
    name: Dashboards
  - description: |
      Manage appointments for work to be carried out with your customers
    name: Customer Appointments
  - description: |
      Manage interactions you have with your customers
    name: Customer Interactions
  - description: |
      Manage accounts for your customers
    name: Customer Accounts and Contacts
  - description: |
      Qualifications are the skills and knowledge that an organisation requires.
    name: Qualifications
  - description: |
      Workflows allow you to automate your processes.
    name: Workflows
  - description: |
      Manage documents
    name: Documents
  - description: |
      Manage documents
    name: Folders
  - description: |
      Manage documents
    name: Document Reviews
  - description: |
      Manage feature configurations for an organisation.
    name: Feature Configurations
  - description: |
      Equipment are the physical assets that an organisation manages.
    name: Equipment
  - description: >
      Locations are places an organisation manages, optionally classified by a
      location type.
    name: Locations
  - description: |
      Manage your forms and their schemas
    name: Forms, Schemas and Categories
  - description: |
      Create and view form submissions
    name: Submissions
  - description: |
      View the roles available in the system.
    name: IAM Roles
  - description: >
      IAM role groups can be assigned to principals to manage authorisation
      centrally.
    name: IAM Role Groups
  - description: |
      Manage service accounts which can access the API programmatically.
    name: Service Accounts
  - description: |
      Manage bridges between organisations.
    name: Bridges
  - description: |
      Manage settings for an organisation.
    name: Settings
  - description: |
      Manage teams within an organisation.
    name: Teams
  - description: |
      Manage job roles within an organisation.
    name: Job Roles
  - description: |
      Manage users and accounts.
    name: Users
  - description: |
      Invite and manage invitations to organisations.
    name: Invitations
  - description: >
      IAM grants are the asignment of roles or permissions to principals to
      manage resource access.
    name: IAM Grants
  - description: |
      View the permissions available in the system.
    name: IAM Permissions
  - description: |
      SSO providers are the identity providers for an organisation.
    name: SSO Providers
  - description: |
      Whoami returns information about the currently authenticated principal.
    name: Whoami
  - description: |
      Manage your images
    name: Images
  - description: >
      AI agent personas that synthesise data into role-specific intelligent
      briefings.
    name: Agents
  - description: |
      Briefings generated by AI agents, including reasoning traces.
    name: Briefings
  - description: >
      Organisations are the center point for most resources in the platform.
      Most other endpoints are subresources of an organisation.
    name: Organisations
  - description: |
      Permits managements, integrated with street manager.
    name: Permits
  - description: |
      Projects manage your work and governance.
    name: Projects
  - description: >
      Import templates allow users to save and reuse their CSV importer
      configuration as named templates.
    name: Import Templates
  - description: |
      Properties are the physical locations.
    name: Properties
  - description: |
      Search across schemes, work orders, and operations.
    name: Search
  - description: |
      Provides the API specification in JSON and YAML formats
    name: Specifications
  - description: |
      Streets are the physical roads.
    name: Streets
  - description: |
      Integration with street manager
    name: Street Manager
  - description: |
      Vehicles are the physical vehicles that an organisation manages.
    name: Vehicles
  - description: >
      Scheme contracts (also known as regions) group schemes allocated from the
      network to a contractor.
    name: Scheme Contracts
  - description: >
      Scheme shares allow you to share your schemes with other organisations
      across bridges.
    name: Scheme Shares
  - description: |
      Schemes are large programmes of work
    name: Schemes
  - description: |
      Work orders the component parts of a scheme.
    name: Work Orders
  - description: |
      Operations are the work to be carried out within work orders.
    name: Operations
externalDocs:
  description: More documentation and resources
  url: https://docs.ctrl-hub.com
paths:
  /v3/comments/{comment_id}:
    patch:
      tags:
        - Comments
      summary: Update a comment
      description: >-
        Update the body of an existing comment. The previous version is
        preserved in the comment history.
      operationId: UpdateComment
      parameters:
        - $ref: '#/components/parameters/agent_issue_comment_id'
      requestBody:
        $ref: '#/components/requestBodies/UpdateAgentIssueComment'
      responses:
        '200':
          $ref: '#/components/responses/GetAgentIssueComment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorised'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - Session: []
        - Cookie: []
        - OAuth2: []
components:
  parameters:
    agent_issue_comment_id:
      name: comment_id
      in: path
      required: true
      description: The unique identifier for the comment.
      schema:
        type: string
        format: uuid
      example: e0000000-0000-0000-0000-000000000020
  requestBodies:
    UpdateAgentIssueComment:
      required: true
      description: The comment fields to update.
      content:
        application/vnd.api+json:
          schema:
            type: object
            required:
              - data
            properties:
              data:
                type: object
                required:
                  - type
                  - id
                  - attributes
                properties:
                  id:
                    type: string
                    format: uuid
                    description: The ID of the comment to update.
                  type:
                    type: string
                    const: comments
                  attributes:
                    type: object
                    properties:
                      body:
                        type: string
                        description: The updated text content of the comment.
  responses:
    GetAgentIssueComment:
      description: An individual agent issue comment.
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            allOf:
              - type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/AgentIssueComment'
                  included:
                    $ref: '#/components/schemas/AgentIssueCommentIncludes'
              - $ref: '#/components/schemas/JSONAPI'
    BadRequest:
      description: >
        There was an error with the request - this could be due to an invalid
        body, query parameters,

        or headers that were sent to the API.
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: 98ca4a78-b66f-4234-9719-aaf832ee6669
            status: '400'
            title: A validation error was encountered
            source:
              parameter: include
            meta:
              resource: wrong_value
    Unauthorised:
      description: Authentication failed
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: 05fc9c8d-73b9-4697-9337-57f7a567a48f
            status: '401'
            title: You are not authorised to access this resource
            detail: In order to access this resource, you need the 'admin' role.
            code: AUTH.001
    NotFound:
      description: The requested resource could not be found
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: 7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f
            status: '404'
            title: Resource not found
            detail: The requested resource could not be found or does not exist.
            code: NOT_FOUND.001
    InternalServerError:
      description: There was a problem handling the request on the server side
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: fe9d9a69-f0a7-4fdc-bb2c-176027f316c5
            status: '500'
            title: Internal Server Error
            detail: An unexpected error occurred on the server.
  headers:
    content-type:
      description: The content type of the response
      schema:
        type: string
      example: application/vnd.api+json
    content-length:
      description: The length of the response body in bytes
      schema:
        type: integer
        format: int32
      example: 1234
    x-request-id:
      description: >-
        An ID that can be provided when reporting bugs to help identify the
        issue
      schema:
        type: string
      example: 8470f56af4cf25e22be08e72c70dbbdc
  schemas:
    AgentIssueComment:
      type: object
      description: A comment on a resource
      required:
        - id
        - type
        - attributes
        - meta
        - relationships
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the comment.
        type:
          type: string
          const: comments
        attributes:
          $ref: '#/components/schemas/AgentIssueCommentAttributes'
        meta:
          $ref: '#/components/schemas/AgentIssueCommentMeta'
        relationships:
          $ref: '#/components/schemas/AgentIssueCommentRelationships'
    AgentIssueCommentIncludes:
      type: array
      description: Related resources that can be included when a comment is returned
      items:
        discriminator:
          propertyName: type
          mapping:
            agent-issues:
              $ref: '#/components/schemas/AgentIssue'
            plane-projects:
              $ref: '#/components/schemas/PlaneProject'
            plane-goals:
              $ref: '#/components/schemas/PlaneGoal'
            plane-plans:
              $ref: '#/components/schemas/PlanePlan'
        oneOf:
          - $ref: '#/components/schemas/AgentIssue'
          - $ref: '#/components/schemas/PlaneProject'
          - $ref: '#/components/schemas/PlaneGoal'
          - $ref: '#/components/schemas/PlanePlan'
    JSONAPI:
      type: object
      description: JSON API response object
      required:
        - jsonapi
      properties:
        jsonapi:
          type: object
          required:
            - version
          properties:
            version:
              type: string
              description: The version of the JSON API specification
              examples:
                - '1.0'
    Error:
      type: object
      description: An error response
      properties:
        id:
          description: >-
            A unique identifier for this particular occurrence of the problem.
            If you encounter this, please provide us with the error ID and we
            can investigate it on our side.
          type: string
          format: uuid
          examples:
            - 05fc9c8d-73b9-4697-9337-57f7a567a48f
        status:
          description: >-
            The status code for the error. This might not match the HTTP status
            code if there are more that one errors to return with different
            status codes.
          type: string
          examples:
            - '401'
            - '500'
        title:
          description: A human readable title for the error.
          type: string
          examples:
            - You are not authorised to access this resource
        detail:
          description: >-
            Where there is more detail that we can provide outside of the title,
            we will provide it here.
          type: string
          examples:
            - In order to access this resource, you need the 'admin' role.
        code:
          description: >-
            A unique code for the error that may help us to diagnose the issue.
            Not all errors have codes, so this is usually empty.
          type: string
          examples:
            - AUTH.001
        source:
          description: A JSON object containing additional information about the error.
          type: object
          properties:
            pointer:
              description: >-
                A JSON Pointer to the value in the request that caused the
                error.
              type: string
              examples:
                - /data/attributes/email
            parameter:
              description: >-
                A string indicating which query parameter in the request caused
                the error.
              type: string
              examples:
                - include
      required:
        - id
        - status
        - title
    AgentIssueCommentAttributes:
      type: object
      description: Attributes of an agent issue comment
      required:
        - body
      properties:
        body:
          type: string
          description: The text content of the comment.
    AgentIssueCommentMeta:
      type: object
      description: Metadata for an agent issue comment
      required:
        - created_at
        - updated_at
      properties:
        created_at:
          type: string
          format: date-time
          description: The date and time the comment was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time the comment was last updated.
        previous_versions:
          type: array
          description: Previous versions of the comment body, ordered oldest first.
          items:
            type: object
            properties:
              body:
                type: string
                description: The comment body at this version.
              author:
                type: object
                description: The author of this version.
                properties:
                  type:
                    type: string
                    description: The type of author.
                  id:
                    type: string
                    format: uuid
                    description: The unique identifier of the author.
              edited_at:
                type: string
                format: date-time
                description: The time this version was superseded.
    AgentIssueCommentRelationships:
      type: object
      description: Relationships for a comment
      required:
        - organisation
        - author
      properties:
        organisation:
          type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/OrganisationRelationship'
        agent_issue:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: agent-issues
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        plane_project:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-projects
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        plane_goal:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-goals
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        plane_plan:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-plans
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        author:
          type: object
          required:
            - data
          properties:
            data:
              type: object
              required:
                - type
                - id
              properties:
                type:
                  type: string
                  description: The type of author (e.g. users, agents).
                id:
                  type: string
                  format: uuid
              description: The author of this comment.
    AgentIssue:
      type: object
      description: An agent issue
      required:
        - id
        - type
        - attributes
        - meta
        - relationships
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the agent issue.
        type:
          type: string
          const: agent-issues
        attributes:
          $ref: '#/components/schemas/AgentIssueAttributes'
        meta:
          $ref: '#/components/schemas/AgentIssueMeta'
        relationships:
          $ref: '#/components/schemas/AgentIssueRelationships'
    PlaneProject:
      type: object
      description: A Plane project for organising AI agent issues
      required:
        - id
        - type
        - attributes
        - meta
        - relationships
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the plane project.
        type:
          type: string
          const: plane-projects
        attributes:
          $ref: '#/components/schemas/PlaneProjectAttributes'
        meta:
          $ref: '#/components/schemas/PlaneProjectMeta'
        relationships:
          $ref: '#/components/schemas/PlaneProjectRelationships'
    PlaneGoal:
      type: object
      description: A plane goal for tracking objectives and sub-goals
      required:
        - id
        - type
        - attributes
        - meta
        - relationships
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the plane goal.
        type:
          type: string
          const: plane-goals
        attributes:
          $ref: '#/components/schemas/PlaneGoalAttributes'
        meta:
          $ref: '#/components/schemas/PlaneGoalMeta'
        relationships:
          $ref: '#/components/schemas/PlaneGoalRelationships'
    PlanePlan:
      type: object
      description: A plan proposed by an agent for a goal, project, or issue
      required:
        - id
        - type
        - attributes
        - meta
        - relationships
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the plan.
        type:
          type: string
          const: plane-plans
        attributes:
          $ref: '#/components/schemas/PlanePlanAttributes'
        meta:
          $ref: '#/components/schemas/PlanePlanMeta'
        relationships:
          $ref: '#/components/schemas/PlanePlanRelationships'
    OrganisationRelationship:
      type: object
      description: Represents a relationship to an organisation
      required:
        - id
        - type
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the organisation
        type:
          type: string
          const: organisations
    AgentIssueAttributes:
      type: object
      description: Attributes of an agent issue
      required:
        - title
      properties:
        title:
          type: string
          description: The title of the issue.
        description:
          type: string
          description: A detailed description of the issue.
        status:
          type: string
          enum:
            - backlog
            - todo
            - in_progress
            - in_review
            - done
          description: The current status of the issue.
        priority:
          type: string
          enum:
            - none
            - urgent
            - high
            - medium
            - low
          description: The priority level of the issue.
        labels:
          type: array
          items:
            type: string
          description: Labels attached to the issue.
        closed:
          type: boolean
          description: Whether the issue is closed. Defaults to false (open).
    AgentIssueMeta:
      type: object
      description: Metadata for an agent issue
      required:
        - created_at
        - updated_at
      properties:
        created_at:
          type: string
          format: date-time
          description: The date and time the issue was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time the issue was last updated.
    AgentIssueRelationships:
      type: object
      description: Relationships for an agent issue
      required:
        - organisation
      properties:
        organisation:
          type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/OrganisationRelationship'
        author:
          type: object
          required:
            - data
          properties:
            data:
              type: object
              required:
                - type
                - id
              properties:
                type:
                  type: string
                  description: The type of author (e.g. users, agents).
                id:
                  type: string
                  format: uuid
              description: The author who created this issue.
        project:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-projects
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The project this issue belongs to.
        goal:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-goals
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The goal this issue is linked to.
        form:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: forms
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The form linked to this issue.
        parent_issue:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: agent-issues
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The parent issue. Null for top-level issues.
        duplicate_of:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: agent-issues
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The issue this one is a duplicate of. Null if not a duplicate.
        blocked_by:
          type: object
          properties:
            data:
              type: array
              items:
                type: object
                required:
                  - type
                  - id
                properties:
                  type:
                    type: string
                    const: agent-issues
                  id:
                    type: string
                    format: uuid
              description: Issues that block this issue.
        assignee_agent:
          type: object
          properties:
            data:
              oneOf:
                - $ref: '#/components/schemas/AgentRelationship'
                - type: 'null'
              description: The agent assigned to this issue.
    PlaneProjectAttributes:
      type: object
      description: Attributes of a plane project
      required:
        - name
        - identifier
      properties:
        name:
          type: string
          description: The display name of the project.
        identifier:
          type: string
          description: A short unique identifier for the project (e.g. CTR).
        description:
          type: string
          description: A description of the project.
        status:
          type: string
          enum:
            - planned
            - active
            - completed
            - archived
          description: The current status of the project.
        target_date:
          type: string
          format: date-time
          description: The target completion date for the project.
    PlaneProjectMeta:
      type: object
      description: Metadata for a plane project
      required:
        - created_at
        - updated_at
      properties:
        created_at:
          type: string
          format: date-time
          description: The date and time the project was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time the project was last updated.
    PlaneProjectRelationships:
      type: object
      description: Relationships for a plane project
      required:
        - organisation
      properties:
        organisation:
          type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/OrganisationRelationship'
        parent_project:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-projects
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The parent project. Null for top-level projects.
        goal:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-goals
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The goal this project is linked to.
    PlaneGoalAttributes:
      type: object
      description: Attributes of a plane goal
      required:
        - title
      properties:
        title:
          type: string
          description: The title of the goal.
        description:
          type: string
          description: A description of the goal.
        status:
          type: string
          enum:
            - planned
            - active
            - achieved
            - cancelled
          description: The current status of the goal.
    PlaneGoalMeta:
      type: object
      description: Metadata for a plane goal
      required:
        - created_at
        - updated_at
      properties:
        created_at:
          type: string
          format: date-time
          description: The date and time the goal was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time the goal was last updated.
    PlaneGoalRelationships:
      type: object
      description: Relationships for a plane goal
      required:
        - organisation
      properties:
        organisation:
          type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/OrganisationRelationship'
        parent_goal:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-goals
                    id:
                      type: string
                      format: uuid
                - type: 'null'
              description: The parent goal. Null for top-level goals.
        owner_agent:
          type: object
          properties:
            data:
              oneOf:
                - $ref: '#/components/schemas/AgentRelationship'
                - type: 'null'
              description: >-
                The agent this goal is assigned to. Null for company-level
                goals.
    PlanePlanAttributes:
      type: object
      description: Attributes of a plane plan
      required:
        - title
        - status
        - version
      properties:
        title:
          type: string
          description: The title of the plan.
        content:
          type: string
          description: The plan content in markdown format.
        status:
          type: string
          enum:
            - draft
            - review
            - approved
            - rejected
            - executing
            - completed
            - stalled
          description: The current status of the plan.
        version:
          type: integer
          description: The version number of this plan. Incremented on each revision.
        revision_reason:
          type: string
          description: >-
            Why this revision was created (rejection feedback or replan
            rationale).
        approved_by:
          type: string
          description: The user ID who approved the plan.
        approved_at:
          type: string
          format: date-time
          description: When the plan was approved.
    PlanePlanMeta:
      type: object
      description: Metadata for a plane plan
      required:
        - created_at
        - updated_at
      properties:
        created_at:
          type: string
          format: date-time
          description: The date and time the plan was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time the plan was last updated.
    PlanePlanRelationships:
      type: object
      description: Relationships for a plane plan
      required:
        - organisation
      properties:
        organisation:
          type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/OrganisationRelationship'
        goal:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-goals
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        project:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-projects
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        issue:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: agent-issues
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        author_agent:
          type: object
          properties:
            data:
              oneOf:
                - $ref: '#/components/schemas/AgentRelationship'
                - type: 'null'
        author_user:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: users
                    id:
                      type: string
                      format: uuid
                - type: 'null'
        previous_version:
          type: object
          properties:
            data:
              oneOf:
                - type: object
                  required:
                    - type
                    - id
                  properties:
                    type:
                      type: string
                      const: plane-plans
                    id:
                      type: string
                      format: uuid
                - type: 'null'
    AgentRelationship:
      type: object
      description: Represents a relationship to an agent
      required:
        - id
        - type
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the agent
        type:
          type: string
          const: agents
  securitySchemes:
    Session:
      description: |
        Session token for authentication.
      in: header
      name: X-Session-Token
      type: apiKey
    Cookie:
      description: |
        Cookie token for authentication.
      in: cookie
      name: ctrl_hub_session
      type: apiKey
    OAuth2:
      description: |
        OAuth2 token for authentication.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://auth.ctrl-hub.com/oauth2/token
      type: oauth2

````