Smokeball Events API

The Events API from Smokeball — 4 operation(s) for events.

OpenAPI Specification

smokeball-events-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Smokeball Activity Codes Events 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: Events
paths:
  /events:
    get:
      tags:
      - Events
      summary: Get events
      description: Returns a list of events.
      operationId: GetEvents
      parameters:
      - 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
      - name: UpdatedSince
        in: query
        description: "Filter by events updated since a specified time.\r\nSupported date formats are ISO YYYY-MM-DDThh:mm:ss or .net ticks representation of the UTC datetime."
        schema:
          type: string
          example: 2000-01-01T20:00:00 OR 630823536000000000
        example: 2000-01-01T20:00:00 OR 630823536000000000
      - name: MatterId
        in: query
        description: Filter by events assigned to a specific MatterId.
        schema:
          type: string
      - name: ExcludeDeletedEvents
        in: query
        description: 'Filter out any events that have been deleted, default: false'
        schema:
          type: boolean
          example: false
        example: false
      - name: From
        in: query
        description: "Filter events from a specified UTC date and time.\r\nDefaults to the UTC datetime of the request.\r\nDates should be provided in ISO format YYYY-MM-DDThh:mm:ss."
        schema:
          type: string
          format: date-time
          example: '2000-01-01T20:00:00'
        example: '2000-01-01T20:00:00'
      - name: To
        in: query
        description: "Filter events to a specified UTC date and time.\r\nIf no datetime is specified all future events will be returned.\r\nDates should be provided in ISO format YYYY-MM-DDThh:mm:ss."
        schema:
          type: string
          format: date-time
          example: '2000-01-01T20:00:00'
        example: '2000-01-01T20:00:00'
      responses:
        '200':
          description: When request is successful. Returns a paged collection of 'Event' objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventPagedCollection'
    post:
      tags:
      - Events
      summary: Create event
      description: Create new event.
      operationId: CreateEvent
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/EventDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/EventDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/EventDto'
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the event to be created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
  /events/{eventId}:
    get:
      tags:
      - Events
      summary: Get an event
      description: Retrieves a specified event.
      operationId: GetEventById
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: When request is successful. Returns an 'Event' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        '403':
          description: When the authenticated account does not access to the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When event with specified id does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - Events
      summary: Update event
      description: Updates event details.
      operationId: UpdateEvent
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/EventDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/EventDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/EventDto'
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the event to be updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '404':
          description: When event does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Events
      summary: Delete event
      description: Deletes a specified event.
      operationId: DeleteEvent
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the event to be deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '404':
          description: When 'Event' does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /events/{eventId}/reminders:
    get:
      tags:
      - Events
      summary: Gets reminders for an event
      description: Returns the collection of reminders for an event
      operationId: GetReminders
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: When request is successful. Returns the collection of reminders.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReminderDto'
        '403':
          description: When the authenticated account does not have access to the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When event with specified id does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
      - Events
      summary: Create reminder for an event
      description: Creates a new reminder for an event.
      operationId: CreateReminder
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ReminderDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ReminderDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ReminderDto'
      responses:
        '202':
          description: When request is accepted. Returns a 'Link' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '403':
          description: When the authenticated account does not have access to the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When event with specified id does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /events/{eventId}/reminders/{reminderId}:
    put:
      tags:
      - Events
      summary: Update a reminder for an event
      description: Updates an existing reminder for an event.
      operationId: UpdateReminder
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - name: reminderId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ReminderDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ReminderDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ReminderDto'
      responses:
        '202':
          description: When request is accepted. Returns a 'Link' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '403':
          description: When the authenticated account does not have access to the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When event with specified id does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Events
      summary: Delete reminder for an event
      description: Deletes a specified event reminder.
      operationId: DeleteReminder
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - name: reminderId
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: When request is accepted. Returns a 'Link' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '403':
          description: When the authenticated account does not have access to the event.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When event with specified id does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    EventDto:
      type: object
      properties:
        matterId:
          type: string
          description: Matter Id.
          nullable: true
          example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
        subject:
          type: string
          description: Subject of event.
          nullable: true
          example: Subject
        description:
          type: string
          description: Description of event.
          nullable: true
          example: Description
        location:
          type: string
          description: Location of event.
          nullable: true
          example: Location
        allDay:
          type: boolean
          description: Whether or not the event is all day.
          example: false
        nonBillable:
          type: boolean
          description: "Whether or not the event is billable.\r\nNote events with a duration greater than 12 hours automatically become non-billable."
          example: false
        type:
          allOf:
          - $ref: '#/components/schemas/EventType'
          description: "The type of the event.\r\n\r\nWe currently support create and updates requests for non recurring events (type = Normal)."
          nullable: true
          example: Normal
        eventType:
          allOf:
          - $ref: '#/components/schemas/EventType'
          description: "**Deprecated.** Use `type` instead.\n\nThe type of the event.\r\n\r\nWe currently support create and updates requests for non recurring events (EventType = 0)."
          nullable: true
          example: '0'
          deprecated: true
        attendees:
          type: array
          items:
            type: string
          description: The staff Ids of the attendees of the event.
          nullable: true
        externalAttendees:
          type: array
          items:
            type: string
          description: "The contact Ids of the external or third party attendees of the event.\r\n\r\nThe contacts must be of Person type and must be part of the matter."
          nullable: true
        startTime:
          type: string
          description: "Start date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date and time will correlate with the time zone provided."
          format: date-time
          example: '2000-01-01T20:00:00'
        endTime:
          type: string
          description: "End date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date and time will correlate with the time zone provided."
          format: date-time
          example: '2000-01-01T20:00:00'
        timeZone:
          type: string
          description: "Time zone of the event for determining the start time and end time.\r\nTime zones are expected in the IANA time zone format.\r\nFor a list of valid time zones, see https://nodatime.org/TimeZones."
          nullable: true
          example: Australia/Sydney
        additionalData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: Collection of key value pairs to update file meta data.
          nullable: true
      additionalProperties: false
    EventPagedCollection:
      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/Event'
          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
    ReminderDto:
      type: object
      properties:
        offset:
          type: integer
          format: int32
        offsetTypeId:
          type: integer
          format: int32
        isAllDayReminder:
          type: boolean
        userIds:
          type: array
          items:
            type: string
          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: {}
    EventType:
      enum:
      - Normal
      - Pattern
      - Occurrence
      - ChangedOccurrence
      - DeletedOccurrence
      type: string
      description: "The type of the event.\r\n\r\nPossible values: Non Recurring Event = 0, Recurring Pattern Series = 1, Single Recurring Occurrence = 2, Modified Recurring Occurrence = 3, Deleted Recurring Occurrence = 4"
    Event:
      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 event.
          nullable: true
          example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
        matter:
          allOf:
          - $ref: '#/components/schemas/Link'
          description: Hypermedia link of the associated matter.
          nullable: true
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          description: Hypermedia link of all the attendees.
          nullable: true
        externalAttendees:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          description: Hypermedia link of all the contacts of the external or third party attendees.
          nullable: true
        eventType:
          allOf:
          - $ref: '#/components/schemas/EventType'
          description: "**Deprecated.** Use `type` instead.\n\nThe type of the event.\r\n\r\nPossible values: Non Recurring Event = 0, Recurring Pattern Series = 1, Single Recurring Occurrence = 2, Modified Recurring Occurrence = 3, Deleted Recurring Occurrence = 4"
          example: '0'
          deprecated: true
        type:
          allOf:
          - $ref: '#/components/schemas/EventType'
          description: "The type of the event.\r\n\r\nPossible values: Normal, Pattern, Occurrence, ChangedOccurrence, DeletedOccurrence"
          example: Normal
        subject:
          type: string
          description: Subject of event.
          nullable: true
          example: Subject
        description:
          type: string
          description: Description of event.
          nullable: true
          example: Description
        location:
          type: string
          description: Location of event.
          nullable: true
          example: Location
        allDay:
          type: boolean
          description: Whether or not the event is all day.
          example: false
        nonBillable:
          type: boolean
          description: "Whether or not the event is billable.\r\nNote events with a duration greater than 12 hours automatically become non-billable."
          example: false
        startTime:
          type: string
          description: "Start date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date and time will correlate with the time zone provided."
          format: date-time
          example: '2000-01-01T20:00:00'
        endTime:
          type: string
          description: "End date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date and time will correlate with the time zone provided."
          format: date-time
          example: '2000-01-01T20:00:00'
        timeZone:
          type: string
          description: "Time zone of the event for determining the start time and end time.\r\nTime zones will be in the IANA time zone format."
          nullable: true
          example: Australia/Sydney
        lastUpdated:
          type: string
          description: "The last date and time the event was updated.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss."
          format: date-time
          example: '2000-01-01T20:00:00'
        additionalData:
          type: object
          additionalProperties:
            type: string
            nullable: true
          description: Any additional data provided for the event.
          nullable: true
        isDeleted:
          type: boolean
          description: Whether the event has been deleted.
          example: false
      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