openapi: 3.0.1 info: title: Smokeball Activity Codes Notifications 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: Notifications paths: /notifications/{id}: get: tags: - Notifications summary: Get a notification description: Retrieves a specified notification. operationId: GetNotificationById parameters: - name: id in: path required: true schema: type: string responses: '200': description: When request is successful. Returns a 'Notification' object. content: application/json: schema: $ref: '#/components/schemas/Notification' '400': description: When an unsupported request is made. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: When notification with specified id is not associated with authenticated client. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: When notification with specified id does not exist. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /notifications: post: tags: - Notifications summary: Create a notification description: Creates a notification. operationId: CreateNotification requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/NotificationDto' application/json: schema: allOf: - $ref: '#/components/schemas/NotificationDto' application/*+json: schema: allOf: - $ref: '#/components/schemas/NotificationDto' responses: '202': description: When request is accepted. Returns a 'Link' object. content: application/json: schema: $ref: '#/components/schemas/Link' '400': description: When an unsupported request is made. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' components: schemas: 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 NotificationDto: type: object properties: staffId: type: string description: Staff id to notify. nullable: true example: 832e778f-83df-454a-b344-768a862a7e67 icon: type: string description: "The icon to display for the notification.\r\n\r\nWill be validated against the Smokeball icon sets." nullable: true example: '' iconColor: type: string description: The icon hex color to display for the notification. nullable: true example: '#25C9A4' message: type: string description: "The message to display for the notification.\r\n\r\nSupports basic markdown syntax, such as: ** bold **, -- italic --\r\n \r\nSupports basic UI markdown syntax for staff member id, such as [@staffId]" nullable: true example: '[@staffId] has **assigned** you a Task.' toastyIcon: type: string description: The toast notification icon to display for the notification. nullable: true toastyMessage: type: string description: The toast notification message to display for the notification. nullable: true actionUri: type: string description: The Smokeball uri to execute when the notification is clicked. nullable: true additionalProperties: false Notification: 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: Unique identifier of the notification. nullable: true example: e2fd015b-8a60-42be-9ea4-b2ef7aa0289b createdByUserId: type: string description: The user that created this notification. nullable: true example: db0b4298-67ef-4638-a92a-5bb830ea6af6 createdDate: type: string description: Staff id to notify. nullable: true example: '"832e778f-83df-454a-b344-768a862a7e67"' icon: type: string description: The icon to display for the notification. nullable: true example: '' iconColor: type: string description: The icon hex color to display for the notification. nullable: true example: '#25C9A4' message: type: string description: The message to display for the notification. nullable: true example: '[@staffId] has **assigned** you a Task.' toastyIcon: type: string description: The icon to display for the toast notification. nullable: true toastyMessage: type: string description: The message to display for the message. nullable: true isRead: type: boolean description: "True if the notification has been forcefully read by the user.\r\n \r\nThis is different to the property - which is not forceful." example: false hasBeenSeen: type: boolean description: "True if the notification was \"seen\" by the user.\r\n\r\nThis is different to the forceful \"read\" state." example: false creationTimestamp: type: string description: The time the notification was created. format: date-time updatedDate: type: string description: The last time the notification was modified (marked as read, deleted etc). format: date-time example: '2020-02-15T00:00:00Z' isDeleted: type: boolean description: True if the notification has been deleted. example: false 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: {} 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