Shareworks Company Board API

The Company Board API from Shareworks — 3 operation(s) for company board.

OpenAPI Specification

shareworks-company-board-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Shareworks Admin REST Authentication Token Company Board API
  description: Shareworks Admin REST API
  version: 1.0.0
servers:
- url: https://shareworks.solium.com/rest/admin
  description: Production
- url: https://sum-qa02.shareworks.com/rest/admin
  description: Sandbox
security:
- accessToken: []
tags:
- name: Company Board
paths:
  /v1/company/{companyId}/board/appointment:
    post:
      tags:
      - Company Board
      summary: POST Company Board Appointment (Create)
      description: Create a company board appointment to assign a stakeholder to the board
      operationId: createAppointment
      parameters:
      - name: Shareworks-Request-Id
        in: header
        description: An identifier unique to this request.  If a connection is broken or a response does not come in a timely manner, submit the same request again with this same identifier. Shareworks ensures that duplicate requests with the same identifier will only be processed once and will all return the same response.
        required: false
        schema:
          type: string
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyBoardAppointmentCreateCrudRequest'
      responses:
        '201':
          description: Created. An object is created and returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyBoardAppointmentDetails'
        '400':
          description: "The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.\n\nAlso occurs when using Shareworks-Request-Id header if:  \n- A previous request with the identifier has been submitted but is not yet complete  \n    - errors[] will include {code: 461, message: A request with the provided Shareworks-Request-Id is currently in-progress}  \n- A previous, but different, request was already processed with the same identifier  \n    - errors[] will include {code: 460, message: The provided Shareworks-Request-Id header is not unique for this user}"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
  /v1/company/{companyId}/board:
    get:
      tags:
      - Company Board
      summary: GET Company Board
      description: Retrieve the details of the company board for officer/director tracking, including details of the company board appointments
      operationId: getCompanyBoard
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyBoardDetailsWithAppointments'
        '400':
          description: The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
    put:
      tags:
      - Company Board
      summary: PUT Company Board (Update)
      description: Update the details of the company board for officer/director tracking
      operationId: updateCompanyBoard
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyBoardCrudRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyBoardDetails'
        '400':
          description: The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
    post:
      tags:
      - Company Board
      summary: POST Company Board (Create)
      description: Create the company board for officer/director tracking
      operationId: createCompanyBoard
      parameters:
      - name: Shareworks-Request-Id
        in: header
        description: An identifier unique to this request.  If a connection is broken or a response does not come in a timely manner, submit the same request again with this same identifier. Shareworks ensures that duplicate requests with the same identifier will only be processed once and will all return the same response.
        required: false
        schema:
          type: string
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyBoardCrudRequest'
      responses:
        '201':
          description: Created. An object is created and returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyBoardDetails'
        '400':
          description: "The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.\n\nAlso occurs when using Shareworks-Request-Id header if:  \n- A previous request with the identifier has been submitted but is not yet complete  \n    - errors[] will include {code: 461, message: A request with the provided Shareworks-Request-Id is currently in-progress}  \n- A previous, but different, request was already processed with the same identifier  \n    - errors[] will include {code: 460, message: The provided Shareworks-Request-Id header is not unique for this user}"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
  /v1/company/{companyId}/board/appointment/{appointmentId}:
    get:
      tags:
      - Company Board
      summary: GET Company Board Appointment
      description: Retrieve the details of the specified company board assignment
      operationId: getBoardAppointment
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: appointmentId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyBoardAppointmentDetails'
        '400':
          description: The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
    put:
      tags:
      - Company Board
      summary: 'PUT Company Board Appointment (Update) '
      description: Update the details of the specified company board appointment
      operationId: updateAppointment
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: appointmentId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyBoardAppointmentUpdateCrudRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyBoardAppointmentDetails'
        '400':
          description: The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
