    ProductRequest:
      type: object
      properties:
       
        assigned_user_id:
          type: string
          description: 'The hashed ID of the user assigned to this product.'
          example: pR0j3

        project_id:
          type: string
          description: 'The hashed ID of the project that this product is associated with.'
          example: pR0j3

        vendor_id:
          type: string
          description: 'The hashed ID of the vendor that this product is associated with.'
          example: pR0j3

        custom_value1:
          type: string
          description: 'Custom value field 1.'
          example: 'Custom value 1'

        custom_value2:
          type: string
          description: 'Custom value field 2.'
          example: 'Custom value 2'

        custom_value3:
          type: string
          description: 'Custom value field 3.'
          example: 'Custom value 3'

        custom_value4:
          type: string
          description: 'Custom value field 4.'
          example: 'Custom value 4'

        product_key:
          type: string
          description: 'The product key.'
          example: '1234'

        notes:
          type: string
          description: 'Notes about the product.'
          example: 'These are some notes about the product.'

        cost:
          type: number
          format: double
          description: 'The cost of the product.'
          example: 10.0

        price:
          type: number
          format: double
          description: 'The price of the product.'
          example: 20.0

        quantity:
          type: number
          format: double
          description: 'The quantity of the product.'
          example: 5.0

          default: 1
        tax_name1:
          type: string
          description: 'The default tax name associated with this product'
          example: 'Tax 1'

        tax_rate1:
          type: number
          format: double
          description: 'The default tax rate for this product'
          example: 10.0

        tax_name2:
          type: string
          description: 'The default tax name associated with this product'
          example: 'Tax 2'

        tax_rate2:
          type: number
          format: double
          description: 'The default tax rate for this product'
          example: 5.0

        tax_name3:
          type: string
          description: 'The default tax name associated with this product'
          example: 'Tax 3'

        tax_rate3:
          type: number
          format: double
          description: 'The default tax rate for this product'
          example: 0.0

        in_stock_quantity:
          type: integer
          format: int32
          description: |
                The quantity of the product that is currently in stock. 
                
                **note** this field is not mutable without passing an extra query parameter which will allow modification of this value.

                The query parameter ?update_in_stock_quantity=true **MUST** be passed if you wish to update this value manually.

          default: 0

        stock_notification:
          type: boolean
          description: Indicates whether stock notifications are enabled for this product
          default: true

        stock_notification_threshold:
          type: integer
          format: int32
          description: The minimum quantity threshold for which stock notifications will be triggered
          default: 0

        max_quantity:
          type: integer
          format: int32
          description: The maximum quantity that can be ordered for this product

        product_image:
          type: string
          description: The URL of the product image
          format: uri-reference

        tax_id:
          type: string
          default: '1'

          description: |
                The tax category id for this product.'

                The following constants are available (default = '1')
                
                ```
                PRODUCT_TYPE_PHYSICAL = '1'
                PRODUCT_TYPE_SERVICE = '2'
                PRODUCT_TYPE_DIGITAL = '3'
                PRODUCT_TYPE_SHIPPING = '4'
                PRODUCT_TYPE_EXEMPT = '5'
                PRODUCT_TYPE_REDUCED_TAX = '6'
                PRODUCT_TYPE_OVERRIDE_TAX = '7'
                PRODUCT_TYPE_ZERO_RATED = '8'
                PRODUCT_TYPE_REVERSE_TAX = '9'
                ```
          example: '1'
