openapi: 3.0.1
info:
  title: ABTProductReference
  description: >-
    CRUD APIs for HTM product reference tables (based on the new domainmodel v2.6). 
    Internal use only; external touchpoints can get (some)) access via the HTM
    Service Engine, using a different endpoint.
  version: '1.0'
servers:
  - url: https://services.acc.api.htm.nl/abt/productreference/1.0
tags:
  - name: ABTProductReference CRUD
    description: >-
      Internal use only; external touchpoints can get (some) access
      via the HTM Service Engine.
paths:
  /clientattributes:
    get:
      description: |
        This method will get the list of all client attributes.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/clientAttributesGetList'
          description: A list of client attributes
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get all client attributes.
      tags:
      - ABTProductReference CRUD
    post:
      description: "This method will create a single client attribute. \n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/clientAttributesPostPutEntity'
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Create a client attribute.
      tags:
      - ABTProductReference CRUD
  /clientattributes/{clientAttributeId}:
    delete:
      description: "This method will delete the client attributes when provided the\n\
        clientAttributeId. \n"
      parameters:
      - explode: false
        in: path
        name: clientAttributeId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      responses:
        "202":
          description: Deleted record successfully
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Delete a client attribute.
      tags:
      - ABTProductReference CRUD
    put:
      description: "This method will update the client attributes when provided the\n\
        clientAttributesId. \n"
      parameters:
      - explode: false
        in: path
        name: clientAttributeId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/clientAttributesPostPutEntity'
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Response'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Modify a client attribute.
      tags:
      - ABTProductReference CRUD
  /layerinfo:
    get:
      description: |
        This method will get the list of all LayerInfo entries.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/layerInfoGetList'
          description: A list of LayerInfo entries
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get all LayerInfo entries.
      tags:
      - ABTProductReference CRUD
    post:
      description: "This method will create new LayerInfo entry. \n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/layerInfoPostPutEntity'
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Create a new LayerInfo entry.
      tags:
      - ABTProductReference CRUD
  /layerinfo/{layerInfoId}:
    delete:
      description: "This method will delete the LayerInfo entry for the given layerInfoId. \n"
      parameters:
      - explode: false
        in: path
        name: layerInfoId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      responses:
        "202":
          description: Deleted record successfully
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Delete a LayerInfo entry.
      tags:
      - ABTProductReference CRUD
    put:
      description: "This method will update the LayerInfo entry for the given layerInfoId. \n"
      parameters:
      - explode: false
        in: path
        name: layerInfoId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/layerInfoPostPutEntity'
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Response'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Modify a LayerInfo entry.
      tags:
      - ABTProductReference CRUD
  /productowners:
    get:
      description: |
        This method will get the list of all productowners.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/productOwnerGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get all productowners.
      tags:
      - ABTProductReference CRUD
    post:
      description: "This method will create a single productowner. \n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productOwnerPostPutEntity'
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Create a new productowner.
      tags:
      - ABTProductReference CRUD
  /productowners/{productOwnerId}:
    delete:
      description: "This method will delete the productOwner when provided the\nproductOwnerId.\
        \ \n"
      parameters:
      - explode: false
        in: path
        name: productOwnerId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      responses:
        "202":
          description: Deleted record successfully
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Delete a productowner.
      tags:
      - ABTProductReference CRUD
    put:
      description: "This method will update the productOwner when provided the\nproductOwnerId.\
        \ \n"
      parameters:
      - explode: false
        in: path
        name: productOwnerId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productOwnerPostPutEntity'
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Response'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Modify a productowner.
      tags:
      - ABTProductReference CRUD
  /productcategories:
    get:
      description: |
        This method will get the list of productCategories
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/productCategoryGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get all productcategories.
      tags:
      - ABTProductReference CRUD
  /customersegments:
    get:
      description: This method will get the list of customer segments.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/customerSegmentGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get all customer segments.
      tags:
      - ABTProductReference CRUD
  /marketsegments:
    get:
      description: This method will get the list of market segments.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/marketSegmentGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get all market segments.
      tags:
      - ABTProductReference CRUD
  /paymentmoments:
    get:
      description: |
        This method will retrieve the list of payment moments.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/paymentMomentGetList'
          description: A list of payment moments
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of payment moments.
      tags:
      - ABTProductReference CRUD
  /retailers:
    get:
      description: |
        This method will retrieve the list of retailers.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/retailerGetList'
          description: A list of retailers
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of retailers.
      tags:
      - ABTProductReference CRUD
    post:
      description: |
        This method will create a new retailer.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/retailerPostPutEntity'
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Response'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Create a retailer.
      tags:
      - ABTProductReference CRUD
  /retailers/{retailerId}:
    delete:
      description: |
        This method will delete a retailer when provided the retailerId.
      parameters:
      - explode: false
        in: path
        name: retailerId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      responses:
        "202":
          description: Deleted record successfully
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Delete a retailer.
      tags:
      - ABTProductReference CRUD
    put:
      description: |
        This method will update a retailer when provided the retailerId.
      parameters:
      - explode: false
        in: path
        name: retailerId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/retailerPostPutEntity'
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Response'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Update a retailer.
      tags:
      - ABTProductReference CRUD
  /salestouchpoints:
    get:
      description: |
        This method will get the list of sales touchpoints. It can also return
        sales touchpoints based on retailerId.
      parameters:
      - description: retailerId
        explode: true
        in: query
        name: retailerId
        required: false
        schema:
          format: integer
          type: integer
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/salesTouchpointGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of salestouchpoints or a single salestouchpoints for a
        given retailerId.
      tags:
      - ABTProductReference CRUD
    post:
      description: |
        This method will create a new salestouchpoint.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/salesTouchpointPostPutEntity'
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Create a salestouchpoint.
      tags:
      - ABTProductReference CRUD
  /salestouchpoints/{salesTouchpointId}:
    delete:
      description: |
        This method will delete salesTouchpoint when provided the
        salesTouchpointId.
      parameters:
      - explode: false
        in: path
        name: salesTouchpointId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      responses:
        "202":
          description: Deleted record successfully
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Delete a retailer.
      tags:
      - ABTProductReference CRUD
    put:
      description: |
        This method will update sales touchpoints when provided the
        salesTouchpointId.
      parameters:
      - explode: false
        in: path
        name: salesTouchpointId
        required: true
        schema:
          format: integer
          type: integer
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/salesTouchpointPostPutEntity'
        required: true
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPutSuccessResponse'
          description: ok
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postPut404Response'
          description: Not Found
        "409":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409Response'
          description: Conflict
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Update a salestouchpoints.
      tags:
      - ABTProductReference CRUD
  /serviceoptions:
    get:
      description: |
        This method will retrieve the list of serviceoptions.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/serviceOptionGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of serviceoptions.
      tags:
      - ABTProductReference CRUD
  /mandatorycustomerdataitems:
    get:
      description: |
        This method will retrieve the list of mandatorycustomerdataitems.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:              
                    $ref: '#/components/schemas/mandatoryCustomerDataItemGetList'
          description: A list of users
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of mandatorycustomerdataitems.
      tags:
      - ABTProductReference CRUD
  /requiredcustomerlevels:
    get:
      description: |
        This method will retrieve the list of requiredcustomerlevels.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/requiredCustomerLevelGetList'
          description: The list possible requiredcustomerlevels
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of requiredcustomerlevels.
      tags:
      - ABTProductReference CRUD
  /forbiddenpaymentmethod:
    get:
      description: This method will retrieve the list of forbidden payments.
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/forbiddenPaymentMethodGetList'
          description: A list of forbidden payment methods
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of forbidden payments.
      tags:
      - ABTProductReference CRUD
  /requiredgbopersonalattribute:
    get:
      description: |
        This method will retrieve the list of required personal attribute.
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/requiredGboPersonalAttributeGetList'
          description: A list of Required GBO personal attributes
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of required personal attribute .
      tags:
      - ABTProductReference CRUD
  /gboageprofiles:
    get:
      description: |
        This method will retrieve the list of GBO age profiles.
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  Entries:
                    $ref: '#/components/schemas/gboAgeProfileGetList'
          description: A list of GBO age profiles
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: Get the list of required personal attribute .
      tags:
      - ABTProductReference CRUD
  /productreferences:
    get:
      description: gives list of all possible product reference values availbale
      parameters: []
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/productReferencesGetList'
          description: Successful retrieved list of all possible product reference
            values
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Response'
          description: Unauthorized
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Response'
          description: Internal Server Error
      summary: List of all possible product reference values
      tags:
      - ABTProductReference CRUD
