openapi: 3.0.0
info:
  title: Custom Entities
  contact:
    email: support@antavo.com
  version: '1.0.0'
servers:
  - url: https://api.academy.antavo.com
    description: The Antavo Academy
  - url: https://api.rc.antavo.com
    description: The Antavo rc test environment
  - url: https://api.salesdemo.antavo.com
    description: The Antavo Sales demonstration environment
  - url: https://api.staging.antavo.com
    description: The Antavo staging environment


security:
- api_key: []
tags:
  - name: Generic 
    description: A general method for creating, accessing and modifying an Antavo entity
  - name: Rewards
    description: Customer-independent endpoint for accessing and modifying rewards within Antavo LMP
  - name: Customer Lists
    description: This endpoint is dedicated to creating, updating, and accessing customer lists via APIs
paths:
  /entities/rewards/reward:
    get:
      tags:
      - Rewards
      summary: Returns all available rewards
      description: "This module lists all available rewards and uses filtering by stores as an example of filtering by parameter."
      parameters:
        - name: stores
          in: query
          required: false
          description: "Filters the return rewards by stores, using a valid Antavo store ID. This requires the Antavo store module to be enabled and fully configured."
          schema:
            type: string       
      responses:
        '200':
          description: List of all entities
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRewardResponse'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
    put:
      tags:
      - Rewards
      summary: Create a new Reward using an API call
      description: "Rewards can be created using the following API call. The following queries are not an exhaustive list of available options."
      operationId: Rewardcreate     
      parameters: []
      requestBody:
        description: The attributes of the Reward to be created. These must match attributes set in the Backoffice. 
        content:
          application/json:
            schema:
              type: object
              example:
                name: 'Reward name'
                description: "This is the description field"     
                price: 100
                type: coupon           
        required: true      
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardPut'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
  /entities/rewards/reward/{entity_id}:
    get:
      tags:
      - Rewards
      summary: Returns all information regarding a specific reward
      description: A detailed breakdown of all parameters for the specific reward is returned. 
      operationId: Rewardget
      parameters:
        - name: entity_id
          in: path
          required: true
          description: The unique id of the reward
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRewardResponse'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
    post:
      tags:
      - Rewards
      summary: Updates a specific reward attributes
      description: "An property of a Reward can be updated via this endpoint. The following queries are not an exhaustive list of available options but are merely example values"
      operationId: Rewardupdate
      parameters:
      - name: entity_id
        in: path
        description: 'The unique 24 character alphanumeric identifier of the specific reward'
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: The attributes of the Reward to be created. These must match attributes set in the Backoffice. 
        content:
          application/json:
            schema:
              type: object
              # If the parameter values are of specific type, e.g. string:
              additionalProperties:
                type: string
              example:
                name: 'Reward name'
                description: "This is the description field"     
                price: 100
                type: coupon           
        required: true   
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardPut'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Rewards
      summary: Archives an inactive reward
      description: "Antavo archives data and objects by policy. This endpoint archives a specific reward, making it completely non-visible and inaccessible for customers and Antavo back office users, effectively removing it  from the system. The reward can be restored but only by raising a support ticket with Antavo"
      operationId: Rewarddelete
      parameters:
        - name: entity_id
          in: path
          required: true
          description: The unique id of the reward
          schema:
            type: string
      responses:
        '200':
          description: Entity archived.
          headers: {}
          content: 
            application/json:
              schema:
                type: array
                items:
                  type: string
                  example: ok
        '400':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardNotFoundResponse'
      deprecated: false
  /entities/{module}/{entity}:
    get:
      tags:
      - Generic
      summary: Returns all available entities within the specified entity module.
      description: "This endpoints lists all available entities within the specified entity module. This interaction is customer-independent"
      parameters:
        - in: path
          name: module
          required: true
          description: The entities' module name e.g., rewards, customer, custom (for custom entities)
          schema:
            type: string 
        - in: path
          name: entity
          required: true
          description: The entity's unique ID - typically the singular form of the module
          schema:
            type: string 
        - in: query
          name: additional queries
          description: |

            Custom queries can be added here.  
            **Note**: the documentation script converts valid JSON input below into a suitable query. 
          schema:
            type: object
            additionalProperties:
              type: string
            example:
              query_field: query_text
      responses:
        '200':
          description: Lists all entities - Example data is based a Reward entity.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardsResponse'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
    put:
      tags:
      - Generic
      summary: Create a new entity using an API call
      description: "An entity can be created in a module using the following API call. Any parameter can be set as long as there is the corresponding attribute pre-configured in the Antavo Backoffice."
      operationId: Genericcreate
      parameters:
        - in: path
          name: module
          required: true
          description: The entities' module name
          schema:
            type: string 
        - in: path
          name: entity
          required: true
          description: The  entity's unique ID - typically the singular form of the module
          schema:
            type: string 
      requestBody:
        description: The entities and corresponding attributes to be created. Required attributes depend upon the configuration of the entity in the Backoffice.
        content:
          application/json:
            schema:
              type: object
              # If the parameter values are of specific type, e.g. string:
              additionalProperties:
                type: string
              example:
                name: 'test entity'
                description: "This is the description field"                
        required: true
      responses:
        '200':
          description: Successful entity creation - Example data is based a Reward entity.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardPut'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
  /entities/{module}/{entity}/{entity_id}:
 
    get:
      tags:
      - Generic
      summary: Returns all information regarding a specific entity
      description: Returns all information regarding a specific entity
      operationId: entityget
      parameters:
        - in: path
          name: module
          required: true
          description: The entities' module name 
          schema:
            type: string 
        - in: path
          name: entity
          required: true
          description: The entity's unique ID - typically the singular form of the module
          schema:
            type: string 
        - in: path
          name: entity_id
          required: true
          description: The specific unique id for an entity
          schema:
            type: string 
        - in: query
          name: additional queries
          description: |

            Custom queries can be added here.  
            **Note**: the documentation script converts valid JSON input below into a suitable query. 
          schema:
            type: object
            additionalProperties:
              type: string
            example:
              query_field: query_text
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardResponse'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
    post:
      tags:
      - Generic
      summary: Updates a specific entity within a module
      description: "Any pre-configured attribute in an entity  can be modified using this API endpoint. Modification requires the use of  attribute's unique id, set in the Backoffice."
      operationId: entityupdate
      parameters:
        - in: path
          name: module
          required: true
          description: The entities' module name 
          schema:
            type: string 
        - in: path
          name: entity
          required: true
          description: The  entity's unique ID - typically the singular form of the module
          schema:
            type: string 
        - in: path
          name: entity_id
          required: true
          description: The specific unique id for an entity
          schema:
            type: string 
      requestBody:
        description: The entities and corresponding attributes to be modified. Required attributes depend upon the configuration of the entity in the Backoffice.
        content:
          application/json:
            schema:
              type: object
              # If the parameter values are of specific type, e.g. string:
              additionalProperties:
                type: string
              example:
                name: 'test entity'
                description: "This is the description field"                
        required: true
      responses:
        '200':
          description: Entity has been successfully updated -  Example data is based a Reward entity.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardPut'
        '404':
          description: Entity not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardResponse'
    put:
      tags:
      - Generic
      summary: Create a new entity with a specific entity ID using an API call
      description: "An entity with a specified ID can be created in a module using the following API call. Any parameter can be set as long as there is the corresponding attribute pre-configured in the Antavo Backoffice."
      operationId: Genericspeccreate
      parameters:
        - in: path
          name: module
          required: true
          description: The entities' module name s
          schema:
            type: string 
        - in: path
          name: entity
          required: true
          description: The  entity's unique ID - typically the singular form of the module
          schema:
            type: string
        - in: path
          name: entity_id
          required: true
          description: The specific unique id for the entity
          schema:
            type: string 
      requestBody:
        description: The entities and corresponding attributes to be created. Required attributes depend upon the configuration of the entity in the Backoffice.
        content:
          application/json:
            schema:
              type: object
              # If the parameter values are of specific type, e.g. string:
              additionalProperties:
                type: string
              example:
                name: 'test entity'
                description: "This is the description field"                
        required: true
      responses:
        '200':
          description: Successful entity creation - Example data is based a Reward entity
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardPut'
        '404':
          description: Reward not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Generic
      summary: Archives an inactive entity
      description: "Antavo archives data and objects by policy. This endpoint archives an entity, making it completely invisible and unaccessible for customers and Antavo back office users, effectively removing it  from the system. The entity can be restored but only by raising a support ticket with Antavo"
      operationId: Entitydelete
      parameters:
        - in: path
          name: module
          required: true
          description: The entities' module name 
          schema:
            type: string 
        - in: path
          name: entity
          required: true
          description: The  entity's unique ID - typically the singular form of the module
          schema:
            type: string 
        - in: path
          name: entity_id
          required: true
          description: The specific unique id for an entity
          schema:
            type: string 
      responses:
        '200':
          description: Entity archived.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  example: ok
        '404':
          description: Entity not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
  
  
  /entities:
    post:
      tags:
        - Generic
      summary: An entities bulk submission endpoint
      description:  |
        Multiple calls to any number of entities endpoints can be made by submitting a request with data in array format. The following options are available for error checking the submitted data:
      
        * skip - Any erroneous data is not added and the whole entry is skipped.

        * pre-check - The submitted data is checked for validity but not entered into the Antavo system. Any error messages are returned.

        * fail - The submission is stopped upon an error being returned.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                entities:
                  type: array
                  items:
                      $ref: "#/components/schemas/Entity"
                      description: An array containing an entity call 
                error_handling:
                  type: string
                  description: "Error processing protocol for submitted functions: Options: skip, pre-check and fail"
              example:
                entities:
                  - method: PUT
                    type: custom/test_entity
                    id: id_01
                    data:
                      name: Test Entity
                  - method: GET
                    type: custom/test_entity
                    id: id_01
                error_handling: pre-check
      responses:
        "200":
          description: Successful pre-check response
          content:
            "*/*":
              schema:
                type: object    
                properties:
                  results:
                    type: array
                    items:
                      $ref: "#/components/schemas/Bulkentityone"                 
                  total:
                    type: number
                    description: Number of processed entity calls 
                    example: 2
                  errors:
                    type: number
                    description: Number of errors
                    example: 0
                example:
                  results:
                    - method: "PUT"
                      type: "custom/test_entity"
                      id: "id_01"
                    - method: "GET"
                      type: "custom/test_entity"
                      id: "id_01"
                      entity":
                        id: "id_01"
                        name: "Test Entity"
                  total: 2
                  errors: 0
        "404":
          description: Erroneous pre-check response
          content:
            "*/*":
              schema:
                type: object    
                properties:
                  results:
                    type: array
                    items:
                      $ref: "#/components/schemas/Bulkentitytwo"
                  total:
                    type: number
                    description: Number of processed entity calls 
                    example: 2
                  errors:
                    type: number
                    description: Number of errors
                    example: 1
                example:
                  results:
                    - method: "PUT"
                      type: "custom/test_entity"
                      id: "id_01"
                    - method: "GET"
                      type: "custom/test_entity"
                      id: "id_01"
                      error:
                        error:
                          type: RuntimeException
                          code: 0
                          message: Entity not found
                  total: 2
                  errors: 1
  /entities/core/customer-list:
    put:
      tags: 
        - Customer Lists
      summary: Create a new customer list
      description: "This endpoint allows you to create a new customer list"
      parameters:
        - name: name
          in: query
          required: true
          description: "The name of the customer list"
          schema:
            type: string       
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentResponse'
        '400':
          description: Customer list not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentErrorResponse'
      deprecated: false
    get:
      tags:
        - Customer Lists
      summary: Access all available customer lists
      description: "This endpoint allows you to access all available customer lists"
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentResponse'

  /entities/core/customer-list/{entityId}:
    get:
      tags: 
        - Customer Lists
      summary: Retrieves information of a specific customer list
      description: "This endpoint allows you to retrieve information of the specific customer list"
      parameters:
        - name: entityId
          in: path
          required: true
          description: "The ID of the customer list"
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentResponse'
        '400':
          description: Customer list not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentErrorResponse'
      deprecated: false
  
    post: 
      tags:
        - Customer Lists
      summary: Updates a customer list
      description: This endpoint allows you to update a customer list
      parameters:
        - name: entityId
          in: path
          required: true
          description: "The ID of the customer list"
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentResponse'
        '400':
          description: Customer list not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentErrorResponse'
      deprecated: false
    delete:
      tags: 
        - Customer Lists
      summary: Archives a customer list
      description: This endpoint allows archiving a customer list and removing users from it.
      parameters: 
        - name: entityId
          in: path
          required: true
          description: "The ID of the customer list"
          schema:
            type: string
      responses:
        '200':
          description: Entity archived.
          headers: {}
          content: 
            application/json:
              schema:
                type: array
                items:
                  type: string
                  example: ok
        '400':
          description: Entity not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
      
      
      

