RunWhen issues API

The issues API from RunWhen — 14 operation(s) for issues.

OpenAPI Specification

runwhen-issues-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: papi alert-query-proxy issues API
  description: RunWhen Platform API
  version: 2.0.0
tags:
- name: issues
paths:
  /api/v1/workspaces/{workspace_name}/issues:
    get:
      tags:
      - issues
      summary: List issues for a workspace
      description: 'List issues for a workspace with optional filters.


        Supports Django-compatible query parameters for filtering and pagination.'
      operationId: list_workspace_issues_api_v1_workspaces__workspace_name__issues_get
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: severity
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Filter by severity (1-4 or SEV1-SEV4, repeatable)
          title: Severity
        description: Filter by severity (1-4 or SEV1-SEV4, repeatable)
      - name: severity__in
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by severity (comma-sep, e.g. 1,2,3)
          title: Severity  In
        description: Filter by severity (comma-sep, e.g. 1,2,3)
      - name: severity__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: severity >= value'
          title: Severity  Gte
        description: 'Filter: severity >= value'
      - name: severity__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: severity <= value'
          title: Severity  Lte
        description: 'Filter: severity <= value'
      - name: closed
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Filter by closed status - true for closed, false for open
          title: Closed
        description: Filter by closed status - true for closed, false for open
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Search in title, task_title, and slx_name
          title: Search
        description: Search in title, task_title, and slx_name
      - name: task_title
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Exact match filter on issue.task_title. Use together with slx_name to narrow to all issues belonging to one task within an SLX without scanning the full SLX issue set on the client.
          title: Task Title
        description: Exact match filter on issue.task_title. Use together with slx_name to narrow to all issues belonging to one task within an SLX without scanning the full SLX issue set on the client.
      - name: latest_occurrence_at__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: latest_occurrence_at >= ISO datetime'
          title: Latest Occurrence At  Gte
        description: 'Filter: latest_occurrence_at >= ISO datetime'
      - name: modified__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: modified_at >= ISO datetime'
          title: Modified  Gte
        description: 'Filter: modified_at >= ISO datetime'
      - name: modified__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: modified_at <= ISO datetime'
          title: Modified  Lte
        description: 'Filter: modified_at <= ISO datetime'
      - name: created__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: created_at >= ISO datetime'
          title: Created  Gte
        description: 'Filter: created_at >= ISO datetime'
      - name: created__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: created_at <= ISO datetime'
          title: Created  Lte
        description: 'Filter: created_at <= ISO datetime'
      - name: open_since__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_since >= ISO datetime'
          title: Open Since  Gte
        description: 'Filter: open_since >= ISO datetime'
      - name: open_since__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_since <= ISO datetime'
          title: Open Since  Lte
        description: 'Filter: open_since <= ISO datetime'
      - name: open_occurrence_count__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_occurrence_count >= value'
          title: Open Occurrence Count  Gte
        description: 'Filter: open_occurrence_count >= value'
      - name: open_occurrence_count__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_occurrence_count <= value'
          title: Open Occurrence Count  Lte
        description: 'Filter: open_occurrence_count <= value'
      - name: total_occurrence_count__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: total_occurrence_count >= value'
          title: Total Occurrence Count  Gte
        description: 'Filter: total_occurrence_count >= value'
      - name: total_occurrence_count__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: total_occurrence_count <= value'
          title: Total Occurrence Count  Lte
        description: 'Filter: total_occurrence_count <= value'
      - name: details
        in: query
        required: false
        schema:
          type: boolean
          description: Include heavy fields from latest occurrence
          default: false
          title: Details
        description: Include heavy fields from latest occurrence
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 250
          minimum: 1
          description: Maximum number of results
          default: 100
          title: Limit
        description: Maximum number of results
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip
          default: 0
          title: Offset
        description: Number of results to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v1/workspaces/{workspace_name}/issues/{issue_id}:
    get:
      tags:
      - issues
      summary: Get an issue by ID
      description: "Get an issue by ID within a workspace.\n\nSupports optional occurrence timestamp slicing via query parameters.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    include_occurrence_timestamps: Opt-in for occurrence timestamps.\n    occurrence_tail: Return N most recent occurrences.\n    occurrence_from: Slice from position (1=latest).\n    occurrence_to: Slice to position (1=latest).\n    occurrence_window_gte: Filter occurrences observed_at >= this datetime.\n    occurrence_window_lte: Filter occurrences observed_at <= this datetime.\n    session: Database session.\n    current_user: The authenticated user.\n\nReturns:\n    The issue details.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found."
      operationId: get_workspace_issue_api_v1_workspaces__workspace_name__issues__issue_id__get
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      - name: include_occurrence_timestamps
        in: query
        required: false
        schema:
          type: boolean
          description: Include occurrence timestamps
          default: false
          title: Include Occurrence Timestamps
        description: Include occurrence timestamps
      - name: occurrence_tail
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          description: Return N most recent occurrences
          title: Occurrence Tail
        description: Return N most recent occurrences
      - name: occurrence_from
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          description: Slice from (1=latest, inclusive)
          title: Occurrence From
        description: Slice from (1=latest, inclusive)
      - name: occurrence_to
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          description: Slice to (1=latest, inclusive)
          title: Occurrence To
        description: Slice to (1=latest, inclusive)
      - name: occurrence_window_gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Window filter: observed_at >= ISO datetime'
          title: Occurrence Window Gte
        description: 'Window filter: observed_at >= ISO datetime'
      - name: occurrence_window_lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Window filter: observed_at <= ISO datetime'
          title: Occurrence Window Lte
        description: 'Window filter: observed_at <= ISO datetime'
      - name: occurrence_fields
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Comma-separated occurrence fields to include (e.g. observed_at)
          title: Occurrence Fields
        description: Comma-separated occurrence fields to include (e.g. observed_at)
      - name: occurrence_order
        in: query
        required: false
        schema:
          type: string
          description: 'Sort order for occurrences: asc or desc (default desc)'
          default: desc
          title: Occurrence Order
        description: 'Sort order for occurrences: asc or desc (default desc)'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
    patch:
      tags:
      - issues
      summary: Update an issue
      description: "Update an issue (partial update).\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    issue_data: The issue update data.\n    session: Database session.\n    current_user: The authenticated user.\n\nReturns:\n    The updated issue.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found."
      operationId: update_workspace_issue_api_v1_workspaces__workspace_name__issues__issue_id__patch
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
    delete:
      tags:
      - issues
      summary: Delete an issue
      description: "Delete an issue.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    session: Database session.\n    current_user: The authenticated user.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found."
      operationId: delete_workspace_issue_api_v1_workspaces__workspace_name__issues__issue_id__delete
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v1/workspaces/{workspace_name}/issues/{issue_id}/ignore:
    patch:
      tags:
      - issues
      summary: Ignore an issue
      description: "Ignore an issue.\n\nSets ignored_by_user, ignored_since, and ignored_until.\nAlso resets open_since and open_occurrence_count to close the issue.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    ignore_data: The ignore request data with required ignored_until.\n    session: Database session.\n    current_user: The authenticated user.\n\nReturns:\n    The ignored issue.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found."
      operationId: ignore_workspace_issue_api_v1_workspaces__workspace_name__issues__issue_id__ignore_patch
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueIgnoreRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v1/workspaces/{workspace_name}/issues/{issue_id}/close:
    patch:
      tags:
      - issues
      summary: Close an issue
      description: "Close an issue, optionally with a comment.\n\nSets the issue's closed_at timestamp and resets open_since\nand open_occurrence_count to 0.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    body: Optional request body with a comment.\n    session: Database session.\n    current_user: The authenticated user.\n\nReturns:\n    The closed issue.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found."
      operationId: close_workspace_issue_api_v1_workspaces__workspace_name__issues__issue_id__close_patch
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/IssueCloseRequest'
              - type: 'null'
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v1/workspaces/{workspace_name}/issues/{issue_id}/generate-next-steps:
    post:
      tags:
      - issues
      summary: Generate next steps for an issue using AI
      description: "Generate intelligent next steps for an issue using sobrain AI service.\n\nThis endpoint calls the sobrain service to generate suggested next steps\nbased on the issue details and optional comment context.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    request_data: Optional request data with comment contents.\n    session: Database session.\n    current_user: The authenticated user.\n    sobrain: Sobrain client for AI features.\n\nReturns:\n    Generated next steps for the issue.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found.\n    HTTPException: 503 if sobrain service is unavailable."
      operationId: generate_issue_next_steps_api_v1_workspaces__workspace_name__issues__issue_id__generate_next_steps_post
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/GenerateNextStepsRequest'
              - type: 'null'
              title: Request Data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateNextStepsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v1/workspaces/{workspace_name}/issues/{issue_id}/generate-summary:
    post:
      tags:
      - issues
      summary: Generate a summary for an issue using AI
      description: "Generate a summary for an issue using sobrain AI service.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    session: Database session.\n    current_user: The authenticated user.\n    sobrain: Sobrain client for AI features.\n\nReturns:\n    Generated summary for the issue.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found.\n    HTTPException: 503 if sobrain service is unavailable."
      operationId: generate_issue_summary_api_v1_workspaces__workspace_name__issues__issue_id__generate_summary_post
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateSummaryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v1/workspaces/{workspace_name}/runsessions/{runsession_id}/issues/{issue_id}/jit-summary:
    post:
      tags:
      - issues
      summary: Generate a just-in-time summary for an issue occurrence in a run session
      description: 'Generate a JIT summary for an issue within a specific run session context.


        Finds the latest occurrence of the issue, looks up the RunSessionIssueMap

        entry for the given run session, builds a payload, and calls Sobrain to

        generate a summary. Stores the summary in the occurrence''s additional_context.'
      operationId: jit_summary_api_v1_workspaces__workspace_name__runsessions__runsession_id__issues__issue_id__jit_summary_post
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: runsession_id
        in: path
        required: true
        schema:
          type: integer
          title: Runsession Id
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JitSummaryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v3/workspaces/{workspace_name}/issues:
    get:
      tags:
      - issues
      summary: List issues for a workspace
      description: 'List issues for a workspace with optional filters.


        Supports Django-compatible query parameters for filtering and pagination.'
      operationId: list_workspace_issues_api_v3_workspaces__workspace_name__issues_get
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: severity
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Filter by severity (1-4 or SEV1-SEV4, repeatable)
          title: Severity
        description: Filter by severity (1-4 or SEV1-SEV4, repeatable)
      - name: severity__in
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by severity (comma-sep, e.g. 1,2,3)
          title: Severity  In
        description: Filter by severity (comma-sep, e.g. 1,2,3)
      - name: severity__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: severity >= value'
          title: Severity  Gte
        description: 'Filter: severity >= value'
      - name: severity__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: severity <= value'
          title: Severity  Lte
        description: 'Filter: severity <= value'
      - name: closed
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Filter by closed status - true for closed, false for open
          title: Closed
        description: Filter by closed status - true for closed, false for open
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Search in title, task_title, and slx_name
          title: Search
        description: Search in title, task_title, and slx_name
      - name: task_title
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Exact match filter on issue.task_title. Use together with slx_name to narrow to all issues belonging to one task within an SLX without scanning the full SLX issue set on the client.
          title: Task Title
        description: Exact match filter on issue.task_title. Use together with slx_name to narrow to all issues belonging to one task within an SLX without scanning the full SLX issue set on the client.
      - name: latest_occurrence_at__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: latest_occurrence_at >= ISO datetime'
          title: Latest Occurrence At  Gte
        description: 'Filter: latest_occurrence_at >= ISO datetime'
      - name: modified__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: modified_at >= ISO datetime'
          title: Modified  Gte
        description: 'Filter: modified_at >= ISO datetime'
      - name: modified__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: modified_at <= ISO datetime'
          title: Modified  Lte
        description: 'Filter: modified_at <= ISO datetime'
      - name: created__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: created_at >= ISO datetime'
          title: Created  Gte
        description: 'Filter: created_at >= ISO datetime'
      - name: created__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: created_at <= ISO datetime'
          title: Created  Lte
        description: 'Filter: created_at <= ISO datetime'
      - name: open_since__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_since >= ISO datetime'
          title: Open Since  Gte
        description: 'Filter: open_since >= ISO datetime'
      - name: open_since__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_since <= ISO datetime'
          title: Open Since  Lte
        description: 'Filter: open_since <= ISO datetime'
      - name: open_occurrence_count__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_occurrence_count >= value'
          title: Open Occurrence Count  Gte
        description: 'Filter: open_occurrence_count >= value'
      - name: open_occurrence_count__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: open_occurrence_count <= value'
          title: Open Occurrence Count  Lte
        description: 'Filter: open_occurrence_count <= value'
      - name: total_occurrence_count__gte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: total_occurrence_count >= value'
          title: Total Occurrence Count  Gte
        description: 'Filter: total_occurrence_count >= value'
      - name: total_occurrence_count__lte
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter: total_occurrence_count <= value'
          title: Total Occurrence Count  Lte
        description: 'Filter: total_occurrence_count <= value'
      - name: details
        in: query
        required: false
        schema:
          type: boolean
          description: Include heavy fields from latest occurrence
          default: false
          title: Details
        description: Include heavy fields from latest occurrence
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 250
          minimum: 1
          description: Maximum number of results
          default: 100
          title: Limit
        description: Maximum number of results
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip
          default: 0
          title: Offset
        description: Number of results to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - BearerAuth: []
  /api/v3/workspaces/{workspace_name}/issues/{issue_id}:
    get:
      tags:
      - issues
      summary: Get an issue by ID
      description: "Get an issue by ID within a workspace.\n\nSupports optional occurrence timestamp slicing via query parameters.\n\nArgs:\n    workspace_name: The workspace name.\n    issue_id: The issue ID.\n    include_occurrence_timestamps: Opt-in for occurrence timestamps.\n    occurrence_tail: Return N most recent occurrences.\n    occurrence_from: Slice from position (1=latest).\n    occurrence_to: Slice to position (1=latest).\n    occurrence_window_gte: Filter occurrences observed_at >= this datetime.\n    occurrence_window_lte: Filter occurrences observed_at <= this datetime.\n    session: Database session.\n    current_user: The authenticated user.\n\nReturns:\n    The issue details.\n\nRaises:\n    HTTPException: 404 if workspace or issue not found."
      operationId: get_workspace_issue_api_v3_workspaces__workspace_name__issues__issue_id__get
      parameters:
      - name: workspace_name
        in: path
        required: true
        schema:
          type: string
          title: Workspace Name
      - name: issue_id
        in: path
        required: true
        schema:
          type: integer
          title: Issue Id
      - name: include_occurrence_timestamps
        in: query
        required: false
        schema:
          type: boolean
          description: Include occurrence timestamps
          default: false
          title: Include Occurrence Timestamps
        description: Include occurrence timestamps
      - name: occurrence_tail
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          description: Return N most recent occurrences
          title: Occurrence Tail
        description: Return N most recent occurrences
      - name: occurrence_from
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
    

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/runwhen/refs/heads/main/openapi/runwhen-issues-api-openapi.yml