components:
  schemas:
    clientAttributesGetList:
        example:
          - clientAttributesId: 1
            clientId: 34r0QSQfr46rKmNezXpAteSymkLe
            description: description1
            isActive: "true"
            retailerId: 1001
            salesTouchpointId: 3
          - clientAttributesId: 2
            clientId: 65TkBRk5DyQkKmNezXpAteKlRzE6
            description: description2
            isActive: "false"
            retailerId: 1000
            salesTouchpointId: 2
        type: array
        items:
          $ref: '#/components/schemas/clientAttributesGetEntity'
    clientAttributesGetEntity:
      properties:
        clientAttributesId:
          example: 1
          type: integer
        clientId:
          example: htm
          type: string
        description:
          example: description
          type: string
        isActive:
          example: "true"
          type: string
        retailerId:
          example: 1
          type: integer
        salesTouchpointId:
          example: 2
          type: integer
      type: object
    clientAttributesPostPutEntity:
      properties:
        clientId:
          example: 34r0QSQfr46rKmNezXpAteSymkLe
          type: string
        description:
          example: description
          type: string
        isActive:
          example: true
          type: boolean
        retailerId:
          example: 1001
          type: integer
        salesTouchpointId:
          example: 3
          type: integer
      type: object
    layerInfoGetList:
        example:
          - layerInfoId: 1
            choiceKey: isRenewable
            choiceLabel: Kies voor een doorlopend abonnement of een enkele termijn
            isCustomChoice: false
          - layerInfoId: 2
            choiceKey: regio
            choiceLabel: Kies een regio
            isCustomChoice: true
        type: array
        items:
          $ref: '#/components/schemas/layerInfoGetEntity'
    layerInfoGetEntity:
      properties:
        layerInfoId:
          example: 1
          type: integer
        choiceKey:
          example: isRenewable
          type: string
        choiceLabel:
          example: Kies voor een doorlopend abonnement of een enkele termijn
          type: string
        isCustomChoice:
          example: false
          type: boolean
      type: object
    layerInfoPostPutEntity:
      properties:
        choiceKey:
          example: isRenewable
          type: string
        choiceLabel:
          example: Kies voor een doorlopend abonnement of een enkele termijn
          type: string
        isCustomChoice:
          example: false
          type: boolean
      type: object
    productOwnerGetList:
      example:
        - productOwnerId: 1
          organization: HTM
          name: Corneel Verstoep
        - productOwnerId: 2
          organization: ABC
          name: Pietje Puk
      items:
        $ref: '#/components/schemas/productOwnerGetEntity'
      type: array
    productOwnerGetEntity:
      properties:
        productOwnerId:
          example: 1
          type: integer
        organization:
          example: HTM
          type: string
        name:
          example: Corneel Verstoep
          type: string
      type: object
    productOwnerPostPutEntity:
      properties:
        organization:
          example: HTM
          type: string
        name:
          example: Corneel Verstoep
          type: string
      type: object
    productCategoryGetList:
      example:
        - productCategoryId: 1
          name: Kortingsabonnement
          isTravelProduct: true
        - productCategoryId: 2
          name: Afgekocht reisrecht
          isTravelProduct: true
        - productCategoryId: 3
          name: Supplement
          isTravelProduct: true
        - productCategoryId: 4
          name: Productdrager
          isTravelProduct: false
        - productCategoryId: 5
          name: Barcode
          isTravelProduct: false
        - productCategoryId: 6
          name: Merchandise
          isTravelProduct: false
        - productCategoryId: 7
          name: Functioneel product
          isTravelProduct: false
        - productCategoryId: 8
          name: Saldo
          isTravelProduct: true
      type: array
      items:
        $ref: '#/components/schemas/productCategoryGetEntity'    
    productCategoryGetEntity:
      properties:
        productCategoryId:
          example: 1
          type: integer
        name:
          example: Kortingsabonnement
          type: string
        isTravelProduct:
          example: true
          type: boolean
      type: object
    customerSegmentGetList:
      example:
        - customerSegmentId: 1
          name: Kind (4-11)
        - customerSegmentId: 2
          name: Jongere (12-17)
        - customerSegmentId: 3
          name: Volwassene (18-64)
        - customerSegmentId: 4
          name: Oudere (65+)
        - customerSegmentId: 5
          name: Student
        - customerSegmentId: 6
          name: Ooievaarspas-gerechtigde
      items:
        $ref: '#/components/schemas/customerSegmentGetEntity'
      type: array
    customerSegmentGetEntity:
      properties:
        customerSegmentId:
          example: 1
          type: integer
        name:
          example: Kind (4-11)
          type: string
      type: object
    marketSegmentGetList:
      example:
        Entries:
        - marketSegmentId: 1
          name: B2C
        - marketSegmentId: 2
          name: B2B2C  
        - marketSegmentId: 3
          name: B2B  
      items:
        $ref: '#/components/schemas/marketSegmentGetEntity'
      type: array
    marketSegmentGetEntity:
      properties:
        marketSegmentId:
          example: 1
          type: integer
        name:
          example: name
          type: string    
    paymentMomentGetList:
      example:
        - paymentMomentId: 1
          name: prepaid
        - paymentMomentId: 2
          name: postpaid
        - paymentMomentId: 3
          name: prepaid and postpaid
      items:
        $ref: '#/components/schemas/paymentMomentGetEntity'
      type: array
    paymentMomentGetEntity:
      properties:
         paymentMomentId:
          example: 1
          type: integer
         name:
          example: prepaid
          type: string    
    retailerGetList:
      example:
        - retailerId: 1000
          name: HTM interne touchpoints
          street: Koningin Julianaplein
          number: "10"
          numberAddition: 
          postalCode: 2595 AA
          city: Den Haag
          country: NL
          emailAddress: info@htm.nl
          phoneNumber: "070 374 9002"        
          taxId: "572309345923"
          imageReference: https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg
        - retailerId: 1001
          name: HTM externe touchpoints
          street: Koningin Julianaplein
          number: "10"
          numberAddition: 
          postalCode: 2595 AA
          city: Den Haag
          country: NL
          emailAddress: info@htm.nl
          phoneNumber: "070 374 9002"        
          taxId: "572309345923"
          imageReference: https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg     
      items:
        $ref: '#/components/schemas/retailerGetEntity'
      type: array
    retailerGetEntity:
      properties:
        retailerId:
          example: 1
          type: integer
        name:
          example: name
          type: string
        street:
          example: StreetName
          type: string
        number:
          example: "12"
          type: string
        numberAddition:
          example: E
          type: string
        postalCode:
          example: 2222 BV
          type: string
        city:
          example: Amsterdam
          type: string
        country:
          example: NL
          type: string
        emailAddress:
          example: sample@email.com
          type: string
        phoneNumber:
          example: "6123456789"
          type: string
        taxId:
          example: taxId
          type: string
        imageReference:
          example: imageReference
          type: string
    retailerPostPutEntity:
      properties:
        name:
          example: name
          type: string
        street:
          example: StreetName
          type: string
        number:
          example: "12"
          type: string
        numberAddition:
          example: E
          type: string
        postalCode:
          example: 2222 BV
          type: string
        city:
          example: Amsterdam
          type: string
        country:
          example: NL
          type: string
        emailAddress:
          example: sample@email.com
          type: string
        phoneNumber:
          example: "6123456789"
          type: string
        taxId:
          example: taxId
          type: string
        imageReference:
          example: imageReference
          type: string
    salesTouchpointGetList:
      example:
        - salesTouchpointId: 1
          name: SMP (Service Medewerker Portaal)
          isActive: true
          retailerId: 1000
        - salesTouchpointId: 2
          name: Website (Perplex)
          isActive: true
          retailerId: 1001
      items:
        $ref: '#/components/schemas/salesTouchpointGetEntity'
      type: array
    salesTouchpointGetEntity:
      properties:
        salesTouchpointId:
          example: 1
          type: integer
        name:
          example: name
          type: string
        isActive:
          example: true
          type: boolean
        retailerId:
          example: 1
          type: integer
      type: object
    salesTouchpointPostPutEntity:
      properties:
        name:
          example: name
          type: string
        isActive:
          example: true
          type: boolean
        retailerId:
          example: 1
          type: integer
      type: object
    serviceOptionGetList:
      example:
        - serviceOptionId: 1
          action: refundablePerDay
          description: Per dag opzegbaar met geldteruggave naar rato
        - serviceOptionId: 2
          action: cancellableTermAhead
          description: Per termijn vooruit opzegbaar, dus géén terugwerkende geldteruggave
      items:
        $ref: '#/components/schemas/serviceOptionGetEntity'
      type: array
    serviceOptionGetEntity:
      properties:
        serviceOptionId:
          example: 1
          type: integer
        action:
          example: action
          type: string
        description:
          example: description
          type: string
      type: object
    mandatoryCustomerDataItemGetList:
      example:
        - mandatoryCustomerDataItemId: 1
          customerDataItem: birthname
        - mandatoryCustomerDataItemId: 2
          customerDataItem: surname
        - mandatoryCustomerDataItemId: 3
          customerDataItem: dateOfBirth
        - mandatoryCustomerDataItemId: 4
          customerDataItem: emailAddress
        - mandatoryCustomerDataItemId: 5
          customerDataItem: address
        - mandatoryCustomerDataItemId: 6
          customerDataItem: phone
        - mandatoryCustomerDataItemId: 7
          customerDataItem: ovPayToken
        - mandatoryCustomerDataItemId: 8
          customerDataItem: padBirthDate
        - mandatoryCustomerDataItemId: 9
          customerDataItem: shippingAddress
        - mandatoryCustomerDataItemId: 10
          customerDataItem: billingAddress
      items:
        $ref: '#/components/schemas/mandatoryCustomerDataItemGetEntity'
      type: array
    mandatoryCustomerDataItemGetEntity:
      properties:
        mandatoryCustomerDataItemId:
          example: 1
          type: integer
        customerDataItem:
          example: customerDataItem
          type: string
      type: object
    requiredCustomerLevelGetList:
      example:
        - requiredCustomerLevelId: 1
          name: guest
        - requiredCustomerLevelId: 2
          name: contact
        - requiredCustomerLevelId: 3
          name: profile
      items:
        $ref: '#/components/schemas/requiredCustomerLevelGetEntity'
      type: array
    requiredCustomerLevelGetEntity:
      type: object
      properties:
        requiredCustomerLevelId:
          example: 1
          type: integer
        name:
          example: guest
          type: string 
    forbiddenPaymentMethodGetList:
      example:
        - forbiddenPaymentMethodId: 1
          name: creditcard
          issuer: Mastercard
        - forbiddenPaymentMethodId: 2
          name: creditcard
          issuer: Visa
        - forbiddenPaymentMethodId: 3
          name: creditcard
          issuer: American Express
      items:
        $ref: '#/components/schemas/forbiddenPaymentMethodGetEntity'
      type: array
    forbiddenPaymentMethodGetEntity:
      properties:
        forbiddenPaymentMethodId:
          example: 3
          type: integer
        name:
          example: creditcard
          type: string
        issuer:
          example: American Express
          type: string
      type: object
    requiredGboPersonalAttributeGetList:
      example:
        - name: NAME
          requiredGboPersonalAttributeId: 1
        - name: BIRTHDATE
          requiredGboPersonalAttributeId: 2
        - name: PHOTO
          requiredGboPersonalAttributeId: 3
      items:
        $ref: '#/components/schemas/requiredGboPersonalAttributeGetEntity'
      type: array
    requiredGboPersonalAttributeGetEntity:
      properties:
        requiredGboPersonalAttributeId:
          example: 1
          type: integer
        name:
          example: NAME
          type: string
      type: object
    gboAgeProfileGetList:
      items:
        $ref: '#/components/schemas/gboAgeProfileGetEntity'
      type: array
      example:
        Entries:
        - gboAgeProfileId: 1
          name: Kind (0 t/m 3 jaar)
          ageFromInclusive: 0
          ageToInclusive: 3
        - gboAgeProfileId: 2
          name: Kind (4 t/m 11 jaar)
          ageFromInclusive: 4
          ageToInclusive: 11
        - gboAgeProfileId: 3
          name: Jongere (12 t/m 18 jaar)
          ageFromInclusive: 12
          ageToInclusive: 18
        - gboAgeProfileId: 4
          name: Volwassene (19 t/m 64 jaar)
          ageFromInclusive: 19
          ageToInclusive: 64
        - gboAgeProfileId: 5
          name: Oudere (65 jaar of ouder)
          ageFromInclusive: 65
          ageToInclusive: 999
    gboAgeProfileGetEntity:
      type: object
      required:
        - gboAgeProfileId
        - name
        - ageFromInclusive
        - ageToInclusive
      properties:
        gboAgeProfileId:
          type: integer
          example: 1
        name:
          type: string
          example: Kind (4 t/m 11 jaar)
        ageFromInclusive:
          type: integer
          description: The minimum age that the GBO age profile applies to
          example: 4
        ageToInclusive:
          type: integer
          description: The maximum age that the GBO age profile applies to
          example: 11   
    productReferencesGetList:
      type: object
      required:
      - Entries
      properties:
        Entries:
          type: object
          properties:
            clientAttributes:
              $ref: '#/components/schemas/clientAttributesGetList'
            layerInfos:
              $ref: '#/components/schemas/layerInfoGetList'
            productOwners:
              $ref: '#/components/schemas/productOwnerGetList'
            productCategories:
              $ref: '#/components/schemas/productCategoryGetList'
            customerSegments:
              $ref: '#/components/schemas/customerSegmentGetList'
            marketSegments:
              $ref: '#/components/schemas/marketSegmentGetList'
            paymentMoments:
              $ref: '#/components/schemas/paymentMomentGetList'
            retailers:
              $ref: '#/components/schemas/retailerGetList'
            salesTouchpoints:
              $ref: '#/components/schemas/salesTouchpointGetList'
            serviceOptions:      
              $ref: '#/components/schemas/serviceOptionGetList'
            mandatoryCustomerDataItems:
              $ref: '#/components/schemas/mandatoryCustomerDataItemGetList'
            requiredCustomerLevels:
              $ref: '#/components/schemas/requiredCustomerLevelGetList'
            forbiddenPaymentMethods:
              $ref: '#/components/schemas/forbiddenPaymentMethodGetList'
            requiredGboPersonalAttributes:
              $ref: '#/components/schemas/requiredGboPersonalAttributeGetList'
            gboAgeProfiles:
              $ref: '#/components/schemas/gboAgeProfileGetList'
    400Response:
      properties:
        code:
          example: "400"
          type: string
        type:
          type: string
        message:
          example: Bad Request
          type: string
        description:
          example: '''2023-02-01 00:00:00'' is not a valid Datetime'
          type: string
      type: object
    401Response:
      properties:
        code:
          example: "900901"
          type: string
        type:
          type: string
        message:
          example: Invalid Credentials
          type: string
        description:
          example: Invalid Credentials. Make sure you have provided the correct security
            credentials
          type: string
      type: object
    404Response:
      properties:
        code:
          example: "404"
          type: string
        type:
          example: Status report
          type: string
        message:
          example: Not Found
          type: string
        description:
          example: The requested resource is not available.
          type: string
      type: object
    404ResponseId:
      properties:
        error:
          example: "No record found for id: 5"
          type: string
      type: object
    409Response:
      properties:
        error:
          example: Entry already exists
          type: string
      type: object
    500Response:
      properties:
        code:
          example: "500"
          type: string
        type:
          type: string
        message:
          example: Internal Server Error
          type: string
        description:
          type: string
      type: object
    postPutSuccessResponse:
      example:
        id: 1
      properties:
        id:
          example: 1
          type: integer
      type: object
    postPut404Response:
      oneOf:
      - $ref: '#/components/schemas/404ResponseId'
      - $ref: '#/components/schemas/404Response'
