openapi: 3.0.3

info:
  title: Action (Matter) Folders
  description: "For retrieving Matter Folders. For historical reasons Matters are referred to as *actions* in this version of the API. The Action Folder resource represents document folders associated with a Matter. For information of how to construct requests utilising fieldsets, sorting, paging, filters, and '*includes*', please refer to the API Developer Portal. E&OE."
  version: "1.0"

externalDocs:
  description: API Developer Portal - Constructing API Requests
  url: https://docs.actionstep.com/api-requests/

paths:
  '/actionfolders':
    get:
      description: Returns the collection of all folders for all Matters. For information on how to construct requests filtering by various properties, please refer to the API Developer Portal.
      tags:
        - Action Folders
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedActionFolders'

  '/actionfolders/{id}':
    get:
      description: Returns a single Matter folder.
      tags:
        - Action Folders
      parameters:
        - name: id
          in: path
          description: Unique identifier for a Matter folder.
          required: true
          schema:
            type: integer
            format: int32
          example: 1050
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionFolder'

components:
  schemas:
    PagedActionFolders:
      type: object
      properties:
        actionfolders:
          type: array
          items:
            $ref: '#/components/schemas/ActionFolder'
        meta:
          $ref: '#/components/schemas/PageMetaData'

    PageMetaData:
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/PagingData'

    PagingData:
      type: object
      properties:
        actionfolders:
          $ref: '#/components/schemas/ActionFolderPageData'

    ActionFolderPageData:
      type: object
      properties:
        recordCount:
          description: The total number of Matter folders returned by the underlying query.
          type: integer
          example: 1346
        pageCount:
          description: The total number of pages generated by the underlying query.
          type: integer
          example: 27
        page:
          description: The page number for this page of Matter folders.
          type: integer
          example: 2
        pageSize:
          description: Page size.
          type: integer
          example: 50
        prevPage:
          description: A URL to the previous page of Matter folders.
          type: string
          example: https://ap-southeast-2.actionstep.com/api/rest/actionfolders?page=1
        nextPage:
          description: A URL to the next page of Matter folders.
          type: string
          example: https://ap-southeast-2.actionstep.com/api/rest/actionfolders?page=3

    ActionFolder:
      type: object
      properties:
        id:
          description: Unique identifier for the Matter folder.
          example: 1050
          type: integer
        name:
          description: Name of the Matter folder.
          example: Purchase Documents
          type: string
        links:
          $ref: '#/components/schemas/ActionsFolderLinks'

    ActionsFolderLinks:
      type: object
      properties:
        action:
          description: Unique identifier of the associated Matter.
          example: 4580
          type: integer
        parentFolder:
          description: Unique identifier of a parent folder (if applicable).
          example: null
          type: integer