components:
  schemas:
    RewardPut:
      title: RewardPut
      type: object
      properties:
        id:
          type: string
          example: 6479d9e55a48f71fca4cda22
        status:
          type: string
          example:  inactive
        type:
          type: string
          example:  coupon
        name:
          type: string
          example:  Reward name
        description:
          type: string
          example:  This is the description field
        claim_button_label:
          type: string
          example:  []
        price:
          type: string
          example:  100
        hide_restricted:
          type: string
          example:  false
        notifications:
          type: string
          example:  false
        user_notification:
          type: string
          example:  false
        transferable:
          type: string
          example:  false
    RewardResponse:
      title: RewardResponse
      type: object
      properties:
        id:
          type: string
          example: 5f05b989a44bc1c44008b4590
        name:
          $ref: '#/components/schemas/Name'
        description:
          $ref: '#/components/schemas/Description'
        redeem_instructions:
          $ref: '#/components/schemas/RedeemInstructions'
        terms:
          $ref: '#/components/schemas/Terms'
        account:
          $ref: '#/components/schemas/Account'
        type:
          type: string
          example: coupon
        starts_at:
          type: string
          format: date-time
          example: 2020-07-21T12:00:00+00:00
        ends_at:
          type: string
          format: date-time
          example: 2020-12-21T12:00:00+00:00
        message:
          type: string
          example: Message
        claim_button_label:
          $ref: '#/components/schemas/ClaimButtonLabel'
        category:
          $ref: '#/components/schemas/Category'
        segments:
          type: array
          items:
            $ref: '#/components/schemas/Segment'
          description: ''
        cost:
          type: string
          example: '150.5'
        hide_restricted:
          type: boolean
          example: false
        hidden:
          type: boolean
          example: false
        restricted_message:
          $ref: '#/components/schemas/RestrictedMessage'
        repeat_interval:
          type: string
          example: 1 week
        stock:
          type: integer
          format: int32
          example: 42
        max_claims:
          type: integer
          format: int32
          example: 90
        notifications:
          type: boolean
          example: false
        user_notifications:
          type: boolean
          example: false
        status:
          type: string
          example: inactive
        price:
          $ref: '#/components/schemas/Price'
    GetRewardResponse:
      title: RewardResponse
      type: object
      properties:
        id:
          type: string
          example: 5f05b989a44bc1c44008b4590
        name:
          $ref: '#/components/schemas/Name'
        description:
          $ref: '#/components/schemas/Description'
        redeem_instructions:
          $ref: '#/components/schemas/RedeemInstructions'
        terms:
          $ref: '#/components/schemas/Terms'
        account:
          $ref: '#/components/schemas/Account'
        type:
          type: string
          example: coupon
        starts_at:
          type: string
          format: date-time
          example: 2020-07-21T12:00:00+00:00
        ends_at:
          type: string
          format: date-time
          example: 2020-12-21T12:00:00+00:00
        message:
          type: string
          example: Message
        claim_button_label:
          $ref: '#/components/schemas/ClaimButtonLabel'
        category:
          $ref: '#/components/schemas/Category'
        segments:
          type: array
          items:
            $ref: '#/components/schemas/Segment'
          description: ''
        cost:
          type: string
          example: '150.5'
        hide_restricted:
          type: boolean
          example: false
        hidden:
          type: boolean
          example: false
        restricted_message:
          $ref: '#/components/schemas/RestrictedMessage'
        repeat_interval:
          type: string
          example: 1 week
        stock:
          type: integer
          format: int32
          example: 42
        max_claims:
          type: integer
          format: int32
          example: 90
        notifications:
          type: boolean
          example: false
        user_notifications:
          type: boolean
          example: false
        status:
          type: string
          example: inactive
        price:
          $ref: '#/components/schemas/Price'
        coupon_pool:
          type: string
          example: 5b22a37f71f92e7f798q4186
    ErrorResponse:
      title: ErrorResponse
      required:
      - error
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
      description: This describes the generic structure returned if an error occurred - A reward entity has been used as an example. 
    Category:
      title: Category
      type: object
      properties:
        id:
          type: string
          example: 5ef1ad79a44b5e15008b456e
    category1:
      title: category1
      enum:
      - bidding
      - bundle
      - content
      - coupon
      - custom
      - download
      - physical
      - promotion
      - tangocard
      - virtual
      type: string
    ClaimButtonLabel:
      title: ClaimButtonLabel
      type: object
      properties:
        en:
          type: string
          example: Claim
    Description:
      title: Description
      type: object
      properties:
        en:
          type: string
          example: Reward description
    Error:
      title: Error
      required:
      - type
      - code
      - message
      type: object
      properties:
        type:
          type: string
          description: 'Type of the error occurred, e.g.: `BadRequestException`, `NotFoundException`'
          example: BadRequestException
        code:
          type: number
          description: A 6-digit number to uniquely identify the place the error occurred
          example: 300708
        message:
          type: string
          description: Human readable error message
          example: Missing required parameter 'parameter_name'
    Name:
      title: Name
      type: object
      properties:
        en:
          type: string
          example: Reward name
    Price:
      title: Price
      type: object
      properties:
        EUR:
          type: integer
          format: int32
          example: 500
    RedeemInstructions:
      title: RedeemInstructions
      type: object
      properties:
        en:
          type: string
          example: Redeem instructions
    RestrictedMessage:
      title: RestrictedMessage
      type: object
      properties:
        en:
          type: string
          example: Message
    RewardsResponse:
      title: RewardsResponse
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/RewardResponse'
          description: ''
    GetRewardsResponse:
      title: GetRewardsResponse
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetRewardResponse'
          description: ''
    Segment:
      title: Segment
      type: object
      properties:
        id:
          type: string
          example: 5ef1ad79a44b5e15008b456e
    Terms:
      title: Terms
      type: object
      properties:
        en:
          type: string
          example: Terms & Conditions
    Account:
      title: account
      type: object
      properties:
        id:
          type: string
          example: account_id
        name: 
          type: string
          example: account_name
    Entity:
      title: Entity
      type: object
      description: A specified API call for a defined  entity
      required:
        - method
        - type
        - id
      properties:
        method:
          type: string
          description: API call type
          example: PUT
        type:
          type: string
          description:  wntity type
          example: custom/test_entity
        id: 
          type: string
          description:  entity id
          example: id_01
        data: 
          type: array
          description: Array containing all data to be processed by request 
          items:
            type: object
          example: []
    Bulkentityone:
      type: object
      description: An API response for an error-free defined bulk  entity call
      properties:
        method:
          type: string
          description: API call type
          example: PUT
        type:
          type: string
          description:  entity type
          example: custom/test_entity
        id: 
          type: string
          description:  entity id
          example: id_01 
    Bulkentitytwo:
      type: object
      description: An API response containing an erroneous bulk  entity call
      properties:
        method:
          type: string
          description: API call type
          example: PUT
        type:
          type: string
          description:  entity type
          example: custom/test_entity
        id: 
          type: string
          description:  entity id
          example: id_01 
        error:
          type: array
          description: An array of all associated errors with API submission
          items:
            $ref: '#/components/schemas/Bulkentitytwoitems'
    Bulkentitytwoitems:
      type: object
      properties:
        type:
          type: string
          description: Type of error 
          example: RuntimeException
        code: 
          type: number
          description: The associated Antavo error code
          example: 0 
        message:  
          type: string
          description: The user-friendly error description
          example: Entity not found
    SegmentResponse:
      type: object
      properties:
        name:
          type: string
          example: list_name
        id: 
          type: number
          example: 63f2cc94
    SegmentErrorResponse:
      title: SegmentErrorResponse
      required:
      - error
      type: object
      properties:
        error:
          $ref: '#/components/schemas/SegmentError'
      description: This describes the generic structure returned if an error occurred - A reward entity has been used as an example.
    SegmentError:
      title: Error
      required:
      - type
      - code
      - message
      type: object
      properties:
        type:
          type: string
          description: 'Type of the error occurred, e.g.: `BadRequestException`, `NotFoundException`'
          example: BadRequestException
        code:
          type: number
          description: A 6-digit number to uniquely identify the place the error occurred
          example: 300400
        message:
          type: string
          description: Human readable error message
          example: Missing required parameter 'parameter_name'
    BadRequestResponse:
      type: object
      properties:
        type:
          type: string
          example: BadRequestException
        code: 
          type: number
          example: 300400
        message:
          type: string
          example: Customer List not found
    NotFoundResponse:
      type: object
      properties:
        type:
          type: string
          example: BadRequestException
        code: 
          type: number
          example: 300705
        message:
          type: string
          example: Entity not found
    RewardNotFoundResponse:
      type: object
      properties:
        type:
          type: string
          example: BadRequestException
        code: 
          type: number
          example: 0
        message:
          type: string
          example: Entity not found


  securitySchemes:
    api_key:
      type: apiKey
      description: Provides API Key access to the endpoint
      name: api_key
      in: query

  

