{
  "openapi": "3.0.4",
  "info": {
    "title": "Flux.Api",
    "version": "v1"
  },
  "paths": {
    "/api/carts/calculate": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "calculateCartDiscounts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateCartRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateCartRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateCartRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculateCartResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CalculateCartResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculateCartResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/conditions": {
      "get": {
        "tags": [
          "Conditions"
        ],
        "operationId": "listConditionTypes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConditionTypesResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConditionTypesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConditionTypesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/conditions/tag-matchers": {
      "get": {
        "tags": [
          "Conditions"
        ],
        "operationId": "listTagMatcherTypes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagMatcherType"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagMatcherType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagMatcherType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/customer-discounts": {
      "get": {
        "tags": [
          "CustomerDiscounts"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "CustomerDiscounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerDiscount"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerDiscount"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerDiscount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/customer-discounts/{id}": {
      "post": {
        "tags": [
          "CustomerDiscounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerDiscount"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerDiscount"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerDiscount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "CustomerDiscounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CustomerDiscounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDiscountEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/custom-field-definitions": {
      "get": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomFieldDefinition"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomFieldDefinition"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomFieldDefinition"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/custom-field-definitions/{id}": {
      "post": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldDefinition"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldDefinition"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldDefinition"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinitionEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discount-categories": {
      "get": {
        "tags": [
          "DiscountCategories"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "DiscountCategories"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCategory"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCategory"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCategory"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discount-categories/{id}": {
      "post": {
        "tags": [
          "DiscountCategories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCategory"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCategory"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCategory"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "DiscountCategories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "DiscountCategories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCategoryEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discount-codes": {
      "get": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "DiscountCodes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCode"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCode"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCode"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discount-codes/{id}": {
      "post": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCode"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCode"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCode"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discounts/included-products": {
      "post": {
        "tags": [
          "Discounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetIncludedProductsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetIncludedProductsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetIncludedProductsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discounts": {
      "get": {
        "tags": [
          "Discounts"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Discounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscount"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscount"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/discounts/{id}": {
      "post": {
        "tags": [
          "Discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscount"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscount"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Discounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/price-lists": {
      "get": {
        "tags": [
          "PriceLists"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "PriceLists"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePriceList"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePriceList"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePriceList"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/price-lists/{id}": {
      "post": {
        "tags": [
          "PriceLists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePriceList"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePriceList"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePriceList"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PriceLists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "PriceLists"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/prices": {
      "get": {
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Prices"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrice"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrice"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrice"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/prices/{id}": {
      "post": {
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePrice"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePrice"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePrice"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/product-categories/autocomplete": {
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "parameters": [
          {
            "name": "searchText",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductCategory"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductCategory"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductCategory"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/product-categories/import": {
      "post": {
        "tags": [
          "ProductCategories"
        ],
        "operationId": "importProductCategories",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportProductCategoriesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportProductCategoriesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImportProductCategoriesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/product-categories": {
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProductCategories"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCategory"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCategory"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCategory"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/product-categories/{id}": {
      "post": {
        "tags": [
          "ProductCategories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCategory"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCategory"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCategory"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProductCategories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ProductCategories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategoryEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/products/autocomplete": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "searchText",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/by-key": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "keys",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/products/calculate": {
      "post": {
        "tags": [
          "Products"
        ],
        "operationId": "calculateProductDiscounts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateProductDiscountsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateProductDiscountsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateProductDiscountsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculateProductDiscountsResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CalculateProductDiscountsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculateProductDiscountsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/products/import": {
      "post": {
        "tags": [
          "Products"
        ],
        "operationId": "importProducts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportProductsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportProductsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImportProductsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProduct"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProduct"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProduct"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/products/{id}": {
      "post": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProduct"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProduct"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProduct"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/": {
      "post": {
        "tags": [
          "Purchases"
        ],
        "operationId": "registerPurchases",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddPurchasesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddPurchasesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddPurchasesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/subscriptions/{subscriptionId}/reset-calculation-date": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "operationId": "resetSubscriptionCalculationDate",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscription"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscription"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscription"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/subscriptions/{id}": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubscription"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubscription"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubscription"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Subscriptions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/system-settings": {
      "get": {
        "tags": [
          "SystemSettings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemSettings"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SystemSettings"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemSettings"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SystemSettings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SystemSettings"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SystemSettings"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SystemSettings"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemSettings"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SystemSettings"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemSettings"
                }
              }
            }
          }
        }
      }
    },
    "/api/system-settings/version": {
      "get": {
        "tags": [
          "SystemSettings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FluxVersionResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FluxVersionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FluxVersionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/tag-definitions/system": {
      "get": {
        "tags": [
          "TagDefinitions"
        ],
        "operationId": "getSystemTagDefinitions",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/tag-definitions": {
      "get": {
        "tags": [
          "TagDefinitions"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "descending",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityListResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TagDefinitions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagDefinition"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagDefinition"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagDefinition"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/tag-definitions/{id}": {
      "post": {
        "tags": [
          "TagDefinitions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagDefinition"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagDefinition"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagDefinition"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "TagDefinitions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "TagDefinitions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDefinitionEntityResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddPurchasesRequest": {
        "required": [
          "purchases"
        ],
        "type": "object",
        "properties": {
          "purchases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddedPurchase"
            }
          }
        },
        "additionalProperties": false
      },
      "AddedPurchase": {
        "required": [
          "cart",
          "discounts",
          "key",
          "purchasedAtUtc"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "cart": {
            "$ref": "#/components/schemas/Cart"
          },
          "discounts": {
            "$ref": "#/components/schemas/DiscountCalculationResult"
          },
          "purchasedAtUtc": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "AllCartCondition": {
        "required": [
          "conditions",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ICartCondition"
            }
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AllCustomerCondition": {
        "required": [
          "conditions",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ICustomerCondition"
            }
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AllFeeCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AllLineItemCondition": {
        "required": [
          "conditions",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ILineItemCondition"
            }
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AllLineItemsCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AmountOffDiscountEffect": {
        "required": [
          "amount",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "additionalProperties": false
      },
      "AnyCartCondition": {
        "required": [
          "conditions",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ICartCondition"
            }
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AnyCartLineItemsCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AnyCustomerCondition": {
        "required": [
          "conditions",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ICustomerCondition"
            }
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AnyFeeCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AnyLineItemCondition": {
        "required": [
          "conditions",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ILineItemCondition"
            }
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Assembly": {
        "required": [
          "customAttributes",
          "definedTypes",
          "escapedCodeBase",
          "exportedTypes",
          "globalAssemblyCache",
          "hostContext",
          "imageRuntimeVersion",
          "isCollectible",
          "isDynamic",
          "isFullyTrusted",
          "location",
          "manifestModule",
          "modules",
          "reflectionOnly",
          "securityRuleSet"
        ],
        "type": "object",
        "properties": {
          "definedTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TypeInfo"
            },
            "readOnly": true
          },
          "exportedTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Type"
            },
            "readOnly": true
          },
          "codeBase": {
            "type": "string",
            "nullable": true,
            "readOnly": true,
            "deprecated": true
          },
          "entryPoint": {
            "$ref": "#/components/schemas/MethodInfo"
          },
          "fullName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "imageRuntimeVersion": {
            "type": "string",
            "readOnly": true
          },
          "isDynamic": {
            "type": "boolean",
            "readOnly": true
          },
          "location": {
            "type": "string",
            "readOnly": true
          },
          "reflectionOnly": {
            "type": "boolean",
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "isFullyTrusted": {
            "type": "boolean",
            "readOnly": true
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "escapedCodeBase": {
            "type": "string",
            "readOnly": true,
            "deprecated": true
          },
          "manifestModule": {
            "$ref": "#/components/schemas/Module"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Module"
            },
            "readOnly": true
          },
          "globalAssemblyCache": {
            "type": "boolean",
            "readOnly": true,
            "deprecated": true
          },
          "hostContext": {
            "type": "integer",
            "format": "int64",
            "readOnly": true
          },
          "securityRuleSet": {
            "$ref": "#/components/schemas/SecurityRuleSet"
          }
        },
        "additionalProperties": false
      },
      "BooleanUpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "boolean"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BuyXGetYDiscountHint": {
        "required": [
          "discountedQuantity",
          "discountId",
          "lineItemKey",
          "quantity",
          "type"
        ],
        "type": "object",
        "properties": {
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "lineItemKey": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "readOnly": true
          },
          "quantity": {
            "type": "integer",
            "format": "int64"
          },
          "discountedQuantity": {
            "type": "integer",
            "format": "int64"
          },
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BuyXGetYSelection": {
        "enum": [
          "LeastExpensive",
          "MostExpensive"
        ],
        "type": "string",
        "format": "string"
      },
      "BuyXGetYTarget": {
        "required": [
          "discountedQuantity",
          "lineItemSelection",
          "quantity",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "condition": {
            "$ref": "#/components/schemas/ILineItemCondition"
          },
          "discountCondition": {
            "$ref": "#/components/schemas/ILineItemCondition"
          },
          "quantity": {
            "type": "integer",
            "format": "int64"
          },
          "discountedQuantity": {
            "type": "integer",
            "format": "int64"
          },
          "lineItemSelection": {
            "$ref": "#/components/schemas/BuyXGetYSelection"
          },
          "maxPerCart": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalculateCartRequest": {
        "required": [
          "cart"
        ],
        "type": "object",
        "properties": {
          "cart": {
            "$ref": "#/components/schemas/Cart"
          },
          "dateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalculateCartResponse": {
        "required": [
          "messages",
          "result",
          "success"
        ],
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "result": {
            "$ref": "#/components/schemas/DiscountCalculationResult"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationMessage"
            }
          }
        },
        "additionalProperties": false
      },
      "CalculateProductDiscountsRequest": {
        "required": [
          "context"
        ],
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductInformation"
            },
            "nullable": true
          },
          "productKeys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "context": {
            "$ref": "#/components/schemas/ProductCalculationContext"
          },
          "dateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalculateProductDiscountsResponse": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ProductPriceCalculationResult"
              }
            }
          }
        },
        "additionalProperties": false
      },
      "CallingConventions": {
        "enum": [
          "Standard",
          "VarArgs",
          "Any",
          "HasThis",
          "ExplicitThis"
        ],
        "type": "string",
        "format": "string"
      },
      "Cart": {
        "required": [
          "codes",
          "currencyCode",
          "customer",
          "fees",
          "key",
          "lineItems",
          "tags"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "currencyCode": {
            "type": "string"
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItem"
            }
          },
          "codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Fee"
            }
          },
          "delivery": {
            "$ref": "#/components/schemas/Delivery"
          },
          "salesChannelKey": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "additionalProperties": false
      },
      "CartCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CartDeliveryCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ConditionEntityType": {
        "enum": [
          "LineItem",
          "Fee",
          "Delivery",
          "Customer",
          "Cart",
          "SalesChannel"
        ],
        "type": "string",
        "format": "string"
      },
      "ConditionType": {
        "required": [
          "hasChildren",
          "isAnd",
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hasChildren": {
            "type": "boolean"
          },
          "isAnd": {
            "type": "boolean"
          },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          }
        },
        "additionalProperties": false
      },
      "ConditionTypesResponse": {
        "required": [
          "conditionTypes"
        ],
        "type": "object",
        "properties": {
          "conditionTypes": {
            "type": "object",
            "properties": {
              "LineItem": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              },
              "Fee": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              },
              "Delivery": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              },
              "Customer": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              },
              "Cart": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              },
              "SalesChannel": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConditionType"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "ConstructorInfo": {
        "required": [
          "attributes",
          "callingConvention",
          "containsGenericParameters",
          "customAttributes",
          "isAbstract",
          "isAssembly",
          "isCollectible",
          "isConstructedGenericMethod",
          "isConstructor",
          "isFamily",
          "isFamilyAndAssembly",
          "isFamilyOrAssembly",
          "isFinal",
          "isGenericMethod",
          "isGenericMethodDefinition",
          "isHideBySig",
          "isPrivate",
          "isPublic",
          "isSecurityCritical",
          "isSecuritySafeCritical",
          "isSecurityTransparent",
          "isSpecialName",
          "isStatic",
          "isVirtual",
          "memberType",
          "metadataToken",
          "methodHandle",
          "methodImplementationFlags",
          "module",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "attributes": {
            "$ref": "#/components/schemas/MethodAttributes"
          },
          "methodImplementationFlags": {
            "$ref": "#/components/schemas/MethodImplAttributes"
          },
          "callingConvention": {
            "$ref": "#/components/schemas/CallingConventions"
          },
          "isAbstract": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructor": {
            "type": "boolean",
            "readOnly": true
          },
          "isFinal": {
            "type": "boolean",
            "readOnly": true
          },
          "isHideBySig": {
            "type": "boolean",
            "readOnly": true
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "isStatic": {
            "type": "boolean",
            "readOnly": true
          },
          "isVirtual": {
            "type": "boolean",
            "readOnly": true
          },
          "isAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamily": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyAndAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyOrAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "isPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructedGenericMethod": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethod": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethodDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "containsGenericParameters": {
            "type": "boolean",
            "readOnly": true
          },
          "methodHandle": {
            "$ref": "#/components/schemas/RuntimeMethodHandle"
          },
          "isSecurityCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecuritySafeCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityTransparent": {
            "type": "boolean",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          }
        },
        "additionalProperties": false
      },
      "CountryAndCurrency": {
        "required": [
          "countryCode",
          "currencyCode"
        ],
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateCustomFieldDefinition": {
        "required": [
          "dataType",
          "entityType",
          "key",
          "label"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "entityType": {
            "$ref": "#/components/schemas/CustomFieldEntityType"
          }
        },
        "additionalProperties": false
      },
      "CreateCustomerDiscount": {
        "required": [
          "customerKey",
          "discountId",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "customerKey": {
            "type": "string"
          },
          "customerInfo": {
            "$ref": "#/components/schemas/CustomerInfo"
          },
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "maxApplications": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "totalPriceTarget": {
            "$ref": "#/components/schemas/TotalPriceTarget"
          }
        },
        "additionalProperties": false
      },
      "CreateDiscount": {
        "required": [
          "categoryIds",
          "categoryIdsNotCombinableWith",
          "categoryIdsOnlyCombinableWith",
          "customFields",
          "description",
          "isActive",
          "isExternal",
          "name",
          "sortOrder",
          "undiscountedItemsCanBeCombined",
          "validity"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "isActive": {
            "type": "boolean"
          },
          "isExternal": {
            "type": "boolean"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "validity": {
            "$ref": "#/components/schemas/DiscountValidity"
          },
          "requirement": {
            "$ref": "#/components/schemas/DiscountRequirement"
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "categoryIdsNotCombinableWith": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "categoryIdsOnlyCombinableWith": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "undiscountedItemsCanBeCombined": {
            "type": "boolean"
          },
          "condition": {
            "$ref": "#/components/schemas/ICartCondition"
          },
          "target": {
            "$ref": "#/components/schemas/IDiscountTarget"
          },
          "sortOrder": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CreateDiscountCategory": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateDiscountCode": {
        "required": [
          "code",
          "discountId",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "maxApplications": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "maxApplicationsPerCustomer": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "customerCondition": {
            "$ref": "#/components/schemas/ICustomerCondition"
          },
          "totalPriceTarget": {
            "$ref": "#/components/schemas/TotalPriceTarget"
          }
        },
        "additionalProperties": false
      },
      "CreatePrice": {
        "required": [
          "amount",
          "productKey"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "productKey": {
            "type": "string"
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceTier"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePriceList": {
        "required": [
          "key",
          "name"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "condition": {
            "$ref": "#/components/schemas/ICustomerCondition"
          }
        },
        "additionalProperties": false
      },
      "CreateProduct": {
        "required": [
          "categoryKeys",
          "key",
          "name",
          "tags"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "imageUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "categoryKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "costPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateProductCategory": {
        "required": [
          "key",
          "name",
          "parentKey",
          "tags"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "parentKey": {
            "type": "string"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateSubscription": {
        "required": [
          "cart",
          "destination",
          "key",
          "maxProductsPerEvent",
          "name"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "maxProductsPerEvent": {
            "type": "integer",
            "format": "int32"
          },
          "cart": {
            "$ref": "#/components/schemas/SubscriptionCart"
          },
          "destination": {
            "$ref": "#/components/schemas/ISubscriptionDestination"
          }
        },
        "additionalProperties": false
      },
      "CreateTagDefinition": {
        "required": [
          "dataType",
          "entityType",
          "hasCountrySpecificValues",
          "key",
          "label",
          "purchaseTrackingEnabled"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "key": {
            "type": "string"
          },
          "hasCountrySpecificValues": {
            "type": "boolean"
          },
          "purchaseTrackingEnabled": {
            "type": "boolean"
          },
          "autoCompleteUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "entityType": {
            "$ref": "#/components/schemas/EntityType"
          },
          "valueLoaderUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomAttributeData": {
        "required": [
          "attributeType",
          "constructor",
          "constructorArguments",
          "namedArguments"
        ],
        "type": "object",
        "properties": {
          "attributeType": {
            "$ref": "#/components/schemas/Type"
          },
          "constructor": {
            "$ref": "#/components/schemas/ConstructorInfo"
          },
          "constructorArguments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeTypedArgument"
            },
            "readOnly": true
          },
          "namedArguments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeNamedArgument"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomAttributeNamedArgument": {
        "required": [
          "isField",
          "memberInfo",
          "memberName",
          "typedValue"
        ],
        "type": "object",
        "properties": {
          "memberInfo": {
            "$ref": "#/components/schemas/MemberInfo"
          },
          "typedValue": {
            "$ref": "#/components/schemas/CustomAttributeTypedArgument"
          },
          "memberName": {
            "type": "string",
            "readOnly": true
          },
          "isField": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomAttributeTypedArgument": {
        "required": [
          "argumentType"
        ],
        "type": "object",
        "properties": {
          "argumentType": {
            "$ref": "#/components/schemas/Type"
          },
          "value": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomField": {
        "required": [
          "dataType",
          "definitionKey",
          "isOutdated"
        ],
        "type": "object",
        "properties": {
          "definitionKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "value": {
            "nullable": true
          },
          "isOutdated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDefinition": {
        "required": [
          "createdAtUtc",
          "createdBy",
          "dataType",
          "entityType",
          "id",
          "key",
          "label"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "entityType": {
            "$ref": "#/components/schemas/CustomFieldEntityType"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDefinitionDefinitionCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDefinitionDefinitionDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDefinitionEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDefinition"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDefinitionEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/CustomFieldDefinition"
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDefinitionUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomFieldEntityType": {
        "enum": [
          "Discount"
        ],
        "type": "string",
        "format": "string"
      },
      "CustomFieldEntityTypeUpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "enum": [
                  "Discount"
                ],
                "type": "string",
                "format": "string"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomFieldIReadOnlyListUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CustomField"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Customer": {
        "required": [
          "tags"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "fingerprint": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomerCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscount": {
        "required": [
          "createdAtUtc",
          "createdBy",
          "customerKey",
          "discountId",
          "id",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "isActive": {
            "type": "boolean"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "customerKey": {
            "type": "string"
          },
          "customerInfo": {
            "$ref": "#/components/schemas/CustomerInfo"
          },
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "maxApplications": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "totalPriceTarget": {
            "$ref": "#/components/schemas/TotalPriceTarget"
          },
          "statistics": {
            "$ref": "#/components/schemas/CustomerDiscountStatistics"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerDiscount"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/CustomerDiscount"
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountStatistics": {
        "required": [
          "totalApplications"
        ],
        "type": "object",
        "properties": {
          "totalApplications": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDiscountUsedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomerHasBoughtCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomerHasNotBoughtCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomerInfo": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerInfoUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "firstName": {
                    "type": "string",
                    "nullable": true
                  },
                  "lastName": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DataType": {
        "enum": [
          "Text",
          "Date",
          "Number",
          "Boolean",
          "TextList"
        ],
        "type": "string",
        "format": "string"
      },
      "DataTypeUpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "enum": [
                  "Text",
                  "Date",
                  "Number",
                  "Boolean",
                  "TextList"
                ],
                "type": "string",
                "format": "string"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DateRange": {
        "type": "object",
        "properties": {
          "fromUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "toUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DateRangeUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "fromUtc": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "toUtc": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DateTimeNullableUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "format": "date-time",
                "nullable": true
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DayOfWeek": {
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ],
        "type": "string",
        "format": "string"
      },
      "DecimalUpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number",
                "format": "double"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Delivery": {
        "required": [
          "tags"
        ],
        "type": "object",
        "properties": {
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "stateOrProvince": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "additionalProperties": false
      },
      "DeliveryCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Discount": {
        "required": [
          "categoryIds",
          "categoryIdsNotCombinableWith",
          "categoryIdsOnlyCombinableWith",
          "codesCount",
          "createdAtUtc",
          "createdBy",
          "customerDiscountCount",
          "customFields",
          "description",
          "id",
          "isActive",
          "isExternal",
          "name",
          "sortOrder",
          "undiscountedItemsCanBeCombined",
          "validity"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "categoryIdsNotCombinableWith": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "categoryIdsOnlyCombinableWith": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "undiscountedItemsCanBeCombined": {
            "type": "boolean"
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "isExternal": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "condition": {
            "$ref": "#/components/schemas/ICartCondition"
          },
          "sortOrder": {
            "type": "number",
            "format": "double"
          },
          "target": {
            "$ref": "#/components/schemas/IDiscountTarget"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "requirement": {
            "$ref": "#/components/schemas/DiscountRequirement"
          },
          "codesCount": {
            "type": "integer",
            "format": "int64"
          },
          "customerDiscountCount": {
            "type": "integer",
            "format": "int64"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "validity": {
            "$ref": "#/components/schemas/DiscountValidity"
          },
          "statistics": {
            "$ref": "#/components/schemas/DiscountStatistics"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCalculationResult": {
        "required": [
          "currencyCode",
          "fees",
          "gifts",
          "hasDiscount",
          "hints",
          "lineItems",
          "total"
        ],
        "type": "object",
        "properties": {
          "currencyCode": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountedLineItem"
            }
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountedFee"
            }
          },
          "gifts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Gift"
            }
          },
          "total": {
            "$ref": "#/components/schemas/DiscountPrice"
          },
          "hints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IDiscountHint"
            }
          },
          "hasDiscount": {
            "type": "boolean",
            "readOnly": true
          },
          "period": {
            "$ref": "#/components/schemas/DateRange"
          }
        },
        "additionalProperties": false
      },
      "DiscountCategory": {
        "required": [
          "createdAtUtc",
          "createdBy",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCategoryCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCategoryDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCategoryEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountCategory"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DiscountCategoryEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/DiscountCategory"
          }
        },
        "additionalProperties": false
      },
      "DiscountCategoryUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCode": {
        "required": [
          "code",
          "createdAtUtc",
          "createdBy",
          "discountId",
          "id",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "isActive": {
            "type": "boolean"
          },
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "maxApplications": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "maxApplicationsPerCustomer": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "statistics": {
            "$ref": "#/components/schemas/DiscountCodeStatistics"
          },
          "customerCondition": {
            "$ref": "#/components/schemas/ICustomerCondition"
          },
          "totalPriceTarget": {
            "$ref": "#/components/schemas/TotalPriceTarget"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountCode"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/DiscountCode"
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeStatistics": {
        "required": [
          "totalApplications"
        ],
        "type": "object",
        "properties": {
          "totalApplications": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCodeUsedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Discount"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DiscountEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/Discount"
          }
        },
        "additionalProperties": false
      },
      "DiscountPrice": {
        "required": [
          "includedDiscounts",
          "price"
        ],
        "type": "object",
        "properties": {
          "price": {
            "$ref": "#/components/schemas/Money"
          },
          "discountedPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "includedDiscounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludedDiscount"
            }
          }
        },
        "additionalProperties": false
      },
      "DiscountRequirement": {
        "enum": [
          "Code",
          "Customer"
        ],
        "type": "string",
        "format": "string"
      },
      "DiscountRequirementNullableUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/DiscountRequirement"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DiscountStatistics": {
        "required": [
          "totalDiscount",
          "totalPurchases",
          "totalRevenue",
          "totalUses"
        ],
        "type": "object",
        "properties": {
          "totalUses": {
            "type": "integer",
            "format": "int64"
          },
          "totalPurchases": {
            "type": "integer",
            "format": "int64"
          },
          "totalDiscount": {
            "$ref": "#/components/schemas/Money"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "additionalProperties": false
      },
      "DiscountTimeUnit": {
        "enum": [
          "Hour",
          "Day",
          "Week",
          "Month",
          "Year"
        ],
        "type": "string",
        "format": "string"
      },
      "DiscountUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DiscountValidity": {
        "type": "object",
        "properties": {
          "period": {
            "$ref": "#/components/schemas/DateRange"
          },
          "daysOfWeek": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "nullable": true
          },
          "timeOfDay": {
            "$ref": "#/components/schemas/TimeRange"
          },
          "schedule": {
            "$ref": "#/components/schemas/DiscountValiditySchedule"
          }
        },
        "additionalProperties": false
      },
      "DiscountValiditySchedule": {
        "required": [
          "duration",
          "durationUnit",
          "repeatEvery",
          "repeatUnit"
        ],
        "type": "object",
        "properties": {
          "repeatEvery": {
            "type": "integer",
            "format": "int32"
          },
          "repeatUnit": {
            "$ref": "#/components/schemas/DiscountTimeUnit"
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "durationUnit": {
            "$ref": "#/components/schemas/DiscountTimeUnit"
          }
        },
        "additionalProperties": false
      },
      "DiscountValidityUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "period": {
                    "$ref": "#/components/schemas/DateRange"
                  },
                  "daysOfWeek": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/DayOfWeek"
                    },
                    "nullable": true
                  },
                  "timeOfDay": {
                    "$ref": "#/components/schemas/TimeRange"
                  },
                  "schedule": {
                    "$ref": "#/components/schemas/DiscountValiditySchedule"
                  }
                },
                "additionalProperties": false
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DiscountedFee": {
        "required": [
          "feeKey",
          "feeType",
          "includedDiscounts",
          "price"
        ],
        "type": "object",
        "properties": {
          "price": {
            "$ref": "#/components/schemas/Money"
          },
          "discountedPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "includedDiscounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludedDiscount"
            }
          },
          "feeKey": {
            "type": "string"
          },
          "feeType": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DiscountedLineItem": {
        "required": [
          "lineItemKey",
          "pricesPerQuantity"
        ],
        "type": "object",
        "properties": {
          "lineItemKey": {
            "type": "string"
          },
          "pricesPerQuantity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDiscountPrice"
            }
          }
        },
        "additionalProperties": false
      },
      "EndsWithTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EntityType": {
        "enum": [
          "LineItem",
          "Product",
          "ProductCategory",
          "Fee",
          "Delivery",
          "Customer",
          "Cart",
          "SalesChannel"
        ],
        "type": "string",
        "format": "string"
      },
      "EntityTypeUpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "enum": [
                  "LineItem",
                  "Product",
                  "ProductCategory",
                  "Fee",
                  "Delivery",
                  "Customer",
                  "Cart",
                  "SalesChannel"
                ],
                "type": "string",
                "format": "string"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EqualsTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EventAttributes": {
        "enum": [
          "None",
          "SpecialName",
          "RTSpecialName",
          "ReservedMask"
        ],
        "type": "string",
        "format": "string"
      },
      "EventInfo": {
        "required": [
          "attributes",
          "customAttributes",
          "isCollectible",
          "isMulticast",
          "isSpecialName",
          "memberType",
          "metadataToken",
          "module",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "attributes": {
            "$ref": "#/components/schemas/EventAttributes"
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "addMethod": {
            "$ref": "#/components/schemas/MethodInfo"
          },
          "removeMethod": {
            "$ref": "#/components/schemas/MethodInfo"
          },
          "raiseMethod": {
            "$ref": "#/components/schemas/MethodInfo"
          },
          "isMulticast": {
            "type": "boolean",
            "readOnly": true
          },
          "eventHandlerType": {
            "$ref": "#/components/schemas/Type"
          }
        },
        "additionalProperties": false
      },
      "ExternalDiscountPrice": {
        "required": [
          "discountedPrice",
          "discountKey"
        ],
        "type": "object",
        "properties": {
          "discountKey": {
            "type": "string"
          },
          "discountedPrice": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Fee": {
        "required": [
          "isActive",
          "key",
          "price",
          "tags",
          "type"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "additionalProperties": false
      },
      "FeeCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FeeDiscountHint": {
        "required": [
          "discountedPrice",
          "discountId",
          "feeKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          },
          "feeKey": {
            "type": "string"
          },
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          },
          "discountedPrice": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "additionalProperties": false
      },
      "FeeTarget": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "feeType": {
            "type": "string",
            "nullable": true
          },
          "condition": {
            "$ref": "#/components/schemas/IFeeCondition"
          },
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FeeType": {
        "required": [
          "key",
          "name"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FieldAttributes": {
        "enum": [
          "PrivateScope",
          "Private",
          "FamANDAssem",
          "Assembly",
          "Family",
          "FamORAssem",
          "Public",
          "FieldAccessMask",
          "Static",
          "InitOnly",
          "Literal",
          "NotSerialized",
          "HasFieldRVA",
          "SpecialName",
          "RTSpecialName",
          "HasFieldMarshal",
          "PinvokeImpl",
          "HasDefault",
          "ReservedMask"
        ],
        "type": "string",
        "format": "string"
      },
      "FieldInfo": {
        "required": [
          "attributes",
          "customAttributes",
          "fieldHandle",
          "fieldType",
          "isAssembly",
          "isCollectible",
          "isFamily",
          "isFamilyAndAssembly",
          "isFamilyOrAssembly",
          "isInitOnly",
          "isLiteral",
          "isNotSerialized",
          "isPinvokeImpl",
          "isPrivate",
          "isPublic",
          "isSecurityCritical",
          "isSecuritySafeCritical",
          "isSecurityTransparent",
          "isSpecialName",
          "isStatic",
          "memberType",
          "metadataToken",
          "module",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "attributes": {
            "$ref": "#/components/schemas/FieldAttributes"
          },
          "fieldType": {
            "$ref": "#/components/schemas/Type"
          },
          "isInitOnly": {
            "type": "boolean",
            "readOnly": true
          },
          "isLiteral": {
            "type": "boolean",
            "readOnly": true
          },
          "isNotSerialized": {
            "type": "boolean",
            "readOnly": true,
            "deprecated": true
          },
          "isPinvokeImpl": {
            "type": "boolean",
            "readOnly": true
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "isStatic": {
            "type": "boolean",
            "readOnly": true
          },
          "isAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamily": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyAndAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyOrAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "isPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecuritySafeCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityTransparent": {
            "type": "boolean",
            "readOnly": true
          },
          "fieldHandle": {
            "$ref": "#/components/schemas/RuntimeFieldHandle"
          }
        },
        "additionalProperties": false
      },
      "FixedPriceDiscountEffect": {
        "required": [
          "price",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "price": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "additionalProperties": false
      },
      "FluxVersionResponse": {
        "required": [
          "major",
          "minor",
          "patch"
        ],
        "type": "object",
        "properties": {
          "major": {
            "type": "integer",
            "format": "int32"
          },
          "minor": {
            "type": "integer",
            "format": "int32"
          },
          "patch": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GenericParameterAttributes": {
        "enum": [
          "None",
          "Covariant",
          "Contravariant",
          "VarianceMask",
          "ReferenceTypeConstraint",
          "NotNullableValueTypeConstraint",
          "DefaultConstructorConstraint",
          "SpecialConstraintMask",
          "AllowByRefLike"
        ],
        "type": "string",
        "format": "string"
      },
      "GetIncludedProductsRequest": {
        "required": [
          "descending"
        ],
        "type": "object",
        "properties": {
          "condition": {
            "$ref": "#/components/schemas/ICartCondition"
          },
          "count": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "orderBy": {
            "type": "string",
            "nullable": true
          },
          "descending": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Gift": {
        "required": [
          "giftSelectionType",
          "key",
          "productKeys",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int64"
          },
          "giftSelectionType": {
            "$ref": "#/components/schemas/GiftSelectionType"
          },
          "productKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          }
        },
        "additionalProperties": false
      },
      "GiftSelectionType": {
        "enum": [
          "PickOne",
          "GetAll"
        ],
        "type": "string",
        "format": "string"
      },
      "GiftTarget": {
        "required": [
          "giftSelectionType",
          "productKeys",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "giftPerAmount": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "maxValue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "giftSelectionType": {
            "$ref": "#/components/schemas/GiftSelectionType"
          },
          "productKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxPerCart": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GuidIReadOnlyListUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GuidUpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "format": "uuid"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ICalculationInputFactory": {
        "type": "object",
        "additionalProperties": false
      },
      "ICartCondition": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AllCartCondition"
          },
          {
            "$ref": "#/components/schemas/AllLineItemsCondition"
          },
          {
            "$ref": "#/components/schemas/AllFeeCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartLineItemsCondition"
          },
          {
            "$ref": "#/components/schemas/AnyFeeCondition"
          },
          {
            "$ref": "#/components/schemas/CartCondition"
          },
          {
            "$ref": "#/components/schemas/CartDeliveryCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerHasBoughtCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerHasNotBoughtCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "cart:all": "#/components/schemas/AllCartCondition",
            "cart-line-item:all": "#/components/schemas/AllLineItemsCondition",
            "cart-fee:all": "#/components/schemas/AllFeeCondition",
            "cart:any": "#/components/schemas/AnyCartCondition",
            "cart-line-item:any": "#/components/schemas/AnyCartLineItemsCondition",
            "cart-fee:any": "#/components/schemas/AnyFeeCondition",
            "cart": "#/components/schemas/CartCondition",
            "cart-delivery": "#/components/schemas/CartDeliveryCondition",
            "customer": "#/components/schemas/CustomerCondition",
            "purchase:has-bought": "#/components/schemas/CustomerHasBoughtCondition",
            "purchase:has-not-bought": "#/components/schemas/CustomerHasNotBoughtCondition"
          }
        }
      },
      "ICartConditionUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/AllCartCondition"
                  },
                  {
                    "$ref": "#/components/schemas/AllLineItemsCondition"
                  },
                  {
                    "$ref": "#/components/schemas/AllFeeCondition"
                  },
                  {
                    "$ref": "#/components/schemas/AnyCartCondition"
                  },
                  {
                    "$ref": "#/components/schemas/AnyCartLineItemsCondition"
                  },
                  {
                    "$ref": "#/components/schemas/AnyFeeCondition"
                  },
                  {
                    "$ref": "#/components/schemas/CartCondition"
                  },
                  {
                    "$ref": "#/components/schemas/CartDeliveryCondition"
                  },
                  {
                    "$ref": "#/components/schemas/CustomerCondition"
                  },
                  {
                    "$ref": "#/components/schemas/CustomerHasBoughtCondition"
                  },
                  {
                    "$ref": "#/components/schemas/CustomerHasNotBoughtCondition"
                  }
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string",
                    "readOnly": true
                  }
                },
                "additionalProperties": false,
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "cart:all": "#/components/schemas/AllCartCondition",
                    "cart-line-item:all": "#/components/schemas/AllLineItemsCondition",
                    "cart-fee:all": "#/components/schemas/AllFeeCondition",
                    "cart:any": "#/components/schemas/AnyCartCondition",
                    "cart-line-item:any": "#/components/schemas/AnyCartLineItemsCondition",
                    "cart-fee:any": "#/components/schemas/AnyFeeCondition",
                    "cart": "#/components/schemas/CartCondition",
                    "cart-delivery": "#/components/schemas/CartDeliveryCondition",
                    "customer": "#/components/schemas/CustomerCondition",
                    "purchase:has-bought": "#/components/schemas/CustomerHasBoughtCondition",
                    "purchase:has-not-bought": "#/components/schemas/CustomerHasNotBoughtCondition"
                  }
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ICartValidator": {
        "type": "object",
        "additionalProperties": false
      },
      "ICatalogCache": {
        "type": "object",
        "additionalProperties": false
      },
      "ICondition": {
        "required": [
          "name"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AllCartCondition"
          },
          {
            "$ref": "#/components/schemas/AllLineItemsCondition"
          },
          {
            "$ref": "#/components/schemas/AllCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AllFeeCondition"
          },
          {
            "$ref": "#/components/schemas/AllLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartLineItemsCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AnyFeeCondition"
          },
          {
            "$ref": "#/components/schemas/AnyLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/CartCondition"
          },
          {
            "$ref": "#/components/schemas/CartDeliveryCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerHasBoughtCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerHasNotBoughtCondition"
          },
          {
            "$ref": "#/components/schemas/DeliveryCondition"
          },
          {
            "$ref": "#/components/schemas/FeeCondition"
          },
          {
            "$ref": "#/components/schemas/LineItemCondition"
          },
          {
            "$ref": "#/components/schemas/SalesChannelCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "cart:all": "#/components/schemas/AllCartCondition",
            "cart-line-item:all": "#/components/schemas/AllLineItemsCondition",
            "customer:all": "#/components/schemas/AllCustomerCondition",
            "cart-fee:all": "#/components/schemas/AllFeeCondition",
            "line-item:all": "#/components/schemas/AllLineItemCondition",
            "cart:any": "#/components/schemas/AnyCartCondition",
            "cart-line-item:any": "#/components/schemas/AnyCartLineItemsCondition",
            "customer:any": "#/components/schemas/AnyCustomerCondition",
            "cart-fee:any": "#/components/schemas/AnyFeeCondition",
            "line-item:any": "#/components/schemas/AnyLineItemCondition",
            "cart": "#/components/schemas/CartCondition",
            "cart-delivery": "#/components/schemas/CartDeliveryCondition",
            "customer": "#/components/schemas/CustomerCondition",
            "purchase:has-bought": "#/components/schemas/CustomerHasBoughtCondition",
            "purchase:has-not-bought": "#/components/schemas/CustomerHasNotBoughtCondition",
            "delivery": "#/components/schemas/DeliveryCondition",
            "fee": "#/components/schemas/FeeCondition",
            "line-item": "#/components/schemas/LineItemCondition",
            "sales-channel": "#/components/schemas/SalesChannelCondition"
          }
        }
      },
      "ICurrencyCodeContext": {
        "required": [
          "currencyCode"
        ],
        "type": "object",
        "properties": {
          "currencyCode": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ICurrencyConverter": {
        "type": "object",
        "additionalProperties": false
      },
      "ICustomAttributeProvider": {
        "type": "object",
        "additionalProperties": false
      },
      "ICustomFieldDefinitionCache": {
        "type": "object",
        "additionalProperties": false
      },
      "ICustomFieldDefinitionRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "ICustomerCondition": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AllCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "customer:all": "#/components/schemas/AllCustomerCondition",
            "customer:any": "#/components/schemas/AnyCustomerCondition",
            "customer": "#/components/schemas/CustomerCondition"
          }
        }
      },
      "ICustomerConditionUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/AllCustomerCondition"
                  },
                  {
                    "$ref": "#/components/schemas/AnyCustomerCondition"
                  },
                  {
                    "$ref": "#/components/schemas/CustomerCondition"
                  }
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string",
                    "readOnly": true
                  }
                },
                "additionalProperties": false,
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "customer:all": "#/components/schemas/AllCustomerCondition",
                    "customer:any": "#/components/schemas/AnyCustomerCondition",
                    "customer": "#/components/schemas/CustomerCondition"
                  }
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ICustomerDiscountCache": {
        "type": "object",
        "additionalProperties": false
      },
      "ICustomerDiscountRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IDateTime": {
        "required": [
          "currentUtcSnapshot",
          "snapshotIsNow",
          "useHistoricData",
          "utcNow"
        ],
        "type": "object",
        "properties": {
          "utcNow": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "currentUtcSnapshot": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "snapshotIsNow": {
            "type": "boolean",
            "readOnly": true
          },
          "useHistoricData": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "IDeliveryCondition": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DeliveryCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "delivery": "#/components/schemas/DeliveryCondition"
          }
        }
      },
      "IDiscountCache": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountCalculator": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountCategoryCache": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountCategoryRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountCodeCache": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountCodeRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountCodeValidator": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountEffect": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AmountOffDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/FixedPriceDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/PercentageOffDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/PriceListDiscountEffect"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "amount-off": "#/components/schemas/AmountOffDiscountEffect",
            "fixed-price": "#/components/schemas/FixedPriceDiscountEffect",
            "percentage-off": "#/components/schemas/PercentageOffDiscountEffect",
            "price-list": "#/components/schemas/PriceListDiscountEffect"
          }
        }
      },
      "IDiscountEffectCalculator": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountHint": {
        "required": [
          "discountId"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BuyXGetYDiscountHint"
          },
          {
            "$ref": "#/components/schemas/FeeDiscountHint"
          }
        ],
        "properties": {
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "readOnly": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true,
            "readOnly": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true,
            "readOnly": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "type": {
            "type": "string",
            "readOnly": true
          },
          "discountId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "buy-x-get-y": "#/components/schemas/BuyXGetYDiscountHint",
            "fee": "#/components/schemas/FeeDiscountHint"
          }
        }
      },
      "IDiscountRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountTarget": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BuyXGetYTarget"
          },
          {
            "$ref": "#/components/schemas/FeeTarget"
          },
          {
            "$ref": "#/components/schemas/GiftTarget"
          },
          {
            "$ref": "#/components/schemas/LineItemTarget"
          },
          {
            "$ref": "#/components/schemas/TotalPriceTarget"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "buy-x-get-y": "#/components/schemas/BuyXGetYTarget",
            "fee": "#/components/schemas/FeeTarget",
            "gift": "#/components/schemas/GiftTarget",
            "line-item": "#/components/schemas/LineItemTarget",
            "total-price": "#/components/schemas/TotalPriceTarget"
          }
        }
      },
      "IDiscountTargetCalculator": {
        "type": "object",
        "additionalProperties": false
      },
      "IDiscountTargetUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BuyXGetYTarget"
                  },
                  {
                    "$ref": "#/components/schemas/FeeTarget"
                  },
                  {
                    "$ref": "#/components/schemas/GiftTarget"
                  },
                  {
                    "$ref": "#/components/schemas/LineItemTarget"
                  },
                  {
                    "$ref": "#/components/schemas/TotalPriceTarget"
                  }
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "readOnly": true
                  }
                },
                "additionalProperties": false,
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "buy-x-get-y": "#/components/schemas/BuyXGetYTarget",
                    "fee": "#/components/schemas/FeeTarget",
                    "gift": "#/components/schemas/GiftTarget",
                    "line-item": "#/components/schemas/LineItemTarget",
                    "total-price": "#/components/schemas/TotalPriceTarget"
                  }
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IDiscountValidityChecker": {
        "type": "object",
        "additionalProperties": false
      },
      "IEntityEvent": {
        "required": [
          "entityId"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CustomerDiscountCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionDefinitionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionDefinitionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionUpdatedEvent"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "entityId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "CustomerDiscountCreated": "#/components/schemas/CustomerDiscountCreatedEvent",
            "CustomerDiscountDeleted": "#/components/schemas/CustomerDiscountDeletedEvent",
            "CustomerDiscountUpdated": "#/components/schemas/CustomerDiscountUpdatedEvent",
            "CustomFieldDefinitionCreated": "#/components/schemas/CustomFieldDefinitionDefinitionCreatedEvent",
            "CustomFieldDefinitionDeleted": "#/components/schemas/CustomFieldDefinitionDefinitionDeletedEvent",
            "CustomFieldDefinitionUpdated": "#/components/schemas/CustomFieldDefinitionUpdatedEvent",
            "DiscountCategoryCreated": "#/components/schemas/DiscountCategoryCreatedEvent",
            "DiscountCategoryDeleted": "#/components/schemas/DiscountCategoryDeletedEvent",
            "DiscountCategoryUpdated": "#/components/schemas/DiscountCategoryUpdatedEvent",
            "DiscountCodeCreated": "#/components/schemas/DiscountCodeCreatedEvent",
            "DiscountCodeDeleted": "#/components/schemas/DiscountCodeDeletedEvent",
            "DiscountCodeUpdated": "#/components/schemas/DiscountCodeUpdatedEvent",
            "DiscountCreated": "#/components/schemas/DiscountCreatedEvent",
            "DiscountDeleted": "#/components/schemas/DiscountDeletedEvent",
            "DiscountUpdated": "#/components/schemas/DiscountUpdatedEvent",
            "PriceCreated": "#/components/schemas/PriceCreatedEvent",
            "PriceDeleted": "#/components/schemas/PriceDeletedEvent",
            "PriceListCreated": "#/components/schemas/PriceListCreatedEvent",
            "PriceListDeleted": "#/components/schemas/PriceListDeletedEvent",
            "PriceListUpdated": "#/components/schemas/PriceListUpdatedEvent",
            "PriceUpdated": "#/components/schemas/PriceUpdatedEvent",
            "ProductCategoryCreated": "#/components/schemas/ProductCategoryCreatedEvent",
            "ProductCategoryDeleted": "#/components/schemas/ProductCategoryDeletedEvent",
            "ProductCategoryUpdated": "#/components/schemas/ProductCategoryUpdatedEvent",
            "ProductCreated": "#/components/schemas/ProductCreatedEvent",
            "ProductDeleted": "#/components/schemas/ProductDeletedEvent",
            "ProductUpdated": "#/components/schemas/ProductUpdatedEvent",
            "SubscriptionCreated": "#/components/schemas/SubscriptionCreatedEvent",
            "SubscriptionDeleted": "#/components/schemas/SubscriptionDeletedEvent",
            "SubscriptionUpdated": "#/components/schemas/SubscriptionUpdatedEvent",
            "TagDefinitionCreated": "#/components/schemas/TagDefinitionCreatedEvent",
            "TagDefinitionDeleted": "#/components/schemas/TagDefinitionDeletedEvent",
            "TagDefinitionUpdated": "#/components/schemas/TagDefinitionUpdatedEvent"
          }
        }
      },
      "IFeeCondition": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FeeCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "fee": "#/components/schemas/FeeCondition"
          }
        }
      },
      "IFluxAuditUserProvider": {
        "type": "object",
        "additionalProperties": false
      },
      "IFluxEntity": {
        "required": [
          "createdAtUtc",
          "createdBy",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "createdBy": {
            "type": "string",
            "readOnly": true
          },
          "updatedBy": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "IFluxEvent": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CustomerDiscountCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountUsedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionDefinitionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionDefinitionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeUsedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PurchaseRegisteredEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/SystemSettingsUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionUpdatedEvent"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "CustomerDiscountCreated": "#/components/schemas/CustomerDiscountCreatedEvent",
            "CustomerDiscountDeleted": "#/components/schemas/CustomerDiscountDeletedEvent",
            "CustomerDiscountUpdated": "#/components/schemas/CustomerDiscountUpdatedEvent",
            "CustomerDiscountUsed": "#/components/schemas/CustomerDiscountUsedEvent",
            "CustomFieldDefinitionCreated": "#/components/schemas/CustomFieldDefinitionDefinitionCreatedEvent",
            "CustomFieldDefinitionDeleted": "#/components/schemas/CustomFieldDefinitionDefinitionDeletedEvent",
            "CustomFieldDefinitionUpdated": "#/components/schemas/CustomFieldDefinitionUpdatedEvent",
            "DiscountCategoryCreated": "#/components/schemas/DiscountCategoryCreatedEvent",
            "DiscountCategoryDeleted": "#/components/schemas/DiscountCategoryDeletedEvent",
            "DiscountCategoryUpdated": "#/components/schemas/DiscountCategoryUpdatedEvent",
            "DiscountCodeCreated": "#/components/schemas/DiscountCodeCreatedEvent",
            "DiscountCodeDeleted": "#/components/schemas/DiscountCodeDeletedEvent",
            "DiscountCodeUpdated": "#/components/schemas/DiscountCodeUpdatedEvent",
            "DiscountCodeUsed": "#/components/schemas/DiscountCodeUsedEvent",
            "DiscountCreated": "#/components/schemas/DiscountCreatedEvent",
            "DiscountDeleted": "#/components/schemas/DiscountDeletedEvent",
            "DiscountUpdated": "#/components/schemas/DiscountUpdatedEvent",
            "PriceCreated": "#/components/schemas/PriceCreatedEvent",
            "PriceDeleted": "#/components/schemas/PriceDeletedEvent",
            "PriceListCreated": "#/components/schemas/PriceListCreatedEvent",
            "PriceListDeleted": "#/components/schemas/PriceListDeletedEvent",
            "PriceListUpdated": "#/components/schemas/PriceListUpdatedEvent",
            "PriceUpdated": "#/components/schemas/PriceUpdatedEvent",
            "ProductCategoryCreated": "#/components/schemas/ProductCategoryCreatedEvent",
            "ProductCategoryDeleted": "#/components/schemas/ProductCategoryDeletedEvent",
            "ProductCategoryUpdated": "#/components/schemas/ProductCategoryUpdatedEvent",
            "ProductCreated": "#/components/schemas/ProductCreatedEvent",
            "ProductDeleted": "#/components/schemas/ProductDeletedEvent",
            "ProductUpdated": "#/components/schemas/ProductUpdatedEvent",
            "PurchaseRegistered": "#/components/schemas/PurchaseRegisteredEvent",
            "SubscriptionCreated": "#/components/schemas/SubscriptionCreatedEvent",
            "SubscriptionDeleted": "#/components/schemas/SubscriptionDeletedEvent",
            "SubscriptionUpdated": "#/components/schemas/SubscriptionUpdatedEvent",
            "SystemSettingsUpdated": "#/components/schemas/SystemSettingsUpdatedEvent",
            "TagDefinitionCreated": "#/components/schemas/TagDefinitionCreatedEvent",
            "TagDefinitionDeleted": "#/components/schemas/TagDefinitionDeletedEvent",
            "TagDefinitionUpdated": "#/components/schemas/TagDefinitionUpdatedEvent"
          }
        }
      },
      "IFluxEventBroker": {
        "type": "object",
        "additionalProperties": false
      },
      "IFluxEventListener": {
        "type": "object",
        "additionalProperties": false
      },
      "IFluxEventSerializer": {
        "type": "object",
        "additionalProperties": false
      },
      "IFluxSerializer": {
        "required": [
          "jsonSerializerOptions"
        ],
        "type": "object",
        "properties": {
          "jsonSerializerOptions": {
            "$ref": "#/components/schemas/JsonSerializerOptions"
          }
        },
        "additionalProperties": false
      },
      "IJsonTypeInfoResolver": {
        "type": "object",
        "additionalProperties": false
      },
      "ILineItemCondition": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AllLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/AnyLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/LineItemCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "line-item:all": "#/components/schemas/AllLineItemCondition",
            "line-item:any": "#/components/schemas/AnyLineItemCondition",
            "line-item": "#/components/schemas/LineItemCondition"
          }
        }
      },
      "IParentCondition": {
        "required": [
          "isAnd"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AllCartCondition"
          },
          {
            "$ref": "#/components/schemas/AllCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AllLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AnyLineItemCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "isAnd": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "cart:all": "#/components/schemas/AllCartCondition",
            "customer:all": "#/components/schemas/AllCustomerCondition",
            "line-item:all": "#/components/schemas/AllLineItemCondition",
            "cart:any": "#/components/schemas/AnyCartCondition",
            "customer:any": "#/components/schemas/AnyCustomerCondition",
            "line-item:any": "#/components/schemas/AnyLineItemCondition"
          }
        }
      },
      "IPriceCache": {
        "type": "object",
        "additionalProperties": false
      },
      "IPriceListCache": {
        "type": "object",
        "additionalProperties": false
      },
      "IPriceListRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IPriceRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IPriceSelector": {
        "type": "object",
        "additionalProperties": false
      },
      "IProductCategoryRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IProductPricePreviewer": {
        "type": "object",
        "additionalProperties": false
      },
      "IProductRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "IPurchaseCache": {
        "type": "object",
        "additionalProperties": false
      },
      "IReducePriceDiscountTarget": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BuyXGetYTarget"
          },
          {
            "$ref": "#/components/schemas/FeeTarget"
          },
          {
            "$ref": "#/components/schemas/LineItemTarget"
          },
          {
            "$ref": "#/components/schemas/TotalPriceTarget"
          }
        ],
        "properties": {
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "readOnly": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true,
            "readOnly": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true,
            "readOnly": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "buy-x-get-y": "#/components/schemas/BuyXGetYTarget",
            "fee": "#/components/schemas/FeeTarget",
            "line-item": "#/components/schemas/LineItemTarget",
            "total-price": "#/components/schemas/TotalPriceTarget"
          }
        }
      },
      "IReducePriceTarget": {
        "type": "object",
        "properties": {
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "readOnly": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true,
            "readOnly": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true,
            "readOnly": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ISalesChannelCondition": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/SalesChannelCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "sales-channel": "#/components/schemas/SalesChannelCondition"
          }
        }
      },
      "ISerializable": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BuyXGetYTarget"
          },
          {
            "$ref": "#/components/schemas/FeeTarget"
          },
          {
            "$ref": "#/components/schemas/GiftTarget"
          },
          {
            "$ref": "#/components/schemas/LineItemTarget"
          },
          {
            "$ref": "#/components/schemas/TotalPriceTarget"
          },
          {
            "$ref": "#/components/schemas/EndsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/EqualsTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/LessThanTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/MatchesPatternTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/MoreThanTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotEndsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotEqualsTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotMatchesPatternTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotStartsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/StartsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/BuyXGetYDiscountHint"
          },
          {
            "$ref": "#/components/schemas/FeeDiscountHint"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomerDiscountUsedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionDefinitionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionDefinitionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/CustomFieldDefinitionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCategoryUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCodeUsedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/DiscountUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceListUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PriceUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCategoryUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/ProductUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/PurchaseRegisteredEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/SubscriptionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/SystemSettingsUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionCreatedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionDeletedEvent"
          },
          {
            "$ref": "#/components/schemas/TagDefinitionUpdatedEvent"
          },
          {
            "$ref": "#/components/schemas/WebhookBasicAuthentication"
          },
          {
            "$ref": "#/components/schemas/WebhookCustomHeaderAuthentication"
          },
          {
            "$ref": "#/components/schemas/WebhookDestination"
          },
          {
            "$ref": "#/components/schemas/AmountOffDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/FixedPriceDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/PercentageOffDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/PriceListDiscountEffect"
          },
          {
            "$ref": "#/components/schemas/AllCartCondition"
          },
          {
            "$ref": "#/components/schemas/AllLineItemsCondition"
          },
          {
            "$ref": "#/components/schemas/AllCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AllFeeCondition"
          },
          {
            "$ref": "#/components/schemas/AllLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCartLineItemsCondition"
          },
          {
            "$ref": "#/components/schemas/AnyCustomerCondition"
          },
          {
            "$ref": "#/components/schemas/AnyFeeCondition"
          },
          {
            "$ref": "#/components/schemas/AnyLineItemCondition"
          },
          {
            "$ref": "#/components/schemas/CartCondition"
          },
          {
            "$ref": "#/components/schemas/CartDeliveryCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerHasBoughtCondition"
          },
          {
            "$ref": "#/components/schemas/CustomerHasNotBoughtCondition"
          },
          {
            "$ref": "#/components/schemas/DeliveryCondition"
          },
          {
            "$ref": "#/components/schemas/FeeCondition"
          },
          {
            "$ref": "#/components/schemas/LineItemCondition"
          },
          {
            "$ref": "#/components/schemas/SalesChannelCondition"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "buy-x-get-y": "#/components/schemas/BuyXGetYDiscountHint",
            "fee": "#/components/schemas/FeeCondition",
            "gift": "#/components/schemas/GiftTarget",
            "line-item": "#/components/schemas/LineItemCondition",
            "total-price": "#/components/schemas/TotalPriceTarget",
            "ends-with": "#/components/schemas/EndsWithTagValueMatcher",
            "equals": "#/components/schemas/EqualsTagValueMatcher",
            "less-than": "#/components/schemas/LessThanTagValueMatcher",
            "matches-pattern": "#/components/schemas/MatchesPatternTagValueMatcher",
            "more-than": "#/components/schemas/MoreThanTagValueMatcher",
            "not-ends-with": "#/components/schemas/NotEndsWithTagValueMatcher",
            "not-equals": "#/components/schemas/NotEqualsTagValueMatcher",
            "not-matches-pattern": "#/components/schemas/NotMatchesPatternTagValueMatcher",
            "not-starts-with": "#/components/schemas/NotStartsWithTagValueMatcher",
            "starts-with": "#/components/schemas/StartsWithTagValueMatcher",
            "CustomerDiscountCreated": "#/components/schemas/CustomerDiscountCreatedEvent",
            "CustomerDiscountDeleted": "#/components/schemas/CustomerDiscountDeletedEvent",
            "CustomerDiscountUpdated": "#/components/schemas/CustomerDiscountUpdatedEvent",
            "CustomerDiscountUsed": "#/components/schemas/CustomerDiscountUsedEvent",
            "CustomFieldDefinitionCreated": "#/components/schemas/CustomFieldDefinitionDefinitionCreatedEvent",
            "CustomFieldDefinitionDeleted": "#/components/schemas/CustomFieldDefinitionDefinitionDeletedEvent",
            "CustomFieldDefinitionUpdated": "#/components/schemas/CustomFieldDefinitionUpdatedEvent",
            "DiscountCategoryCreated": "#/components/schemas/DiscountCategoryCreatedEvent",
            "DiscountCategoryDeleted": "#/components/schemas/DiscountCategoryDeletedEvent",
            "DiscountCategoryUpdated": "#/components/schemas/DiscountCategoryUpdatedEvent",
            "DiscountCodeCreated": "#/components/schemas/DiscountCodeCreatedEvent",
            "DiscountCodeDeleted": "#/components/schemas/DiscountCodeDeletedEvent",
            "DiscountCodeUpdated": "#/components/schemas/DiscountCodeUpdatedEvent",
            "DiscountCodeUsed": "#/components/schemas/DiscountCodeUsedEvent",
            "DiscountCreated": "#/components/schemas/DiscountCreatedEvent",
            "DiscountDeleted": "#/components/schemas/DiscountDeletedEvent",
            "DiscountUpdated": "#/components/schemas/DiscountUpdatedEvent",
            "PriceCreated": "#/components/schemas/PriceCreatedEvent",
            "PriceDeleted": "#/components/schemas/PriceDeletedEvent",
            "PriceListCreated": "#/components/schemas/PriceListCreatedEvent",
            "PriceListDeleted": "#/components/schemas/PriceListDeletedEvent",
            "PriceListUpdated": "#/components/schemas/PriceListUpdatedEvent",
            "PriceUpdated": "#/components/schemas/PriceUpdatedEvent",
            "ProductCategoryCreated": "#/components/schemas/ProductCategoryCreatedEvent",
            "ProductCategoryDeleted": "#/components/schemas/ProductCategoryDeletedEvent",
            "ProductCategoryUpdated": "#/components/schemas/ProductCategoryUpdatedEvent",
            "ProductCreated": "#/components/schemas/ProductCreatedEvent",
            "ProductDeleted": "#/components/schemas/ProductDeletedEvent",
            "ProductUpdated": "#/components/schemas/ProductUpdatedEvent",
            "PurchaseRegistered": "#/components/schemas/PurchaseRegisteredEvent",
            "SubscriptionCreated": "#/components/schemas/SubscriptionCreatedEvent",
            "SubscriptionDeleted": "#/components/schemas/SubscriptionDeletedEvent",
            "SubscriptionUpdated": "#/components/schemas/SubscriptionUpdatedEvent",
            "SystemSettingsUpdated": "#/components/schemas/SystemSettingsUpdatedEvent",
            "TagDefinitionCreated": "#/components/schemas/TagDefinitionCreatedEvent",
            "TagDefinitionDeleted": "#/components/schemas/TagDefinitionDeletedEvent",
            "TagDefinitionUpdated": "#/components/schemas/TagDefinitionUpdatedEvent",
            "basicAuth": "#/components/schemas/WebhookBasicAuthentication",
            "customHeader": "#/components/schemas/WebhookCustomHeaderAuthentication",
            "webhook": "#/components/schemas/WebhookDestination",
            "amount-off": "#/components/schemas/AmountOffDiscountEffect",
            "fixed-price": "#/components/schemas/FixedPriceDiscountEffect",
            "percentage-off": "#/components/schemas/PercentageOffDiscountEffect",
            "price-list": "#/components/schemas/PriceListDiscountEffect",
            "cart:all": "#/components/schemas/AllCartCondition",
            "cart-line-item:all": "#/components/schemas/AllLineItemsCondition",
            "customer:all": "#/components/schemas/AllCustomerCondition",
            "cart-fee:all": "#/components/schemas/AllFeeCondition",
            "line-item:all": "#/components/schemas/AllLineItemCondition",
            "cart:any": "#/components/schemas/AnyCartCondition",
            "cart-line-item:any": "#/components/schemas/AnyCartLineItemsCondition",
            "customer:any": "#/components/schemas/AnyCustomerCondition",
            "cart-fee:any": "#/components/schemas/AnyFeeCondition",
            "line-item:any": "#/components/schemas/AnyLineItemCondition",
            "cart": "#/components/schemas/CartCondition",
            "cart-delivery": "#/components/schemas/CartDeliveryCondition",
            "customer": "#/components/schemas/CustomerCondition",
            "purchase:has-bought": "#/components/schemas/CustomerHasBoughtCondition",
            "purchase:has-not-bought": "#/components/schemas/CustomerHasNotBoughtCondition",
            "delivery": "#/components/schemas/DeliveryCondition",
            "sales-channel": "#/components/schemas/SalesChannelCondition"
          }
        }
      },
      "ISubscriptionDestination": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/WebhookDestination"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "webhook": "#/components/schemas/WebhookDestination"
          }
        }
      },
      "ISubscriptionDestinationPublisher": {
        "type": "object",
        "additionalProperties": false
      },
      "ISubscriptionDestinationUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/WebhookDestination"
                  }
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "readOnly": true
                  }
                },
                "additionalProperties": false,
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "webhook": "#/components/schemas/WebhookDestination"
                  }
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ISubscriptionRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "ISystemSettingsCache": {
        "type": "object",
        "additionalProperties": false
      },
      "ISystemSettingsStore": {
        "type": "object",
        "additionalProperties": false
      },
      "ISystemTagFactory": {
        "type": "object",
        "additionalProperties": false
      },
      "ITagConditionData": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "operator",
          "tagEntityType",
          "tagKey"
        ],
        "type": "object",
        "properties": {
          "operator": {
            "type": "string",
            "readOnly": true
          },
          "tagKey": {
            "type": "string",
            "readOnly": true
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": {
            "readOnly": true
          },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ITagDefinitionCache": {
        "type": "object",
        "additionalProperties": false
      },
      "ITagDefinitionRepository": {
        "type": "object",
        "additionalProperties": false
      },
      "ITagMatcher": {
        "type": "object",
        "additionalProperties": false
      },
      "ITagValueMatcher": {
        "required": [
          "name",
          "types"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/EndsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/EqualsTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/LessThanTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/MatchesPatternTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/MoreThanTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotEndsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotEqualsTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotMatchesPatternTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/NotStartsWithTagValueMatcher"
          },
          {
            "$ref": "#/components/schemas/StartsWithTagValueMatcher"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ends-with": "#/components/schemas/EndsWithTagValueMatcher",
            "equals": "#/components/schemas/EqualsTagValueMatcher",
            "less-than": "#/components/schemas/LessThanTagValueMatcher",
            "matches-pattern": "#/components/schemas/MatchesPatternTagValueMatcher",
            "more-than": "#/components/schemas/MoreThanTagValueMatcher",
            "not-ends-with": "#/components/schemas/NotEndsWithTagValueMatcher",
            "not-equals": "#/components/schemas/NotEqualsTagValueMatcher",
            "not-matches-pattern": "#/components/schemas/NotMatchesPatternTagValueMatcher",
            "not-starts-with": "#/components/schemas/NotStartsWithTagValueMatcher",
            "starts-with": "#/components/schemas/StartsWithTagValueMatcher"
          }
        }
      },
      "ITagValueResolver": {
        "type": "object",
        "additionalProperties": false
      },
      "IUpdateRequest": {
        "type": "object",
        "additionalProperties": false
      },
      "IUpdateValue": {
        "type": "object",
        "additionalProperties": false
      },
      "IWebhookAuthentication": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/WebhookBasicAuthentication"
          },
          {
            "$ref": "#/components/schemas/WebhookCustomHeaderAuthentication"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "basicAuth": "#/components/schemas/WebhookBasicAuthentication",
            "customHeader": "#/components/schemas/WebhookCustomHeaderAuthentication"
          }
        }
      },
      "ImportProductCategoriesRequest": {
        "required": [
          "productCategories"
        ],
        "type": "object",
        "properties": {
          "productCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryChangedQueueMessage"
            }
          }
        },
        "additionalProperties": false
      },
      "ImportProductsRequest": {
        "required": [
          "products"
        ],
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductChangedQueueMessage"
            }
          }
        },
        "additionalProperties": false
      },
      "IncludedCustomerDiscount": {
        "required": [
          "customerDiscountId"
        ],
        "type": "object",
        "properties": {
          "customerDiscountId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "IncludedDiscount": {
        "required": [
          "customFields",
          "discountId",
          "effect",
          "name",
          "unitAmount",
          "usageId"
        ],
        "type": "object",
        "properties": {
          "usageId": {
            "type": "string",
            "format": "uuid"
          },
          "discountId": {
            "type": "string",
            "format": "uuid"
          },
          "discountKey": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "period": {
            "$ref": "#/components/schemas/DateRange"
          },
          "unitAmount": {
            "type": "number"
          },
          "effect": {
            "$ref": "#/components/schemas/IDiscountEffect"
          },
          "discountCode": {
            "$ref": "#/components/schemas/IncludedDiscountCode"
          },
          "customerDiscount": {
            "$ref": "#/components/schemas/IncludedCustomerDiscount"
          }
        },
        "additionalProperties": false
      },
      "IncludedDiscountCode": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Int32UpdateValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "integer",
                "format": "int32"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Int64NullableUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "integer",
                "format": "int64",
                "nullable": true
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntPtr": {
        "type": "object",
        "additionalProperties": false
      },
      "JavaScriptEncoder": {
        "required": [
          "maxOutputCharactersPerInputCharacter"
        ],
        "type": "object",
        "properties": {
          "maxOutputCharactersPerInputCharacter": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "JsonCommentHandling": {
        "enum": [
          "Disallow",
          "Skip",
          "Allow"
        ],
        "type": "string",
        "format": "string"
      },
      "JsonConverter": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Type"
          }
        },
        "additionalProperties": false
      },
      "JsonIgnoreCondition": {
        "enum": [
          "Never",
          "Always",
          "WhenWritingDefault",
          "WhenWritingNull",
          "WhenWriting",
          "WhenReading"
        ],
        "type": "string",
        "format": "string"
      },
      "JsonNamingPolicy": {
        "type": "object",
        "additionalProperties": false
      },
      "JsonNumberHandling": {
        "enum": [
          "Strict",
          "AllowReadingFromString",
          "WriteAsString",
          "AllowNamedFloatingPointLiterals"
        ],
        "type": "string",
        "format": "string"
      },
      "JsonObjectCreationHandling": {
        "enum": [
          "Replace",
          "Populate"
        ],
        "type": "string",
        "format": "string"
      },
      "JsonSerializerOptions": {
        "required": [
          "allowDuplicateProperties",
          "allowOutOfOrderMetadataProperties",
          "allowTrailingCommas",
          "converters",
          "defaultBufferSize",
          "defaultIgnoreCondition",
          "ignoreNullValues",
          "ignoreReadOnlyFields",
          "ignoreReadOnlyProperties",
          "includeFields",
          "indentCharacter",
          "indentSize",
          "isReadOnly",
          "maxDepth",
          "newLine",
          "numberHandling",
          "preferredObjectCreationHandling",
          "propertyNameCaseInsensitive",
          "readCommentHandling",
          "respectNullableAnnotations",
          "respectRequiredConstructorParameters",
          "typeInfoResolverChain",
          "unknownTypeHandling",
          "unmappedMemberHandling",
          "writeIndented"
        ],
        "type": "object",
        "properties": {
          "converters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonConverter"
            },
            "readOnly": true
          },
          "typeInfoResolver": {
            "$ref": "#/components/schemas/IJsonTypeInfoResolver"
          },
          "typeInfoResolverChain": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IJsonTypeInfoResolver"
            },
            "readOnly": true
          },
          "allowOutOfOrderMetadataProperties": {
            "type": "boolean"
          },
          "allowTrailingCommas": {
            "type": "boolean"
          },
          "defaultBufferSize": {
            "type": "integer",
            "format": "int32"
          },
          "encoder": {
            "$ref": "#/components/schemas/JavaScriptEncoder"
          },
          "dictionaryKeyPolicy": {
            "$ref": "#/components/schemas/JsonNamingPolicy"
          },
          "ignoreNullValues": {
            "type": "boolean",
            "deprecated": true
          },
          "defaultIgnoreCondition": {
            "$ref": "#/components/schemas/JsonIgnoreCondition"
          },
          "numberHandling": {
            "$ref": "#/components/schemas/JsonNumberHandling"
          },
          "preferredObjectCreationHandling": {
            "$ref": "#/components/schemas/JsonObjectCreationHandling"
          },
          "ignoreReadOnlyProperties": {
            "type": "boolean"
          },
          "ignoreReadOnlyFields": {
            "type": "boolean"
          },
          "includeFields": {
            "type": "boolean"
          },
          "maxDepth": {
            "type": "integer",
            "format": "int32"
          },
          "propertyNamingPolicy": {
            "$ref": "#/components/schemas/JsonNamingPolicy"
          },
          "propertyNameCaseInsensitive": {
            "type": "boolean"
          },
          "readCommentHandling": {
            "$ref": "#/components/schemas/JsonCommentHandling"
          },
          "unknownTypeHandling": {
            "$ref": "#/components/schemas/JsonUnknownTypeHandling"
          },
          "unmappedMemberHandling": {
            "$ref": "#/components/schemas/JsonUnmappedMemberHandling"
          },
          "writeIndented": {
            "type": "boolean"
          },
          "indentCharacter": {
            "type": "string"
          },
          "indentSize": {
            "type": "integer",
            "format": "int32"
          },
          "referenceHandler": {
            "$ref": "#/components/schemas/ReferenceHandler"
          },
          "newLine": {
            "type": "string"
          },
          "respectNullableAnnotations": {
            "type": "boolean"
          },
          "respectRequiredConstructorParameters": {
            "type": "boolean"
          },
          "allowDuplicateProperties": {
            "type": "boolean"
          },
          "isReadOnly": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "JsonUnknownTypeHandling": {
        "enum": [
          "JsonElement",
          "JsonNode"
        ],
        "type": "string",
        "format": "string"
      },
      "JsonUnmappedMemberHandling": {
        "enum": [
          "Skip",
          "Disallow"
        ],
        "type": "string",
        "format": "string"
      },
      "LayoutKind": {
        "enum": [
          "Sequential",
          "Explicit",
          "Auto"
        ],
        "type": "string",
        "format": "string"
      },
      "LessThanTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "LineItem": {
        "required": [
          "key",
          "product",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int64"
          },
          "product": {
            "$ref": "#/components/schemas/LineItemProduct"
          },
          "externalDiscounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalDiscountPrice"
            },
            "nullable": true
          },
          "giftId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LineItemCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LineItemDiscountPrice": {
        "required": [
          "includedDiscounts",
          "price",
          "quantity",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "unitPrice": {
            "type": "number"
          },
          "discountedUnitPrice": {
            "type": "number",
            "nullable": true
          },
          "includedDiscounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludedDiscount"
            }
          },
          "quantity": {
            "type": "integer",
            "format": "int64"
          },
          "price": {
            "type": "number"
          },
          "discountedPrice": {
            "type": "number",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LineItemProduct": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true
          },
          "costPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemProductCategory"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LineItemProductCategory": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LineItemTarget": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "condition": {
            "$ref": "#/components/schemas/ILineItemCondition"
          },
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocalizedStringUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocationCalculationContext": {
        "required": [
          "currencyCode"
        ],
        "type": "object",
        "properties": {
          "currencyCode": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MatchesPatternTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "MemberInfo": {
        "required": [
          "customAttributes",
          "isCollectible",
          "memberType",
          "metadataToken",
          "module",
          "name"
        ],
        "type": "object",
        "properties": {
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "MemberTypes": {
        "enum": [
          "Constructor",
          "Event",
          "Field",
          "Method",
          "Property",
          "TypeInfo",
          "Custom",
          "NestedType",
          "All"
        ],
        "type": "string",
        "format": "string"
      },
      "MethodAttributes": {
        "enum": [
          "PrivateScope",
          "ReuseSlot",
          "Private",
          "FamANDAssem",
          "Assembly",
          "Family",
          "FamORAssem",
          "Public",
          "MemberAccessMask",
          "UnmanagedExport",
          "Static",
          "Final",
          "Virtual",
          "HideBySig",
          "NewSlot",
          "VtableLayoutMask",
          "CheckAccessOnOverride",
          "Abstract",
          "SpecialName",
          "RTSpecialName",
          "PinvokeImpl",
          "HasSecurity",
          "RequireSecObject",
          "ReservedMask"
        ],
        "type": "string",
        "format": "string"
      },
      "MethodBase": {
        "required": [
          "attributes",
          "callingConvention",
          "containsGenericParameters",
          "customAttributes",
          "isAbstract",
          "isAssembly",
          "isCollectible",
          "isConstructedGenericMethod",
          "isConstructor",
          "isFamily",
          "isFamilyAndAssembly",
          "isFamilyOrAssembly",
          "isFinal",
          "isGenericMethod",
          "isGenericMethodDefinition",
          "isHideBySig",
          "isPrivate",
          "isPublic",
          "isSecurityCritical",
          "isSecuritySafeCritical",
          "isSecurityTransparent",
          "isSpecialName",
          "isStatic",
          "isVirtual",
          "memberType",
          "metadataToken",
          "methodHandle",
          "methodImplementationFlags",
          "module",
          "name"
        ],
        "type": "object",
        "properties": {
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "attributes": {
            "$ref": "#/components/schemas/MethodAttributes"
          },
          "methodImplementationFlags": {
            "$ref": "#/components/schemas/MethodImplAttributes"
          },
          "callingConvention": {
            "$ref": "#/components/schemas/CallingConventions"
          },
          "isAbstract": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructor": {
            "type": "boolean",
            "readOnly": true
          },
          "isFinal": {
            "type": "boolean",
            "readOnly": true
          },
          "isHideBySig": {
            "type": "boolean",
            "readOnly": true
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "isStatic": {
            "type": "boolean",
            "readOnly": true
          },
          "isVirtual": {
            "type": "boolean",
            "readOnly": true
          },
          "isAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamily": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyAndAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyOrAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "isPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructedGenericMethod": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethod": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethodDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "containsGenericParameters": {
            "type": "boolean",
            "readOnly": true
          },
          "methodHandle": {
            "$ref": "#/components/schemas/RuntimeMethodHandle"
          },
          "isSecurityCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecuritySafeCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityTransparent": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "MethodImplAttributes": {
        "enum": [
          "IL",
          "Managed",
          "Native",
          "OPTIL",
          "CodeTypeMask",
          "Runtime",
          "ManagedMask",
          "Unmanaged",
          "NoInlining",
          "ForwardRef",
          "Synchronized",
          "NoOptimization",
          "PreserveSig",
          "AggressiveInlining",
          "AggressiveOptimization",
          "InternalCall",
          "Async",
          "MaxMethodImplVal"
        ],
        "type": "string",
        "format": "string"
      },
      "MethodInfo": {
        "required": [
          "attributes",
          "callingConvention",
          "containsGenericParameters",
          "customAttributes",
          "isAbstract",
          "isAssembly",
          "isCollectible",
          "isConstructedGenericMethod",
          "isConstructor",
          "isFamily",
          "isFamilyAndAssembly",
          "isFamilyOrAssembly",
          "isFinal",
          "isGenericMethod",
          "isGenericMethodDefinition",
          "isHideBySig",
          "isPrivate",
          "isPublic",
          "isSecurityCritical",
          "isSecuritySafeCritical",
          "isSecurityTransparent",
          "isSpecialName",
          "isStatic",
          "isVirtual",
          "memberType",
          "metadataToken",
          "methodHandle",
          "methodImplementationFlags",
          "module",
          "name",
          "returnParameter",
          "returnType",
          "returnTypeCustomAttributes"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "attributes": {
            "$ref": "#/components/schemas/MethodAttributes"
          },
          "methodImplementationFlags": {
            "$ref": "#/components/schemas/MethodImplAttributes"
          },
          "callingConvention": {
            "$ref": "#/components/schemas/CallingConventions"
          },
          "isAbstract": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructor": {
            "type": "boolean",
            "readOnly": true
          },
          "isFinal": {
            "type": "boolean",
            "readOnly": true
          },
          "isHideBySig": {
            "type": "boolean",
            "readOnly": true
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "isStatic": {
            "type": "boolean",
            "readOnly": true
          },
          "isVirtual": {
            "type": "boolean",
            "readOnly": true
          },
          "isAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamily": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyAndAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isFamilyOrAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "isPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructedGenericMethod": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethod": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethodDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "containsGenericParameters": {
            "type": "boolean",
            "readOnly": true
          },
          "methodHandle": {
            "$ref": "#/components/schemas/RuntimeMethodHandle"
          },
          "isSecurityCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecuritySafeCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityTransparent": {
            "type": "boolean",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "returnParameter": {
            "$ref": "#/components/schemas/ParameterInfo"
          },
          "returnType": {
            "$ref": "#/components/schemas/Type"
          },
          "returnTypeCustomAttributes": {
            "$ref": "#/components/schemas/ICustomAttributeProvider"
          }
        },
        "additionalProperties": false
      },
      "Module": {
        "required": [
          "assembly",
          "customAttributes",
          "fullyQualifiedName",
          "mdStreamVersion",
          "metadataToken",
          "moduleHandle",
          "moduleVersionId",
          "name",
          "scopeName"
        ],
        "type": "object",
        "properties": {
          "assembly": {
            "$ref": "#/components/schemas/Assembly"
          },
          "fullyQualifiedName": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "mdStreamVersion": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "moduleVersionId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "scopeName": {
            "type": "string",
            "readOnly": true
          },
          "moduleHandle": {
            "$ref": "#/components/schemas/ModuleHandle"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ModuleHandle": {
        "required": [
          "mdStreamVersion"
        ],
        "type": "object",
        "properties": {
          "mdStreamVersion": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Money": {
        "required": [
          "amount",
          "currencyCode"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "currencyCode": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MoneyUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "required": [
                  "amount",
                  "currencyCode"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "double",
                    "readOnly": true
                  },
                  "currencyCode": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MoreThanTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "NotEndsWithTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "NotEqualsTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "NotMatchesPatternTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "NotStartsWithTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ParameterAttributes": {
        "enum": [
          "None",
          "In",
          "Out",
          "Lcid",
          "Retval",
          "Optional",
          "HasDefault",
          "HasFieldMarshal",
          "Reserved3",
          "Reserved4",
          "ReservedMask"
        ],
        "type": "string",
        "format": "string"
      },
      "ParameterInfo": {
        "required": [
          "attributes",
          "customAttributes",
          "hasDefaultValue",
          "isIn",
          "isLcid",
          "isOptional",
          "isOut",
          "isRetval",
          "member",
          "metadataToken",
          "parameterType",
          "position"
        ],
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/ParameterAttributes"
          },
          "member": {
            "$ref": "#/components/schemas/MemberInfo"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "parameterType": {
            "$ref": "#/components/schemas/Type"
          },
          "position": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "isIn": {
            "type": "boolean",
            "readOnly": true
          },
          "isLcid": {
            "type": "boolean",
            "readOnly": true
          },
          "isOptional": {
            "type": "boolean",
            "readOnly": true
          },
          "isOut": {
            "type": "boolean",
            "readOnly": true
          },
          "isRetval": {
            "type": "boolean",
            "readOnly": true
          },
          "defaultValue": {
            "nullable": true,
            "readOnly": true
          },
          "rawDefaultValue": {
            "nullable": true,
            "readOnly": true
          },
          "hasDefaultValue": {
            "type": "boolean",
            "readOnly": true
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PercentageOffDiscountEffect": {
        "required": [
          "percentage",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "percentage": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Price": {
        "required": [
          "amount",
          "createdAtUtc",
          "createdBy",
          "id",
          "productKey"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "productKey": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          },
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceTier"
            },
            "nullable": true
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PriceCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PriceDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PriceEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PriceEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "additionalProperties": false
      },
      "PriceList": {
        "required": [
          "createdAtUtc",
          "createdBy",
          "id",
          "key",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRange"
          },
          "condition": {
            "$ref": "#/components/schemas/ICondition"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PriceListCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PriceListDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PriceListDiscountEffect": {
        "required": [
          "priceListKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "priceListKey": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PriceListEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceList"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PriceListEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/PriceList"
          }
        },
        "additionalProperties": false
      },
      "PriceListUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PriceTier": {
        "required": [
          "minQuantity",
          "price"
        ],
        "type": "object",
        "properties": {
          "minQuantity": {
            "type": "integer",
            "format": "int64"
          },
          "price": {
            "$ref": "#/components/schemas/Money"
          }
        },
        "additionalProperties": false
      },
      "PriceTierIReadOnlyListUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PriceTier"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PriceUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Product": {
        "required": [
          "categoryKeys",
          "createdAtUtc",
          "createdBy",
          "id",
          "key",
          "name",
          "tags"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "imageUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "costPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "categoryKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCalculationContext": {
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationCalculationContext"
            },
            "nullable": true
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "delivery": {
            "$ref": "#/components/schemas/Delivery"
          },
          "salesChannelKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCategory": {
        "required": [
          "createdAtUtc",
          "createdBy",
          "id",
          "key",
          "name",
          "parentKey",
          "tags"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "parentKey": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryChangedQueueMessage": {
        "required": [
          "categoryKey",
          "fieldValueType",
          "isDeleted"
        ],
        "type": "object",
        "properties": {
          "changeId": {
            "type": "string",
            "nullable": true
          },
          "fieldValueType": {
            "$ref": "#/components/schemas/ProductFieldValueType"
          },
          "categoryKey": {
            "type": "string"
          },
          "parentCategoryKey": {
            "type": "string",
            "nullable": true
          },
          "isDeleted": {
            "type": "boolean"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategory"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/ProductCategory"
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductChangedQueueMessage": {
        "required": [
          "fieldValueType",
          "isDeleted",
          "productKey"
        ],
        "type": "object",
        "properties": {
          "changeId": {
            "type": "string",
            "nullable": true
          },
          "fieldValueType": {
            "$ref": "#/components/schemas/ProductFieldValueType"
          },
          "productKey": {
            "type": "string"
          },
          "isDeleted": {
            "type": "boolean"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "imageUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true
          },
          "costPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPriceChange"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Product"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/Product"
          }
        },
        "additionalProperties": false
      },
      "ProductFieldValueType": {
        "enum": [
          "Full",
          "Partial"
        ],
        "type": "string",
        "format": "string"
      },
      "ProductInformation": {
        "required": [
          "categoryKeys",
          "key",
          "name",
          "tags"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "imageUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "costPrice": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "categoryKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "ProductPriceCalculationResult": {
        "required": [
          "cartPrice",
          "currencyCode",
          "fees",
          "gifts",
          "hints",
          "productKey",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "productKey": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountedFee"
            }
          },
          "gifts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Gift"
            }
          },
          "hints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IDiscountHint"
            }
          },
          "unitPrice": {
            "$ref": "#/components/schemas/DiscountPrice"
          },
          "cartPrice": {
            "$ref": "#/components/schemas/DiscountPrice"
          }
        },
        "additionalProperties": false
      },
      "ProductPriceChange": {
        "required": [
          "amount",
          "isDeleted"
        ],
        "type": "object",
        "properties": {
          "isDeleted": {
            "type": "boolean"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "period": {
            "$ref": "#/components/schemas/DateRange"
          },
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceTier"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PropertyAttributes": {
        "enum": [
          "None",
          "SpecialName",
          "RTSpecialName",
          "HasDefault",
          "Reserved2",
          "Reserved3",
          "Reserved4",
          "ReservedMask"
        ],
        "type": "string",
        "format": "string"
      },
      "PropertyInfo": {
        "required": [
          "attributes",
          "canRead",
          "canWrite",
          "customAttributes",
          "isCollectible",
          "isSpecialName",
          "memberType",
          "metadataToken",
          "module",
          "name",
          "propertyType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "propertyType": {
            "$ref": "#/components/schemas/Type"
          },
          "attributes": {
            "$ref": "#/components/schemas/PropertyAttributes"
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "canRead": {
            "type": "boolean",
            "readOnly": true
          },
          "canWrite": {
            "type": "boolean",
            "readOnly": true
          },
          "getMethod": {
            "$ref": "#/components/schemas/MethodInfo"
          },
          "setMethod": {
            "$ref": "#/components/schemas/MethodInfo"
          }
        },
        "additionalProperties": false
      },
      "PurchaseRegisteredEvent": {
        "required": [
          "includedTrackedTagDefinitionIds",
          "purchasedAtUtc",
          "purchaseId",
          "purchaseKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "customerKey": {
            "type": "string",
            "nullable": true
          },
          "purchaseKey": {
            "type": "string"
          },
          "purchasedAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "purchaseId": {
            "type": "string",
            "format": "uuid"
          },
          "includedTrackedTagDefinitionIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "additionalProperties": false
      },
      "ReferenceHandler": {
        "type": "object",
        "additionalProperties": false
      },
      "RuntimeFieldHandle": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/IntPtr"
          }
        },
        "additionalProperties": false
      },
      "RuntimeMethodHandle": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/IntPtr"
          }
        },
        "additionalProperties": false
      },
      "RuntimeTypeHandle": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/IntPtr"
          }
        },
        "additionalProperties": false
      },
      "SalesChannel": {
        "required": [
          "key",
          "tags"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "additionalProperties": false
      },
      "SalesChannelCondition": {
        "required": [
          "dataType",
          "displayValue",
          "expectedValue",
          "name",
          "operator",
          "tagEntityType",
          "tagKey",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "operator": {
            "type": "string"
          },
          "tagKey": {
            "type": "string"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "expectedValue": { },
          "tagEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          },
          "displayValue": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SecurityRuleSet": {
        "enum": [
          "None",
          "Level1",
          "Level2"
        ],
        "type": "string",
        "format": "string"
      },
      "StartsWithTagValueMatcher": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "StringDecimalIReadOnlyDictionaryUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StringIReadOnlyListUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StringUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StructLayoutAttribute": {
        "required": [
          "typeId",
          "value"
        ],
        "type": "object",
        "properties": {
          "typeId": {
            "readOnly": true
          },
          "value": {
            "$ref": "#/components/schemas/LayoutKind"
          }
        },
        "additionalProperties": false
      },
      "Subscription": {
        "required": [
          "cart",
          "createdAtUtc",
          "createdBy",
          "destination",
          "id",
          "key",
          "maxProductsPerEvent",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "cart": {
            "$ref": "#/components/schemas/SubscriptionCart"
          },
          "destination": {
            "$ref": "#/components/schemas/ISubscriptionDestination"
          },
          "maxProductsPerEvent": {
            "type": "integer",
            "format": "int32"
          },
          "nextDateToGenerateEvents": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionCart": {
        "required": [
          "contexts"
        ],
        "type": "object",
        "properties": {
          "contexts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationCalculationContext"
            }
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "delivery": {
            "$ref": "#/components/schemas/Delivery"
          },
          "salesChannel": {
            "$ref": "#/components/schemas/SalesChannel"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionCartUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "required": [
                  "contexts"
                ],
                "type": "object",
                "properties": {
                  "contexts": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/LocationCalculationContext"
                    }
                  },
                  "customer": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "delivery": {
                    "$ref": "#/components/schemas/Delivery"
                  },
                  "salesChannel": {
                    "$ref": "#/components/schemas/SalesChannel"
                  }
                },
                "additionalProperties": false
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Subscription"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/Subscription"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SystemSettings": {
        "required": [
          "countriesAndCurrencies",
          "feeTypes",
          "languages",
          "salesChannels",
          "statisticsCurrencyCode"
        ],
        "type": "object",
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "feeTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeType"
            }
          },
          "salesChannels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesChannel"
            }
          },
          "countriesAndCurrencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryAndCurrency"
            }
          },
          "statisticsCurrencyCode": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SystemSettingsUpdatedEvent": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Tag": {
        "required": [
          "dataType",
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "key": {
            "type": "string"
          },
          "value": { }
        },
        "additionalProperties": false
      },
      "TagDefinition": {
        "required": [
          "conditionEntityType",
          "createdAtUtc",
          "createdBy",
          "dataType",
          "entityType",
          "hasCountrySpecificValues",
          "id",
          "key",
          "label",
          "purchaseTrackingEnabled"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "label": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "key": {
            "type": "string"
          },
          "hasCountrySpecificValues": {
            "type": "boolean"
          },
          "purchaseTrackingEnabled": {
            "type": "boolean"
          },
          "autoCompleteUrl": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "dataType": {
            "$ref": "#/components/schemas/DataType"
          },
          "entityType": {
            "$ref": "#/components/schemas/EntityType"
          },
          "createdAtUtc": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true
          },
          "conditionEntityType": {
            "$ref": "#/components/schemas/ConditionEntityType"
          }
        },
        "additionalProperties": false
      },
      "TagDefinitionCreatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TagDefinitionDeletedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TagDefinitionEntityListResponse": {
        "required": [
          "entities",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagDefinition"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TagDefinitionEntityResponse": {
        "required": [
          "entity"
        ],
        "type": "object",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/TagDefinition"
          }
        },
        "additionalProperties": false
      },
      "TagDefinitionUpdatedEvent": {
        "required": [
          "entityId",
          "type"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TagIReadOnlyListUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagMatcherType": {
        "required": [
          "name",
          "type",
          "types"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataType"
            }
          }
        },
        "additionalProperties": false
      },
      "TimeRange": {
        "required": [
          "fromUtc",
          "toUtc"
        ],
        "type": "object",
        "properties": {
          "fromUtc": {
            "type": "string",
            "format": "time"
          },
          "toUtc": {
            "type": "string",
            "format": "time"
          }
        },
        "additionalProperties": false
      },
      "TotalPriceTarget": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "percentOff": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amountOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "fixedPrice": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            },
            "nullable": true
          },
          "priceListKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TotalPriceTargetUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "required": [
                  "type"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "readOnly": true
                  },
                  "percentOff": {
                    "type": "number",
                    "format": "double",
                    "nullable": true
                  },
                  "amountOff": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Money"
                    },
                    "nullable": true
                  },
                  "fixedPrice": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Money"
                    },
                    "nullable": true
                  },
                  "priceListKey": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Type": {
        "required": [
          "assembly",
          "attributes",
          "containsGenericParameters",
          "customAttributes",
          "genericParameterAttributes",
          "genericParameterPosition",
          "genericTypeArguments",
          "guid",
          "hasElementType",
          "isAbstract",
          "isAnsiClass",
          "isArray",
          "isAutoClass",
          "isAutoLayout",
          "isByRef",
          "isByRefLike",
          "isClass",
          "isCollectible",
          "isCOMObject",
          "isConstructedGenericType",
          "isContextful",
          "isEnum",
          "isExplicitLayout",
          "isFunctionPointer",
          "isGenericMethodParameter",
          "isGenericParameter",
          "isGenericType",
          "isGenericTypeDefinition",
          "isGenericTypeParameter",
          "isImport",
          "isInterface",
          "isLayoutSequential",
          "isMarshalByRef",
          "isNested",
          "isNestedAssembly",
          "isNestedFamANDAssem",
          "isNestedFamily",
          "isNestedFamORAssem",
          "isNestedPrivate",
          "isNestedPublic",
          "isNotPublic",
          "isPointer",
          "isPrimitive",
          "isPublic",
          "isSealed",
          "isSecurityCritical",
          "isSecuritySafeCritical",
          "isSecurityTransparent",
          "isSerializable",
          "isSignatureType",
          "isSpecialName",
          "isSZArray",
          "isTypeDefinition",
          "isUnicodeClass",
          "isUnmanagedFunctionPointer",
          "isValueType",
          "isVariableBoundArray",
          "isVisible",
          "memberType",
          "metadataToken",
          "module",
          "name",
          "typeHandle",
          "underlyingSystemType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "namespace": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "assemblyQualifiedName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "fullName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "assembly": {
            "$ref": "#/components/schemas/Assembly"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "isInterface": {
            "type": "boolean",
            "readOnly": true
          },
          "isNested": {
            "type": "boolean",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "declaringMethod": {
            "$ref": "#/components/schemas/MethodBase"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "underlyingSystemType": {
            "$ref": "#/components/schemas/Type"
          },
          "isTypeDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "isArray": {
            "type": "boolean",
            "readOnly": true
          },
          "isByRef": {
            "type": "boolean",
            "readOnly": true
          },
          "isPointer": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructedGenericType": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericParameter": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericTypeParameter": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethodParameter": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericType": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericTypeDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "isSZArray": {
            "type": "boolean",
            "readOnly": true
          },
          "isVariableBoundArray": {
            "type": "boolean",
            "readOnly": true
          },
          "isByRefLike": {
            "type": "boolean",
            "readOnly": true
          },
          "isFunctionPointer": {
            "type": "boolean",
            "readOnly": true
          },
          "isUnmanagedFunctionPointer": {
            "type": "boolean",
            "readOnly": true
          },
          "hasElementType": {
            "type": "boolean",
            "readOnly": true
          },
          "genericTypeArguments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Type"
            },
            "readOnly": true
          },
          "genericParameterPosition": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "genericParameterAttributes": {
            "$ref": "#/components/schemas/GenericParameterAttributes"
          },
          "attributes": {
            "$ref": "#/components/schemas/TypeAttributes"
          },
          "isAbstract": {
            "type": "boolean",
            "readOnly": true
          },
          "isImport": {
            "type": "boolean",
            "readOnly": true
          },
          "isSealed": {
            "type": "boolean",
            "readOnly": true
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "isClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedFamANDAssem": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedFamily": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedFamORAssem": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isNotPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isAutoLayout": {
            "type": "boolean",
            "readOnly": true
          },
          "isExplicitLayout": {
            "type": "boolean",
            "readOnly": true
          },
          "isLayoutSequential": {
            "type": "boolean",
            "readOnly": true
          },
          "isAnsiClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isAutoClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isUnicodeClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isCOMObject": {
            "type": "boolean",
            "readOnly": true
          },
          "isContextful": {
            "type": "boolean",
            "readOnly": true
          },
          "isEnum": {
            "type": "boolean",
            "readOnly": true
          },
          "isMarshalByRef": {
            "type": "boolean",
            "readOnly": true
          },
          "isPrimitive": {
            "type": "boolean",
            "readOnly": true
          },
          "isValueType": {
            "type": "boolean",
            "readOnly": true
          },
          "isSignatureType": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecuritySafeCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityTransparent": {
            "type": "boolean",
            "readOnly": true
          },
          "structLayoutAttribute": {
            "$ref": "#/components/schemas/StructLayoutAttribute"
          },
          "typeInitializer": {
            "$ref": "#/components/schemas/ConstructorInfo"
          },
          "typeHandle": {
            "$ref": "#/components/schemas/RuntimeTypeHandle"
          },
          "guid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "baseType": {
            "$ref": "#/components/schemas/Type"
          },
          "isSerializable": {
            "type": "boolean",
            "readOnly": true,
            "deprecated": true
          },
          "containsGenericParameters": {
            "type": "boolean",
            "readOnly": true
          },
          "isVisible": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TypeAttributes": {
        "enum": [
          "NotPublic",
          "AutoLayout",
          "AnsiClass",
          "Class",
          "Public",
          "NestedPublic",
          "NestedPrivate",
          "NestedFamily",
          "NestedAssembly",
          "NestedFamANDAssem",
          "VisibilityMask",
          "NestedFamORAssem",
          "SequentialLayout",
          "ExplicitLayout",
          "LayoutMask",
          "Interface",
          "ClassSemanticsMask",
          "Abstract",
          "Sealed",
          "SpecialName",
          "RTSpecialName",
          "Import",
          "Serializable",
          "WindowsRuntime",
          "UnicodeClass",
          "AutoClass",
          "StringFormatMask",
          "CustomFormatClass",
          "HasSecurity",
          "ReservedMask",
          "BeforeFieldInit",
          "CustomFormatMask"
        ],
        "type": "string",
        "format": "string"
      },
      "TypeInfo": {
        "required": [
          "assembly",
          "attributes",
          "containsGenericParameters",
          "customAttributes",
          "declaredConstructors",
          "declaredEvents",
          "declaredFields",
          "declaredMembers",
          "declaredMethods",
          "declaredNestedTypes",
          "declaredProperties",
          "genericParameterAttributes",
          "genericParameterPosition",
          "genericTypeArguments",
          "genericTypeParameters",
          "guid",
          "hasElementType",
          "implementedInterfaces",
          "isAbstract",
          "isAnsiClass",
          "isArray",
          "isAutoClass",
          "isAutoLayout",
          "isByRef",
          "isByRefLike",
          "isClass",
          "isCollectible",
          "isCOMObject",
          "isConstructedGenericType",
          "isContextful",
          "isEnum",
          "isExplicitLayout",
          "isFunctionPointer",
          "isGenericMethodParameter",
          "isGenericParameter",
          "isGenericType",
          "isGenericTypeDefinition",
          "isGenericTypeParameter",
          "isImport",
          "isInterface",
          "isLayoutSequential",
          "isMarshalByRef",
          "isNested",
          "isNestedAssembly",
          "isNestedFamANDAssem",
          "isNestedFamily",
          "isNestedFamORAssem",
          "isNestedPrivate",
          "isNestedPublic",
          "isNotPublic",
          "isPointer",
          "isPrimitive",
          "isPublic",
          "isSealed",
          "isSecurityCritical",
          "isSecuritySafeCritical",
          "isSecurityTransparent",
          "isSerializable",
          "isSignatureType",
          "isSpecialName",
          "isSZArray",
          "isTypeDefinition",
          "isUnicodeClass",
          "isUnmanagedFunctionPointer",
          "isValueType",
          "isVariableBoundArray",
          "isVisible",
          "memberType",
          "metadataToken",
          "module",
          "name",
          "typeHandle",
          "underlyingSystemType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true
          },
          "customAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomAttributeData"
            },
            "readOnly": true
          },
          "isCollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "metadataToken": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "memberType": {
            "$ref": "#/components/schemas/MemberTypes"
          },
          "namespace": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "assemblyQualifiedName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "fullName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "assembly": {
            "$ref": "#/components/schemas/Assembly"
          },
          "module": {
            "$ref": "#/components/schemas/Module"
          },
          "isInterface": {
            "type": "boolean",
            "readOnly": true
          },
          "isNested": {
            "type": "boolean",
            "readOnly": true
          },
          "declaringType": {
            "$ref": "#/components/schemas/Type"
          },
          "declaringMethod": {
            "$ref": "#/components/schemas/MethodBase"
          },
          "reflectedType": {
            "$ref": "#/components/schemas/Type"
          },
          "underlyingSystemType": {
            "$ref": "#/components/schemas/Type"
          },
          "isTypeDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "isArray": {
            "type": "boolean",
            "readOnly": true
          },
          "isByRef": {
            "type": "boolean",
            "readOnly": true
          },
          "isPointer": {
            "type": "boolean",
            "readOnly": true
          },
          "isConstructedGenericType": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericParameter": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericTypeParameter": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericMethodParameter": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericType": {
            "type": "boolean",
            "readOnly": true
          },
          "isGenericTypeDefinition": {
            "type": "boolean",
            "readOnly": true
          },
          "isSZArray": {
            "type": "boolean",
            "readOnly": true
          },
          "isVariableBoundArray": {
            "type": "boolean",
            "readOnly": true
          },
          "isByRefLike": {
            "type": "boolean",
            "readOnly": true
          },
          "isFunctionPointer": {
            "type": "boolean",
            "readOnly": true
          },
          "isUnmanagedFunctionPointer": {
            "type": "boolean",
            "readOnly": true
          },
          "hasElementType": {
            "type": "boolean",
            "readOnly": true
          },
          "genericTypeArguments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Type"
            },
            "readOnly": true
          },
          "genericParameterPosition": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "genericParameterAttributes": {
            "$ref": "#/components/schemas/GenericParameterAttributes"
          },
          "attributes": {
            "$ref": "#/components/schemas/TypeAttributes"
          },
          "isAbstract": {
            "type": "boolean",
            "readOnly": true
          },
          "isImport": {
            "type": "boolean",
            "readOnly": true
          },
          "isSealed": {
            "type": "boolean",
            "readOnly": true
          },
          "isSpecialName": {
            "type": "boolean",
            "readOnly": true
          },
          "isClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedAssembly": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedFamANDAssem": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedFamily": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedFamORAssem": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "isNestedPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isNotPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isPublic": {
            "type": "boolean",
            "readOnly": true
          },
          "isAutoLayout": {
            "type": "boolean",
            "readOnly": true
          },
          "isExplicitLayout": {
            "type": "boolean",
            "readOnly": true
          },
          "isLayoutSequential": {
            "type": "boolean",
            "readOnly": true
          },
          "isAnsiClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isAutoClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isUnicodeClass": {
            "type": "boolean",
            "readOnly": true
          },
          "isCOMObject": {
            "type": "boolean",
            "readOnly": true
          },
          "isContextful": {
            "type": "boolean",
            "readOnly": true
          },
          "isEnum": {
            "type": "boolean",
            "readOnly": true
          },
          "isMarshalByRef": {
            "type": "boolean",
            "readOnly": true
          },
          "isPrimitive": {
            "type": "boolean",
            "readOnly": true
          },
          "isValueType": {
            "type": "boolean",
            "readOnly": true
          },
          "isSignatureType": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecuritySafeCritical": {
            "type": "boolean",
            "readOnly": true
          },
          "isSecurityTransparent": {
            "type": "boolean",
            "readOnly": true
          },
          "structLayoutAttribute": {
            "$ref": "#/components/schemas/StructLayoutAttribute"
          },
          "typeInitializer": {
            "$ref": "#/components/schemas/ConstructorInfo"
          },
          "typeHandle": {
            "$ref": "#/components/schemas/RuntimeTypeHandle"
          },
          "guid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "baseType": {
            "$ref": "#/components/schemas/Type"
          },
          "isSerializable": {
            "type": "boolean",
            "readOnly": true,
            "deprecated": true
          },
          "containsGenericParameters": {
            "type": "boolean",
            "readOnly": true
          },
          "isVisible": {
            "type": "boolean",
            "readOnly": true
          },
          "genericTypeParameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Type"
            },
            "readOnly": true
          },
          "declaredConstructors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConstructorInfo"
            },
            "readOnly": true
          },
          "declaredEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventInfo"
            },
            "readOnly": true
          },
          "declaredFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldInfo"
            },
            "readOnly": true
          },
          "declaredMembers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberInfo"
            },
            "readOnly": true
          },
          "declaredMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MethodInfo"
            },
            "readOnly": true
          },
          "declaredNestedTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TypeInfo"
            },
            "readOnly": true
          },
          "declaredProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyInfo"
            },
            "readOnly": true
          },
          "implementedInterfaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Type"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomFieldDefinition": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "label": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataTypeUpdateValue"
          },
          "entityType": {
            "$ref": "#/components/schemas/CustomFieldEntityTypeUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerDiscount": {
        "type": "object",
        "properties": {
          "customerKey": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "isActive": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRangeUpdateValue"
          },
          "customerInfo": {
            "$ref": "#/components/schemas/CustomerInfoUpdateValue"
          },
          "maxApplications": {
            "$ref": "#/components/schemas/Int64NullableUpdateValue"
          },
          "totalPriceTarget": {
            "$ref": "#/components/schemas/TotalPriceTargetUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateDiscount": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/LocalizedStringUpdateValue"
          },
          "description": {
            "$ref": "#/components/schemas/LocalizedStringUpdateValue"
          },
          "isActive": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "isExternal": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "validity": {
            "$ref": "#/components/schemas/DiscountValidityUpdateValue"
          },
          "requirement": {
            "$ref": "#/components/schemas/DiscountRequirementNullableUpdateValue"
          },
          "categoryIds": {
            "$ref": "#/components/schemas/GuidIReadOnlyListUpdateValue"
          },
          "categoryIdsNotCombinableWith": {
            "$ref": "#/components/schemas/GuidIReadOnlyListUpdateValue"
          },
          "categoryIdsOnlyCombinableWith": {
            "$ref": "#/components/schemas/GuidIReadOnlyListUpdateValue"
          },
          "undiscountedItemsCanBeCombined": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "condition": {
            "$ref": "#/components/schemas/ICartConditionUpdateValue"
          },
          "target": {
            "$ref": "#/components/schemas/IDiscountTargetUpdateValue"
          },
          "sortOrder": {
            "$ref": "#/components/schemas/DecimalUpdateValue"
          },
          "customFields": {
            "$ref": "#/components/schemas/CustomFieldIReadOnlyListUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateDiscountCategory": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/StringUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateDiscountCode": {
        "type": "object",
        "properties": {
          "discountId": {
            "$ref": "#/components/schemas/GuidUpdateValue"
          },
          "isActive": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "code": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRangeUpdateValue"
          },
          "maxApplications": {
            "$ref": "#/components/schemas/Int64NullableUpdateValue"
          },
          "maxApplicationsPerCustomer": {
            "$ref": "#/components/schemas/Int64NullableUpdateValue"
          },
          "customerCondition": {
            "$ref": "#/components/schemas/ICustomerConditionUpdateValue"
          },
          "totalPriceTarget": {
            "$ref": "#/components/schemas/TotalPriceTargetUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdatePrice": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "countryCode": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "productKey": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "priceListKey": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "amount": {
            "$ref": "#/components/schemas/MoneyUpdateValue"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRangeUpdateValue"
          },
          "tiers": {
            "$ref": "#/components/schemas/PriceTierIReadOnlyListUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdatePriceList": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "name": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "countryCode": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/DateRangeUpdateValue"
          },
          "condition": {
            "$ref": "#/components/schemas/ICustomerConditionUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateProduct": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "name": {
            "$ref": "#/components/schemas/LocalizedStringUpdateValue"
          },
          "imageUrl": {
            "$ref": "#/components/schemas/UriUpdateValue"
          },
          "tags": {
            "$ref": "#/components/schemas/TagIReadOnlyListUpdateValue"
          },
          "categoryKeys": {
            "$ref": "#/components/schemas/StringIReadOnlyListUpdateValue"
          },
          "costPrice": {
            "$ref": "#/components/schemas/StringDecimalIReadOnlyDictionaryUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateProductCategory": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "parentKey": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "name": {
            "$ref": "#/components/schemas/LocalizedStringUpdateValue"
          },
          "tags": {
            "$ref": "#/components/schemas/TagIReadOnlyListUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateSubscription": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "name": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "cart": {
            "$ref": "#/components/schemas/SubscriptionCartUpdateValue"
          },
          "destination": {
            "$ref": "#/components/schemas/ISubscriptionDestinationUpdateValue"
          },
          "maxProductsPerEvent": {
            "$ref": "#/components/schemas/Int32UpdateValue"
          },
          "nextDateToGenerateEvents": {
            "$ref": "#/components/schemas/DateTimeNullableUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UpdateTagDefinition": {
        "type": "object",
        "properties": {
          "label": {
            "$ref": "#/components/schemas/LocalizedStringUpdateValue"
          },
          "description": {
            "$ref": "#/components/schemas/LocalizedStringUpdateValue"
          },
          "key": {
            "$ref": "#/components/schemas/StringUpdateValue"
          },
          "hasCountrySpecificValues": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "purchaseTrackingEnabled": {
            "$ref": "#/components/schemas/BooleanUpdateValue"
          },
          "autoCompleteUrl": {
            "$ref": "#/components/schemas/UriUpdateValue"
          },
          "dataType": {
            "$ref": "#/components/schemas/DataTypeUpdateValue"
          },
          "entityType": {
            "$ref": "#/components/schemas/EntityTypeUpdateValue"
          },
          "valueLoaderUrl": {
            "$ref": "#/components/schemas/UriUpdateValue"
          }
        },
        "additionalProperties": false
      },
      "UriUpdateValue": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "format": "uri"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ValidationMessage": {
        "required": [
          "code",
          "message",
          "type"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/ValidationMessageType"
          },
          "code": {
            "$ref": "#/components/schemas/ValidationMessageCode"
          }
        },
        "additionalProperties": false
      },
      "ValidationMessageCode": {
        "enum": [
          "DiscountCodeRequiresLogin",
          "DiscountCodeAlreadyUsed",
          "InvalidDiscountCode",
          "DiscountCodeNotActive",
          "DataError"
        ],
        "type": "string",
        "format": "string"
      },
      "ValidationMessageType": {
        "enum": [
          "Information",
          "Warning",
          "Error"
        ],
        "type": "string",
        "format": "string"
      },
      "WebhookBasicAuthentication": {
        "required": [
          "password",
          "type",
          "username"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "WebhookCustomHeaderAuthentication": {
        "required": [
          "headerName",
          "type",
          "value"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "headerName": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "WebhookDestination": {
        "required": [
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "url": {
            "type": "string"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "authentication": {
            "$ref": "#/components/schemas/IWebhookAuthentication"
          }
        },
        "additionalProperties": false
      }
    }
  }
}