Dynatrace Problems API v2

The Dynatrace Problems API v2 allows you to query and manage detected problems within a Dynatrace environment. It provides endpoints for listing open and closed problems, retrieving problem details including root cause analysis, and closing problems programmatically. It improves on v1 by supporting entity selectors for multi-entity targeting.

Documentation

Specifications

Examples

📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-alerting-profile-stub-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-comment-collection-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-comment-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-comment-request-body-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-constraint-violation-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-entity-stub-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-management-zone-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-problem-close-request-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-problem-close-result-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-problem-collection-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/examples/problems-api-v2-problem-example.json

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-alerting-profile-stub-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-comment-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-comment-request-body-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-comment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-constraint-violation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-entity-stub-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-management-zone-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-problem-close-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-problem-close-result-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-problem-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-schema/problems-api-v2-problem-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-alerting-profile-stub-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-comment-collection-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-comment-request-body-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-comment-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-constraint-violation-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-entity-stub-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-management-zone-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-problem-close-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-problem-close-result-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-problem-collection-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/dynatrace/refs/heads/main/json-structure/problems-api-v2-problem-structure.json

Other Resources

OpenAPI Specification

dynatrace-problems-api-v2-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Dynatrace Problems API v2
  version: 2.0.0
  description: >-
    The Dynatrace Problems API v2 allows you to query and manage detected
    problems within a Dynatrace environment. Problems represent degradations in
    service quality detected by the Dynatrace AI (Davis). The API provides
    endpoints for listing open and closed problems, retrieving detailed problem
    information including root cause analysis, closing problems programmatically,
    and managing problem comments for collaboration.
  contact:
    name: Dynatrace Support
    url: https://www.dynatrace.com/support/
  license:
    name: Dynatrace Terms of Service
    url: https://www.dynatrace.com/company/trust-center/terms/
  x-last-validated: '2026-04-18'
externalDocs:
  description: Dynatrace Problems API v2 Documentation
  url: https://docs.dynatrace.com/docs/discover-dynatrace/references/dynatrace-api/environment-api/problems-v2

servers:
- url: https://{environmentId}.live.dynatrace.com/api/v2
  description: Dynatrace SaaS environment
  variables:
    environmentId:
      description: The unique identifier of your Dynatrace environment
      default: mySampleEnv

tags:
- name: Problems
  description: Operations for querying and managing detected problems

security:
- api-token: []

