Smokeball Memos API

The Memos API from Smokeball — 2 operation(s) for memos.

OpenAPI Specification

smokeball-memos-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Smokeball Activity Codes Memos API
  version: '1.0'
  description: REST API for integrating with Smokeball legal practice management software. Supports matters, contacts, documents, time entries, billing, trust accounting, staff, webhooks, and law firm workflows across US, AU, and UK regions. Uses OAuth 2.0 (client credentials) authentication.
  contact:
    name: Smokeball Developer Support
    url: https://docs.smokeball.com/docs/api-docs/1e13a13124aee-introduction
  x-api-id: smokeball
  x-audience: external-public
servers:
- url: https://api.smokeball.com
- url: https://api.smokeball.com.au
- url: https://api.smokeball.co.uk
- url: https://stagingapi.smokeball.com
- url: https://stagingapi.smokeball.com.au
- url: https://stagingapi.smokeball.co.uk
security:
- api-key: []
  token: []
tags:
- name: Memos
paths:
  /matters/{matterId}/memos:
    get:
      tags:
      - Memos
      summary: Get memos on a matter
      description: Returns a list of memos on the specified matter.
      operationId: GetMemos
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
      - name: Offset
        in: query
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
      - name: Limit
        in: query
        schema:
          maximum: 500
          minimum: 1
          type: integer
          format: int32
      responses:
        '200':
          description: When request is successful. Returns a paged collection of 'Memo' objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemoPagedCollection'
    post:
      tags:
      - Memos
      summary: Create a memo on a matter
      description: Creates a memo on the specified matter.
      operationId: CreateMemo
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/MemoDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/MemoDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/MemoDto'
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the memo to be created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /matters/{matterId}/memos/{id}:
    get:
      tags:
      - Memos
      summary: Get a memo
      description: Retrieves a specified memo.
      operationId: GetMemoById
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: When request is successful. Returns a 'Memo' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Memo'
        '404':
          description: When the specified memo does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - Memos
      summary: Update a memo
      description: Updates a specified memo.
      operationId: UpdateMemo
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/MemoDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/MemoDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/MemoDto'
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the memo to be updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When the specified memo does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Memos
      summary: Delete a memo
      description: Deletes a specified memo.
      operationId: DeleteMemo
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the memo to be deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          description: When an unsupported request is made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When the specified memo does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    Memo:
      type: object
      properties:
        href:
          type: string
          nullable: true
        relation:
          type: string
          nullable: true
        method:
          type: string
          default: GET
          nullable: true
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
          nullable: true
        id:
          type: string
          description: The unique identifier of the memo.
          nullable: true
          example: 009f778f-83df-454a-b344-768a862a7e55
        matterId:
          type: string
          description: The unique identifier of the matter.
          nullable: true
          example: 776e778f-83df-454a-b344-768a862a6e58
        title:
          type: string
          description: The title of the memo.
          nullable: true
          example: Update
        text:
          type: string
          description: "The text (content) of the memo.\r\n            \r\nIn RTF (Rich Text Format)."
          nullable: true
          example: '{\\rtf1\\ansi\\ansicpg1252\\uc1\\htmautsp\\deff2{\\fonttbl{\\f0\\fcharset0 Times New Roman;}{\\f2\\fcharset0 Calibri;}}{\\colortbl\\red0\\green0\\blue0;\\red255\\green255\\blue255;}\\loch\\hich\\dbch\\pard\\plain\\ltrpar\\itap0{\\lang1033\\fs18\\f2\\cf0 \\cf0\\ql{\\f2 {\\ltrch There has been a recent update on this matter.}\\li0\\ri0\\sa0\\sb0\\fi0\\ql\\sl15\\slmult0\\par}\r\n}\r\n}'
        plainText:
          type: string
          description: The plain text (content) of the memo.
          nullable: true
          example: There has been a recent update on this matter.
        createdDate:
          type: string
          description: Date the memo was created.
          format: date-time
          example: '2022-04-23T14:00:00Z'
        createdByUserId:
          type: string
          description: The unique identifier of the user who created the memo.
          nullable: true
          example: 010f7d8e-82d1-454b-c324-760a862a7e22
        lastUpdated:
          type: string
          description: Date and time that the memo was last updated.
          format: date-time
          nullable: true
          example: '2022-05-02T16:22:02Z'
        updatedByUserId:
          type: string
          description: The unique identifier of the user who last updated the memo.
          nullable: true
          example: 010f7d8e-82d1-454b-c324-760a862a7e22
        isDeleted:
          type: boolean
          description: Indicates whether or not the memo is deleted (true if it is, false if not).
      additionalProperties: false
    MemoPagedCollection:
      type: object
      properties:
        id:
          type: string
          nullable: true
        href:
          type: string
          nullable: true
        relation:
          type: string
          nullable: true
        method:
          type: string
          default: GET
          nullable: true
        self:
          allOf:
          - $ref: '#/components/schemas/Link'
          nullable: true
        value:
          type: array
          items:
            $ref: '#/components/schemas/Memo'
          nullable: true
        offset:
          type: integer
          format: int32
          nullable: true
        limit:
          type: integer
          format: int32
          nullable: true
        size:
          type: integer
          format: int64
        first:
          allOf:
          - $ref: '#/components/schemas/Link'
          nullable: true
        previous:
          allOf:
          - $ref: '#/components/schemas/Link'
          nullable: true
        next:
          allOf:
          - $ref: '#/components/schemas/Link'
          nullable: true
        last:
          allOf:
          - $ref: '#/components/schemas/Link'
          nullable: true
      additionalProperties: false
    Link:
      type: object
      properties:
        id:
          type: string
          nullable: true
        href:
          type: string
          nullable: true
        relation:
          type: string
          nullable: true
        method:
          type: string
          default: GET
          nullable: true
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    MemoDto:
      required:
      - text
      - title
      type: object
      properties:
        title:
          minLength: 1
          type: string
          description: The title of the memo.
          example: Update
        text:
          type: string
          description: "The text (content) of the memo.\r\n            \r\nSupports plain-text and RTF."
          example: There has been a recent update on this matter.
        userId:
          type: string
          description: Unique identifier of the user.
          nullable: true
          example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
        createdDateUtc:
          type: string
          description: "Date that the memo was created.\r\n\r\nWill default to the current date and time, if not supplied."
          format: date-time
          nullable: true
          example: '2022-07-01'
      additionalProperties: false
  securitySchemes:
    api-key:
      type: apiKey
      name: x-api-key
      in: header
    token:
      type: apiKey
      name: Authorization
      in: header
      x-amazon-apigateway-authtype: cognito_user_pools