Laurel Initiatives API

The Initiatives API from Laurel — 29 operation(s) for initiatives.

OpenAPI Specification

laurel-initiatives-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Identity Service Ably Initiatives API
  description: ''
  version: '1'
  contact: {}
servers: []
security:
- ApiBearerAuth: []
tags:
- name: Initiatives
paths:
  /api/v1/customers/{customerId}/initiatives/import:
    post:
      operationId: InitiativesController_importInitiativeV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportCustomerInitiativeDto'
      responses:
        '201':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/batch:
    post:
      deprecated: true
      operationId: InitiativesController_importInitiativesBatchV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportCustomerInitiativesBatchDto'
      responses:
        '201':
          description: ''
      summary: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/consolidated-batch:
    post:
      deprecated: true
      operationId: InitiativesController_importInitiativesConsolidatedBatchV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: isInitial
        required: false
        in: query
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportCustomerInitiativesConsolidatedBatchDto'
      responses:
        '201':
          description: ''
      summary: ''
      tags:
      - Initiatives
  /api/v2/customers/{customerId}/initiatives/consolidated-batch:
    post:
      operationId: InitiativesController_importInitiativesConsolidatedBatchV2_v2
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: isInitial
        required: false
        in: query
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportCustomerInitiativesConsolidatedBatchDto'
      responses:
        '201':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/batch/access:
    post:
      deprecated: true
      operationId: InitiativesController_setInitiativeAccessBatchV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: isInitial
        required: false
        in: query
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCustomerInitiativeAccessBatchDto'
      responses:
        '201':
          description: ''
      summary: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/batch/walls-access:
    post:
      operationId: InitiativesController_setInitiativeAccessBatchWithWallsV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: isInitial
        required: false
        in: query
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCustomerInitiativeAccessWallsBatchDto'
      responses:
        '201':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/batch/codes:
    post:
      deprecated: true
      operationId: InitiativesController_setInitiativeCodesBatchV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCustomerInitiativeCodesBatchDto'
      responses:
        '201':
          description: ''
      summary: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/access:
    post:
      operationId: InitiativesController_setInitiativeAccessV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: initiativeExternalId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCustomerInitiativeAccessDto'
      responses:
        '201':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/codes:
    post:
      operationId: InitiativesController_setInitiativeCodesV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: initiativeExternalId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetCustomerInitiativeCodesDto'
      responses:
        '201':
          description: ''
      tags:
      - Initiatives
    delete:
      operationId: InitiativesController_deleteInitiativeCodesV1_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: initiativeExternalId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives:
    get:
      operationId: CustomerInitiativeController_search_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: page
        required: false
        in: query
        schema:
          minimum: 1
          format: int64
          type: number
      - name: pageSize
        required: false
        in: query
        schema:
          minimum: 1
          maximum: 150
          format: int64
          type: number
      - name: search
        required: false
        in: query
        schema:
          minLength: 2
          maxLength: 100
          type: string
      - name: sortBy
        required: false
        in: query
        schema:
          type: string
          enum:
          - name
          - callSign
          - createdAt
          - updatedAt
      - name: sortOrder
        required: false
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: status
        required: false
        in: query
        schema:
          type: string
          enum:
          - active
          - inactive
      - name: billingType
        required: false
        in: query
        schema:
          type: string
          enum:
          - billable
          - non-billable
      - name: initiativeIds
        required: false
        in: query
        schema:
          minItems: 1
          maxItems: 50
          allOf:
          - $ref: '#/components/schemas/Object'
      - name: clientIds
        required: false
        in: query
        schema:
          minItems: 1
          maxItems: 50
          allOf:
          - $ref: '#/components/schemas/Object'
      responses:
        '200':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}:
    get:
      operationId: CustomerInitiativeController_findOneById_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/internal-access:
    post:
      operationId: CustomerInitiativeController_setInitiativeInternalAccess_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetInitiativeInternalAccessRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PmsInitiativeAdminResponseDto'
      tags:
      - Initiatives
    get:
      operationId: CustomerInitiativeController_getInitiativeInternalAccess_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Initiatives
    delete:
      operationId: CustomerInitiativeController_deleteInitiativeInternalAccess_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/internal-access/users:
    post:
      operationId: CustomerInitiativeController_addInternalAccessUsers_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInternalAccessUsersRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiativeInternalAccessResponseDto'
      tags:
      - Initiatives
    delete:
      operationId: CustomerInitiativeController_removeInternalAccessUsers_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInternalAccessUsersRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/internal-groups:
    post:
      operationId: CustomerInitiativeController_setInitiativeInternalGroupRestrictions_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetInitiativeInternalGroupRestrictionsRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiativeInternalGroupRestrictionsResponseDto'
      tags:
      - Initiatives
    get:
      operationId: CustomerInitiativeController_getInitiativeInternalGroupRestrictions_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Initiatives
    delete:
      operationId: CustomerInitiativeController_deleteInitiativeInternalGroupRestrictions_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/internal-groups/groups:
    post:
      operationId: CustomerInitiativeController_addInternalGroupRestrictionsGroups_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInternalGroupsRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiativeInternalGroupRestrictionsResponseDto'
      tags:
      - Initiatives
    delete:
      operationId: CustomerInitiativeController_removeInternalGroupRestrictionsGroups_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInternalGroupsRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/access-restrictions:
    get:
      operationId: CustomerInitiativeController_getInitiativeAccessSummary_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiativeAccessRestrictionsResponseDto'
      summary: 'Gets a lightweight summary of the access configuration for an initiative.

        Returns access types, user counts, and group info without fetching user details.'
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/access-restrictions/users:
    get:
      operationId: CustomerInitiativeController_getInitiativeRestrictedUsers_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      - name: page
        required: false
        in: query
        schema:
          minimum: 1
          format: int64
          type: number
      - name: pageSize
        required: false
        in: query
        schema:
          minimum: 1
          maximum: 150
          format: int64
          type: number
      responses:
        '200':
          description: ''
      summary: 'Gets a paginated list of users with access restrictions for an initiative.

        Returns users from both the external access list and internal access restrictions.'
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/access-restrictions/users/lookup:
    post:
      operationId: CustomerInitiativeController_checkInitiativeUsers_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiativeAccessRestrictionsUsersLookupRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InitiativeAccessRestrictionsUserResponseDto'
      summary: 'Checks restriction information for specific users on an initiative.

        Accepts up to 50 user IDs and returns their restriction details.'
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/access-restrictions/groups:
    get:
      operationId: CustomerInitiativeController_getInitiativeGroups_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InitiativeAccessRestrictionsGroupResponseDto'
      summary: Gets the groups assigned to an initiative.
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeId}/access/{accessProviderName}:
    get:
      operationId: CustomerInitiativeController_getInitiativeAccess_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      - name: accessProviderName
        required: true
        in: path
        schema:
          enum:
          - aderant
          - auth0
          - azure
          - email
          - external-billing-system
          - elite
          - intercom
          - juris
          - cisco-cdr
          - mixpanel
          - phone
          - phone-extension
          - salesforce
          - segment
          - vitally
          - walls
          - zendesk
          - zoom
          - exchange
          - user-principal-name
          - cisco-webex
          - ringcentral
          - google
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiativeAccessResponseDto'
      summary: 'This endpoint is used by the implementation team to get walls ids for a given initiative.

        Boomi combines and ingests the rules from different Walls systems (like IntappWalls) as "walls".

        So the only possible value for accessProviderName is "walls" for now.

        Note: accessProviderName is not a perfect terminology for this parameter - we have added it for the lack of a better name.'
      tags:
      - Initiatives
  /api/v1/initiatives:
    get:
      deprecated: true
      operationId: InitiativeController_searchMany_v1
      parameters:
      - name: search
        required: true
        in: query
        description: the query to search initiatives for
        schema:
          minLength: 3
          type: string
      - name: clientId
        required: false
        in: query
        description: the client to filter initiatives by
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: maximum number of initiatives to return
        schema:
          format: double
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - items:
                    $ref: '#/components/schemas/PmsInitiativeResponseDto'
                  type: array
                - items:
                    $ref: '#/components/schemas/UserInitiativeResponseDto'
                  type: array
      summary: searches all initiatives for current customer
      tags:
      - Initiatives
    post:
      deprecated: true
      operationId: InitiativeController_createUserInitiative_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserInitiativeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInitiative'
      summary: ''
      tags:
      - Initiatives
  /api/v1/initiatives/{initiativeId}:
    get:
      operationId: InitiativeController_findOneById_v1
      parameters:
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      - name: workDate
        required: false
        in: query
        description: When set (and restrictions are enabled), the initiative is treated as not found if restricted on this date.
        schema:
          format: iso-date
          nullable: true
          example: '2022-08-12'
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - items:
                    $ref: '#/components/schemas/PmsInitiativeResponseDto'
                  type: array
                - items:
                    $ref: '#/components/schemas/UserInitiativeResponseDto'
                  type: array
      summary: returns one initiative by its id
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/clients/{clientId}/initiatives/{initiativeId}:
    get:
      operationId: CustomerClientInitiativeController_getClientPmsInitiative_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: clientId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PmsInitiativeResponseDto'
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/users/{userId}/user-initiatives:
    get:
      operationId: CustomerUserInitiativeController_getUserInitiatives_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer's id
        schema:
          format: objectid
          type: string
      - name: userId
        required: true
        in: path
        description: user's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/UserInitiativeListItemResponseDto'
                type: array
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/users/{userId}/user-initiatives/{initiativeId}:
    patch:
      operationId: CustomerUserInitiativeController_updateUserInitiative_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: userId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOneUserInitiativeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInitiativeResponseDto'
      tags:
      - Initiatives
    delete:
      operationId: CustomerUserInitiativeController_deleteUserInitiative_v1
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: userId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      - name: initiativeId
        required: true
        in: path
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Initiatives
  /api/v1/user-initiatives:
    post:
      operationId: UserInitiativeController_createUserInitiative_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserInitiativeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInitiative'
      tags:
      - Initiatives
    get:
      operationId: UserInitiativeController_getUserInitiatives_v1
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/UserInitiativeListItemResponseDto'
                type: array
      tags:
      - Initiatives
  /api/v1/user-initiatives/{initiativeId}:
    patch:
      operationId: UserInitiativeController_findOneById_v1
      parameters:
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOneUserInitiativeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/UserInitiativeResponseDto'
                type: array
      tags:
      - Initiatives
    delete:
      operationId: UserInitiativeController_deleteUserInitiative_v1
      parameters:
      - name: initiativeId
        required: true
        in: path
        description: Initiative's id
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Initiatives
  /api/v2/customers/{customerId}/initiatives/{initiativeExternalId}/codes:
    post:
      deprecated: true
      operationId: InitiativeCodesController_addInitiativeCodesV2_v2
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeExternalId
        required: true
        in: path
        description: initiative's external id
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddInitiativeCodesRequestDto'
      responses:
        '201':
          description: ''
      summary: ''
      tags:
      - Initiatives
  /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/code-types/{codeTypeExternalId}/codes:
    post:
      operationId: InitiativeCodesController_addInitiativeCodesByCodeType_v1
      parameters:
      - name: customerId
        required: true
        in: path
        description: customer id
        schema:
          format: objectid
          type: string
      - name: initiativeExternalId
        required: true
        in: path
        schema:
          type: string
      - name: codeTypeExternalId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddInitiativeCodesRequestDto'
      responses:
        '201':
          description: ''
      tags:
      - Initiatives
    delete:
      operationId: InitiativeCodesController_removeInitiativeCodesByCodeType_v1
      parameters:
      - name: customer

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-initiatives-api-openapi.yml