components:
  schemas:
    CompanyBoardAppointmentUpdateCrudRequest:
      title: Company Board Appointment Body
      required:
      - dateAppointed
      - isDirector
      - isIndependent
      - isOfficer
      - title
      type: object
      properties:
        title:
          type: string
          description: Title of the stakeholder position on the board (e.g. CFO)
        isIndependent:
          type: boolean
          description: Whether the company board appointment is an independent
        isDirector:
          type: boolean
          description: Whether the company board appointment is a director
        isOfficer:
          type: boolean
          description: Whether the company board appointment is an officer
        dateAppointed:
          type: string
          description: Date of appointment for the company board appointment
          format: date
        dateApproved:
          type: string
          description: Date of approval for the company board appointment
          format: date
        dateTerminated:
          type: string
          description: Date of termination for the company board appointment
          format: date
        note:
          type: string
          description: Notes for the company board appointment
    ErrorWithCode:
      title: Validation Error
      required:
      - code
      - message
      type: object
      properties:
        message:
          type: string
          description: Message describing the error
        code:
          type: integer
          description: Unique code for the validation error
          format: int32
    CompanyBoardAppointmentCreateCrudRequest:
      title: Company Board Appointment Body
      required:
      - dateAppointed
      - isDirector
      - isIndependent
      - isOfficer
      - stakeholderId
      - title
      type: object
      properties:
        stakeholderId:
          type: integer
          description: Identifier for the stakeholder
          format: int32
        title:
          type: string
          description: Title of the stakeholder position on the board (e.g. CFO)
        isIndependent:
          type: boolean
          description: Whether the company board appointment is an independent
        isDirector:
          type: boolean
          description: Whether the company board appointment is a director
        isOfficer:
          type: boolean
          description: Whether the company board appointment is an officer
        dateAppointed:
          type: string
          description: Date of appointment for the company board appointment
          format: date
        dateApproved:
          type: string
          description: Date of approval for the company board appointment
          format: date
        dateTerminated:
          type: string
          description: Date of termination for the company board appointment
          format: date
        note:
          type: string
          description: Notes for the company board appointment
    CompanyBoardCrudRequest:
      title: Company Board Body
      required:
      - maximumSize
      - minimumSize
      - setAtSize
      type: object
      properties:
        maximumSize:
          type: integer
          description: Maximum number of stakeholders that may be on the board at one time
          format: int64
        minimumSize:
          type: integer
          description: Minimum number of stakeholders that must be on the board at one time
          format: int64
        setAtSize:
          type: integer
          description: The default, general, or target value at which the board is set and from which vacancies are relatively calculated
          format: int64
        quorumSize:
          type: integer
          description: Minimum amount of members required to be present to have a quorum
          format: int64
    RestApiErrorResponse:
      title: Error Response
      required:
      - code
      - errorId
      - message
      type: object
      properties:
        code:
          type: string
          description: Code representing the type of error
        message:
          type: string
          description: Message describing the error
        errors:
          type: array
          description: List of all further error details, usually due to validation checks
          items:
            $ref: '#/components/schemas/ErrorWithCode'
        errorId:
          type: string
          description: Identifier for the error
    CompanyBoardDetailsWithAppointments:
      title: Company Board Detailed Response
      required:
      - appointments
      - boardId
      - maximumSize
      - minimumSize
      - setAtSize
      type: object
      properties:
        boardId:
          type: integer
          description: Identifier for the company board
          format: int32
        maximumSize:
          type: integer
          description: Maximum number of stakeholders that may be on the board at one time
          format: int64
        minimumSize:
          type: integer
          description: Minimum number of stakeholders that must be on the board at one time
          format: int64
        setAtSize:
          type: integer
          description: The default, general, or target value at which the board is set and from which vacancies are relatively calculated
          format: int64
        quorumSize:
          type: integer
          description: Minimum amount of members required to be present to have a quorum
          format: int64
        appointments:
          type: array
          description: List of all company board appointments
          items:
            $ref: '#/components/schemas/CompanyBoardAppointmentDetails'
    CompanyBoardDetails:
      title: Company Board Response
      required:
      - boardId
      - maximumSize
      - minimumSize
      - setAtSize
      type: object
      properties:
        boardId:
          type: integer
          description: Identifier for the company board
          format: int32
        minimumSize:
          type: integer
          description: Minimum number of stakeholders that must be on the board at one time
          format: int64
        maximumSize:
          type: integer
          description: Maximum number of stakeholders that may be on the board at one time
          format: int64
        setAtSize:
          type: integer
          description: The default, general, or target value at which the board is set and from which vacancies are relatively calculated
          format: int64
        quorumSize:
          type: integer
          description: Minimum amount of members required to be present to have a quorum
          format: int64
    CompanyBoardAppointmentDetails:
      title: Company Board Appointment Response
      required:
      - appointmentId
      - dateAppointed
      - email
      - isDeleted
      - isDirector
      - isIndependent
      - isOfficer
      - name
      - stakeholderId
      - title
      type: object
      properties:
        appointmentId:
          type: integer
          description: Identifier for the company board appointment
          format: int32
        stakeholderId:
          type: integer
          description: Identifier for the stakeholder
          format: int32
        name:
          type: string
          description: Formatted full name for the stakeholder
        email:
          type: string
          description: Personal email address for the stakeholder
        title:
          type: string
          description: Title of the stakeholder position on the board (e.g. CFO)
        isIndependent:
          type: boolean
          description: Whether the company board appointment is an independent
        isDirector:
          type: boolean
          description: Whether the company board appointment is a director
        isOfficer:
          type: boolean
          description: Whether the company board appointment is an officer
        isDeleted:
          type: boolean
          description: Whether the company board appointment has been removed
        dateAppointed:
          type: string
          description: Date of appointment for the company board appointment
          format: date
        dateApproved:
          type: string
          description: Date of approval for the company board appointment
          format: date
        dateTerminated:
          type: string
          description: Date of termination for the company board appointment
          format: date
        note:
          type: string
          description: Notes for the company board appointment
  securitySchemes:
    accessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT