Arctic Wolf Attachment API

The Attachment API from Arctic Wolf — 1 operation(s) for attachment.

OpenAPI Specification

arctic-wolf-attachment-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: 'APIs for retrieving and closing tickets for an organization.

    '
  title: Ticket Attachment API
  version: 1.0.0
servers:
- description: US001
  url: https://ticket-api.managedgw.us001-prod.arcticwolf.net
- description: US002
  url: https://ticket-api.managedgw.us002-prod.arcticwolf.net
- description: US003
  url: https://ticket-api.managedgw.us003-prod.arcticwolf.net
- description: EU001
  url: https://ticket-api.managedgw.eu001-prod.arcticwolf.net
- description: AU001
  url: https://ticket-api.managedgw.au001-prod.arcticwolf.net
- description: CA001
  url: https://ticket-api.managedgw.ca001-prod.arcticwolf.net
tags:
- name: Attachment
paths:
  /api/v1/organizations/{organizationUuid}/tickets/{ticketId}/attachments/{attachmentId}:
    get:
      summary: Download an attachment
      description: Get a presigned URL to download a ticket attachment
      operationId: getAttachment
      security:
      - BearerAuth: []
      tags:
      - Attachment
      parameters:
      - $ref: '#/components/parameters/OrganizationUuid'
      - $ref: '#/components/parameters/TicketId'
      - $ref: '#/components/parameters/AttachmentId'
      responses:
        '200':
          $ref: '#/components/responses/AttachmentURLResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  responses:
    ForbiddenError:
      description: Authenticated but insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            forbidden:
              value:
                code: forbidden
                description: Insufficient permissions to access this resource.
    NotFoundError:
      description: Ticket not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            notFound:
              value:
                code: not_found
                description: Ticket with ID 12345 was not found.
            attachmentNotFound:
              value:
                code: not_found
                description: Attachment with ID 123 belonging to Ticket with ID 456 was not found.
    UnauthorizedError:
      description: Authentication required or token invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            unauthorized:
              value:
                code: unauthorized
                description: Invalid or expired authentication token.
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            internalError:
              value:
                code: internal_server_error
                description: An unexpected error occurred while processing your request.
    AttachmentURLResponse:
      description: URL to download the attachment
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AttachmentURL'
          examples:
            attachmentURL:
              $ref: '#/components/examples/AttachmentURLExample'
  examples:
    AttachmentURLExample:
      summary: Example of a presigned URL for downloading an attachment
      value:
        url: https://example-bucket.s3.amazonaws.com/path/to/file.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAFAKEEXAMPLE%2F20260113%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260113T120000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
  schemas:
    Error:
      type: object
      description: Error envelope; returned when we encounter an error
      required:
      - code
      properties:
        code:
          description: Error code identifier
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
          minLength: 1
          maxLength: 100
        description:
          description: Detailed error description
          type: string
          pattern: ^[\s\S]*$
          minLength: 1
          maxLength: 1000
    AttachmentURL:
      type: object
      description: Response containing a presigned URL for downloading an attachment
      required:
      - url
      properties:
        url:
          type: string
          format: uri
          pattern: ^https?://[^\s/$.?#].[^\s]*$
          minLength: 10
          maxLength: 2048
          description: Presigned URL for downloading the attachment (expires after a limited time)
  parameters:
    AttachmentId:
      in: path
      name: attachmentId
      required: true
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 9223372036854776000
      description: The unique identifier for the attachment
      examples:
        attachmentId:
          value: 70001
    TicketId:
      in: path
      name: ticketId
      required: true
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 9223372036854776000
      description: The unique identifier for the ticket
      examples:
        ticketId:
          value: 12345
    OrganizationUuid:
      in: path
      name: organizationUuid
      required: true
      schema:
        type: string
        format: uuid
        pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
        minLength: 36
        maxLength: 36
      description: The unique identifier for the organization
      examples:
        uuid:
          value: 550e8400-e29b-41d4-a716-446655440000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT