Smokeball Roles API

The Roles API from Smokeball — 2 operation(s) for roles.

OpenAPI Specification

smokeball-roles-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Smokeball Activity Codes Roles 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: Roles
paths:
  /matters/{matterId}/roles:
    get:
      tags:
      - Roles
      summary: Get roles on a matter
      description: Returns associated roles for a specified matter.
      operationId: GetRolesOnMatter
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: When request is successful. Returns a 'MatterRoles' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatterRoles'
        '404':
          description: When the specified matter does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
      - Roles
      summary: Add role to a matter
      description: Appends a new role in the specified matter.
      operationId: AddAnotherRoleToMatter
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Version
        in: header
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RoleDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RoleDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RoleDto'
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the role to be created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          description: When an invalid role is provided for the specified matter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: When the specified matter does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /matters/{matterId}/roles/{id}:
    get:
      tags:
      - Roles
      summary: Get role on a matter
      description: Returns a role in a specified matter.
      operationId: GetRoleOnMatter
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: When request is successful. Returns a 'Role' object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
        '404':
          description: When the specified matter does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - Roles
      summary: Update role on a matter
      description: Updates a specified role on a matter.
      operationId: UpdateRole
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RoleDto'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RoleDto'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RoleDto'
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the role to be updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '404':
          description: When the specified matter does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
      - Roles
      summary: Remove role from a matter
      description: Removes a specified role from a matter.
      operationId: RemoveRoleFromMatter
      parameters:
      - name: matterId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Version
        in: header
        schema:
          type: integer
          format: int32
      responses:
        '202':
          description: When request is accepted. Returns a hypermedia 'Link' object of the role to be deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '404':
          description: When matter does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    RoleDto:
      type: object
      properties:
        name:
          type: string
          description: Name of the role.
          nullable: true
          example: Provider
        displayName:
          type: string
          description: Display Name of the role.
          nullable: true
          example: Medical Provider
        description:
          type: string
          description: Description of the role.
          nullable: true
          example: Client
        contactId:
          type: string
          description: Unique identifier of the contact.
          nullable: true
          example: c85d28cb-a760-4627-aa59-0a853c2e65ed
        representativeIds:
          type: array
          items:
            type: string
          description: List of associated representative contact ids.
          nullable: true
          example:
          - 776e778f-83df-454a-b344-768a862a7e67
        isMatterItemRequired:
          type: boolean
          description: Boolean flag indicating if matter item is required.
        relationships:
          type: array
          items:
            $ref: '#/components/schemas/RelationshipDto'
          description: List if relationships associated with the role.
          nullable: true
      additionalProperties: false
    Role:
      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 role.
          nullable: true
          example: 009f778f-83df-454a-b344-768a862a7e55
        name:
          type: string
          description: Name of the role.
          nullable: true
          example: Client
        contact:
          allOf:
          - $ref: '#/components/schemas/Link'
          description: Hypermedia link of the associated contact.
          nullable: true
        roleDescription:
          type: string
          description: Name of the role (user editable).
          nullable: true
          example: Head Honcho
        description:
          type: string
          description: Description of the role.
          nullable: true
          example: The person for whom I am working
        representatives:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          description: List of hypermedia links of the associated representatives.
          nullable: true
        relationships:
          type: array
          items:
            $ref: '#/components/schemas/Relationship'
          description: List of associated relationships.
          nullable: true
        isClient:
          type: boolean
          description: Boolean flag indicating if role belongs to a 'Client'.
          example: false
        isOtherSide:
          type: boolean
          description: Boolean flag indicating if role belongs to an 'OtherSide'.
          example: false
      additionalProperties: false
    MatterRoles:
      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
        versionId:
          type: string
          description: Version id of the record.
          nullable: true
          example: 832e778f-83df-454a-b344-768a862a7e67
        matterId:
          type: string
          description: Matter id.
          nullable: true
          example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
        roles:
          type: array
          items:
            $ref: '#/components/schemas/Role'
          description: List of associated roles.
          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: {}
    RelationshipDto:
      type: object
      properties:
        name:
          type: string
          description: Name of the relationship.
          nullable: true
          example: Provider
        displayName:
          type: string
          description: Display Name of the relationship.
          nullable: true
          example: Medical Provider
        contactId:
          type: string
          description: Unique identifier of the contact.
          nullable: true
          example: c85d28cb-a760-4627-aa59-0a853c2e65ed
        representativeIds:
          type: array
          items:
            type: string
          description: List of associated representative contact ids.
          nullable: true
          example:
          - 776e778f-83df-454a-b344-768a862a7e67
        isMatterItemRequired:
          type: boolean
          description: Boolean flag indicating if a matter item is required.
      additionalProperties: false
    Relationship:
      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 relationship.
          nullable: true
          example: 009f778f-83df-454a-b344-768a862a7e55
        name:
          type: string
          description: Name of the relationship.
          nullable: true
          example: Solicitor
        contact:
          allOf:
          - $ref: '#/components/schemas/Link'
          description: Hypermedia link of the associated contact.
          nullable: true
        representatives:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          description: List of hypermedia links of the associated representatives.
          nullable: true
      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