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