paths:
  /problems:
    get:
      operationId: listProblems
      summary: Dynatrace List Problems
      description: >-
        Returns a list of problems from the Dynatrace environment. You can
        filter problems by problem selector, entity selector, time range, and
        other criteria. Results are paginated. By default, returns problems from
        the last two hours.
      tags:
      - Problems
      parameters:
      - name: nextPageKey
        in: query
        description: >-
          The cursor for the next page of results, obtained from the
          nextPageKey field of a previous response. When this parameter is
          set, all other query parameters except pageSize are ignored.
        required: false
        schema:
          type: string
        example: example-value
      - name: pageSize
        in: query
        description: >-
          The number of problems to return per page. Default is 50, maximum
          is 500.
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 500
          default: 50
        example: 500
      - name: problemSelector
        in: query
        description: >-
          Defines the scope of the query using the problem selector syntax.
          Allows filtering by status, severity, management zone, and other
          problem properties. For example, status(OPEN),severityLevel(AVAILABILITY).
        required: false
        schema:
          type: string
        example: type(SERVICE)
      - name: entitySelector
        in: query
        description: >-
          Filters results to problems affecting entities matching this
          selector. Use the entity selector syntax, e.g., type(SERVICE),
          tag(production). Problems are returned if any affected or impacted
          entity matches.
        required: false
        schema:
          type: string
        example: type(SERVICE)
      - name: from
        in: query
        description: >-
          The start of the queried time range. Use a relative expression
          (now-1h), ISO 8601 timestamp, or Unix timestamp in milliseconds.
          Default is now-2h.
        required: false
        schema:
          type: string
        example: example-value
      - name: to
        in: query
        description: >-
          The end of the queried time range. Use a relative expression (now),
          ISO 8601 timestamp, or Unix timestamp in milliseconds. Default is
          now.
        required: false
        schema:
          type: string
        example: example-value
      - name: sort
        in: query
        description: >-
          Defines the sort order of the results. Use field name prefixed with
          + for ascending or - for descending. For example, -startTime sorts
          by start time descending (newest first).
        required: false
        schema:
          type: string
        example: example-value
      - name: fields
        in: query
        description: >-
          Defines additional fields to include in the response beyond the
          default set. Use a comma-separated list. For example,
          +evidenceDetails,+impactAnalysis to include evidence and impact data.
        required: false
        schema:
          type: string
        example: example-value
      responses:
        '200':
          description: A paginated list of problems
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemCollection'
              examples:
                ListProblems200Example:
                  summary: Default listProblems 200 response
                  x-microcks-default: true
                  value:
                    nextPageKey: example-value
                    totalCount: 500
                    pageSize: 500
                    problems: &id005
                    - problemId: abc123
                      displayId: abc123
                      title: example-value
                      severityLevel: AVAILABILITY
                      status: OPEN
                      startTime: 1718153645993
                      endTime: 1718153645993
                      affectedEntities: &id001
                      - entityId: abc123
                        name: Production Service
                        type: STANDARD
                      impactedEntities: &id002
                      - entityId: abc123
                        name: Production Service
                        type: STANDARD
                      rootCauseEntity: example-value
                      managementZones: &id003
                      - id: abc123
                        name: Production Service
                      problemFilters: &id004
                      - id: abc123
                        name: Production Service
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /problems/{problemId}:
    get:
      operationId: getProblem
      summary: Dynatrace Get Problem Details
      description: >-
        Returns the full details of a specific problem, including its severity,
        affected and impacted entities, root cause analysis, evidence, and
        management zone assignments. The problem ID is available from the list
        problems endpoint.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      - name: fields
        in: query
        description: >-
          Defines additional fields to include in the response. Use a
          comma-separated list prefixed with +, e.g., +evidenceDetails.
        required: false
        schema:
          type: string
        example: example-value
      responses:
        '200':
          description: The problem details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                GetProblem200Example:
                  summary: Default getProblem 200 response
                  x-microcks-default: true
                  value:
                    problemId: abc123
                    displayId: abc123
                    title: example-value
                    severityLevel: AVAILABILITY
                    status: OPEN
                    startTime: 1718153645993
                    endTime: 1718153645993
                    affectedEntities: *id001
                    impactedEntities: *id002
                    rootCauseEntity: example-value
                    managementZones: *id003
                    problemFilters: *id004
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /problems/{problemId}/close:
    post:
      operationId: closeProblem
      summary: Dynatrace Close Problem
      description: >-
        Closes the specified problem and optionally attaches a closing message
        explaining the reason for closure. Only problems that are currently
        OPEN can be closed. Closing a problem will trigger any configured
        notifications for problem resolution.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      requestBody:
        description: Optional message to attach when closing the problem
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProblemCloseRequest'
            examples:
              CloseProblemRequestExample:
                summary: Default closeProblem request
                x-microcks-default: true
                value:
                  message: Example description.
      responses:
        '200':
          description: The problem was successfully closed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemCloseResult'
              examples:
                CloseProblem200Example:
                  summary: Default closeProblem 200 response
                  x-microcks-default: true
                  value:
                    problemId: abc123
                    closing: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /problems/{problemId}/comments:
    get:
      operationId: listProblemComments
      summary: Dynatrace List Comments on a Problem
      description: >-
        Returns a list of all comments attached to the specified problem.
        Comments are used for collaboration and tracking investigation notes
        or actions taken.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      - name: nextPageKey
        in: query
        description: Cursor for the next page of results.
        required: false
        schema:
          type: string
        example: example-value
      - name: pageSize
        in: query
        description: The number of comments to return per page. Default is 50.
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
          default: 50
        example: 500
      responses:
        '200':
          description: A list of comments on the problem
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentCollection'
              examples:
                ListProblemComments200Example:
                  summary: Default listProblemComments 200 response
                  x-microcks-default: true
                  value:
                    nextPageKey: example-value
                    totalCount: 500
                    comments: &id006
                    - id: abc123
                      createdAtTimestamp: 1718153645993
                      authorName: Production Service
                      content: example-value
                      context: example-value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createProblemComment
      summary: Dynatrace Add Comment to Problem
      description: >-
        Creates a new comment on the specified problem. Comments can include
        a context field to categorize or reference external systems. Useful
        for attaching remediation notes, ticket references, or investigation
        findings.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      requestBody:
        description: The comment to add to the problem
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentRequestBody'
            examples:
              CreateProblemCommentRequestExample:
                summary: Default createProblemComment request
                x-microcks-default: true
                value:
                  message: Example description.
                  context: example-value
      responses:
        '201':
          description: The comment was successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
              examples:
                CreateProblemComment201Example:
                  summary: Default createProblemComment 201 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    createdAtTimestamp: 1718153645993
                    authorName: Production Service
                    content: example-value
                    context: example-value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /problems/{problemId}/comments/{commentId}:
    get:
      operationId: getProblemComment
      summary: Dynatrace Get Comment
      description: >-
        Returns the details of a specific comment on a problem, identified by
        both the problem ID and the comment ID.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      - $ref: '#/components/parameters/commentId'
        example: example
      responses:
        '200':
          description: The comment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
              examples:
                GetProblemComment200Example:
                  summary: Default getProblemComment 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    createdAtTimestamp: 1718153645993
                    authorName: Production Service
                    content: example-value
                    context: example-value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateProblemComment
      summary: Dynatrace Update Comment
      description: >-
        Updates the content or context of an existing comment on a problem.
        Only the comment author or an administrator can update a comment.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      - $ref: '#/components/parameters/commentId'
        example: example
      requestBody:
        description: The updated comment content
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentRequestBody'
            examples:
              UpdateProblemCommentRequestExample:
                summary: Default updateProblemComment request
                x-microcks-default: true
                value:
                  message: Example description.
                  context: example-value
      responses:
        '200':
          description: The comment was successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
              examples:
                UpdateProblemComment200Example:
                  summary: Default updateProblemComment 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    createdAtTimestamp: 1718153645993
                    authorName: Production Service
                    content: example-value
                    context: example-value
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteProblemComment
      summary: Dynatrace Delete Comment
      description: >-
        Permanently deletes a specific comment from a problem. This action
        cannot be undone. Only the comment author or an administrator can
        delete a comment.
      tags:
      - Problems
      parameters:
      - $ref: '#/components/parameters/problemId'
        example: example
      - $ref: '#/components/parameters/commentId'
        example: example
      responses:
        '204':
          description: The comment was successfully deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    api-token:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Dynatrace API token. Use the format: Api-Token {your-token}
        Required scopes: problems.read (for GET operations), problems.write (for POST/PUT/DELETE)

  parameters:
    problemId:
      name: problemId
      in: path
      description: >-
        The unique identifier of the problem. Obtained from the list problems
        endpoint or from problem notification callbacks.
      required: true
      schema:
        type: string
    commentId:
      name: commentId
      in: path
      description: The unique identifier of the comment.
      required: true
      schema:
        type: string

  responses:
    BadRequest:
      description: Bad request — invalid query parameters or request body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Unauthorized:
      description: Unauthorized — missing or invalid API token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Forbidden:
      description: Forbidden — the API token lacks the required scope
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    NotFound:
      description: Not found — the specified problem or comment does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'

  schemas:
    Problem:
      type: object
      description: >-
        Represents a Dynatrace-detected problem, which is an aggregated
        set of related events indicating a service degradation. Problems are
        detected and correlated by the Davis AI engine.
      properties:
        problemId:
          type: string
          description: >-
            The internal unique identifier of the problem, e.g.,
            -1234567890123456789_V2.
          example: abc123
        displayId:
          type: string
          description: >-
            The human-readable problem identifier displayed in the Dynatrace
            UI, e.g., P-123456.
          example: abc123
        title:
          type: string
          description: >-
            The title summarizing the nature of the problem, generated by the
            Davis AI.
          example: example-value
        severityLevel:
          type: string
          description: >-
            The severity classification of the problem, indicating the type
            of impact.
          enum:
          - AVAILABILITY
          - ERROR
          - PERFORMANCE
          - RESOURCE_CONTENTION
          - CUSTOM_ALERT
          example: AVAILABILITY
        status:
          type: string
          description: The current status of the problem.
          enum:
          - OPEN
          - RESOLVED
          example: OPEN
        startTime:
          type: integer
          format: int64
          description: The Unix timestamp in milliseconds when the problem was first detected.
          example: 1718153645993
        endTime:
          type: integer
          format: int64
          description: >-
            The Unix timestamp in milliseconds when the problem was resolved.
            Returns -1 if the problem is still open.
          example: 1718153645993
        affectedEntities:
          type: array
          description: >-
            The list of entities directly affected by the problem. These are
            the entities where the anomaly was first detected.
          items:
            $ref: '#/components/schemas/EntityStub'
          example: *id001
        impactedEntities:
          type: array
          description: >-
            The list of entities experiencing degradation as a result of the
            problem, including downstream dependencies.
          items:
            $ref: '#/components/schemas/EntityStub'
          example: *id002
        rootCauseEntity:
          description: >-
            The entity identified by Davis AI as the root cause of the problem.
            Null if the root cause could not be determined.
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/EntityStub'
          example: example-value
        managementZones:
          type: array
          description: >-
            The management zones that contain the affected entities, used for
            access control and scoping.
          items:
            $ref: '#/components/schemas/ManagementZone'
          example: *id003
        problemFilters:
          type: array
          description: >-
            The alerting profiles (problem filters) that match this problem
            and control notification routing.
          items:
            $ref: '#/components/schemas/AlertingProfileStub'

          example: *id004
    ProblemCollection:
      type: object
      description: A paginated collection of problems.
      properties:
        nextPageKey:
          type: string
          description: Cursor for the next page of results. Null if no more pages.
          nullable: true
          example: example-value
        totalCount:
          type: integer
          format: int64
          description: The total number of problems matching the query.
          example: 500
        pageSize:
          type: integer
          description: The number of results returned on this page.
          example: 500
        problems:
          type: array
          description: The list of problems on this page.
          items:
            $ref: '#/components/schemas/Problem'

          example: *id005
    ProblemCloseRequest:
      type: object
      description: Request body for closing a problem.
      properties:
        message:
          type: string
          description: >-
            An optional message explaining why the problem is being closed.
            This is stored as a closing comment on the problem.

          example: Example description.
    ProblemCloseResult:
      type: object
      description: The result returned after closing a problem.
      properties:
        problemId:
          type: string
          description: The ID of the closed problem.
          example: abc123
        closing:
          type: boolean
          description: >-
            Whether the problem is in the process of closing. The problem
            may take a short time to fully transition to RESOLVED status.

          example: true
    CommentRequestBody:
      type: object
      description: The request body for creating or updating a problem comment.
      required:
      - message
      properties:
        message:
          type: string
          description: The text content of the comment.
          example: Example description.
        context:
          type: string
          description: >-
            An optional context reference for the comment, such as a ticket
            ID, a link to a runbook, or a category label.

          example: example-value
    Comment:
      type: object
      description: A single comment attached to a problem.
      properties:
        id:
          type: string
          description: The unique identifier of the comment.
          example: abc123
        createdAtTimestamp:
          type: integer
          format: int64
          description: The Unix timestamp in milliseconds when the comment was created.
          example: 1718153645993
        authorName:
          type: string
          description: The display name of the user who created the comment.
          example: Production Service
        content:
          type: string
          description: The text content of the comment.
          example: example-value
        context:
          type: string
          description: Optional context reference attached to the comment.

          example: example-value
    CommentCollection:
      type: object
      description: A paginated collection of problem comments.
      properties:
        nextPageKey:
          type: string
          description: Cursor for the next page of results.
          nullable: true
          example: example-value
        totalCount:
          type: integer
          format: int64
          description: The total number of comments.
          example: 500
        comments:
          type: array
          description: The list of comments on this page.
          items:
            $ref: '#/components/schemas/Comment'

          example: *id006
    EntityStub:
      type: object
      description: A lightweight reference to a monitored entity.
      properties:
        entityId:
          type: string
          description: >-
            The unique identifier of the entity, e.g.,
            SERVICE-1234567890ABCDEF.
          example: abc123
        name:
          type: string
          description: The display name of the entity.
          example: Production Service
        type:
          type: string
          description: >-
            The type of the entity, e.g., SERVICE, HOST, PROCESS_GROUP,
            APPLICATION.

          example: STANDARD
    ManagementZone:
      type: object
      description: A management zone reference.
      properties:
        id:
          type: string
          description: The unique identifier of the management zone.
          example: abc123
        name:
          type: string
          description: The display name of the management zone.

          example: Production Service
    AlertingProfileStub:
      type: object
      description: A reference to an alerting profile (problem filter).
      properties:
        id:
          type: string
          description: The unique identifier of the alerting profile.
          example: abc123
        name:
          type: string
          description: The display name of the alerting profile.

          example: Production Service
    ErrorEnvelope:
      type: object
      description: Error response envelope returned when a request fails.
      properties:
        error:
          $ref: '#/components/schemas/Error'

    Error:
      type: object
      description: Details of an API error.
      properties:
        code:
          type: integer
          description: The HTTP status code of the error.
          example: 500
        message:
          type: string
          description: A human-readable description of the error.
          example: Example description.
        constraintViolations:
          type: array
          description: A list of constraint violations for validation errors (HTTP 400).
          items:
            $ref: '#/components/schemas/ConstraintViolation'

          example:
          - path: example-value
            message: Example description.
            parameterLocation: example-value
            location: example-value
    ConstraintViolation:
      type: object
      description: Details of a single constraint violation in a request.
      properties:
        path:
          type: string
          description: The JSON path to the field that caused the violation.
          example: example-value
        message:
          type: string
          description: A description of the constraint violation.
          example: Example description.
        parameterLocation:
          type: string
          description: The location of the violating parameter (QUERY, PATH, BODY).
          example: example-value
        location:
          type: string
          description: The location detail for the violation.
          example: example-value